EnderDrives
EnderDrives — это мод, предоставляющий возможность хранить предметы в Эндере, но в цифровом формате. Каждый накопитель имеет ограничение на типы предметов в зависимости от своей ёмкости.
Данное ограничение введено для игрового баланса, а не из-за технических ограничений хранения, однако рекомендуется минимизировать количество типов в системе.
Система была протестирована для 250 000 типов. Превышение этого значения осуществляется на свой риск.
Режимы передачи
Двунаправленный:
Накопители в двунаправленном режиме (по умолчанию) функционируют как обычные дисковые хранилища. Возможен ввод/извлечение предметов стандартным способом.
Ввод:
Накопители в режиме ввода разрешают только добавление предметов игроком или автоматизированными системами. Просмотр содержимого доступен, но извлечение невозможно.
Вывод:
Накопители в режиме вывода разрешают только извлечение предметов. Добавление новых предметов блокируется.
Область действия и настройки приватности
Глобальная:
Предметы в этой области доступны всем игрокам сервера. Любой пользователь с накопителем, настроенным на ту же частоту, получит доступ к общему инвентарю.
Приватная:
Накопители в этом режиме привязаны к UUID игрока. Доступ к инвентарю имеет только владелец, даже если накопитель подключён к чужой ME-системе.
Командная:
Доступ к накопителям открыт для всех членов FTB Team. Данные привязаны к UUID владельца группы, что сохраняет доступ к содержимому даже после расформирования команды.
Основано на EnderDB
Для работы с большими объёмами данных EnderDrives использует специализированную базу данных EnderDB. Все предметы сохраняются с полными NBT-данными для точной идентификации.
Каждая запись содержит:
— частоту,
— область действия,
— полные NBT-данные,
— количество (64-битное целое число, до 9 квинтиллионов).
Особенности EnderDB
Основные принципы EnderDB:
— скорость,
— надёжность,
— эффективность.
Используемые технологии:
- Rotating Write-Ahead Logging (WAL) — целостность данных
- Batch Commits — оптимизация производительности
- CRC32 Checksums — проверка целостности
- Compact Binary Storage — компактное хранение
- In-Memory Caching — кэширование в памяти
- Dedicated Background Threading — фоновые потоки
- Safe Handling of Shutdowns and Crashes — защита при сбоях
Все операции выполняются атомарно, гарантируя сохранность данных даже при повреждении мира или аварийной остановке сервера.
Данные сохраняются в папке мира:saves/world/data/enderdrives/enderdrives.bin
Файлы Write-ahead log (WAL) хранятся рядом для восстановления и оптимизации.