
IOSync - Синхронизация инвентаря для сети серверов Minecraft
Плагин IOSync для Майнкрафт синхронизирует данные игроков (инвентарь, опыт) между серверами BungeeCord. Скачать для Paper/Spigot 1.13-1.21.
Если вы собираете сеть на BungeeCord или настраиваете свой сервер на BungeeHost (https://bungee.host), то наверняка сталкивались с главной болью сетей - разделением инвентаря. Игрок переходит с выживания на минигры, а его шмотки и опыт остаются на прошлом сервере. Плагин IOSync решает эту проблему без сложных баз данных MySQL. Он просто берет ванильный файл игрока playerdata/UUID.dat и синхронизирует его между всеми серверами пула.
Как работает синхронизация в IOSync
Механика плагина максимально простая, но от этого не менее гениальная. Когда игрок выходит из сети, его датапак с инвентарем и прогрессом копируется в общую директорию. При следующем входе - на этот же сервер или любой другой из группы - файл подтягивается на место до того, как ядро Minecraft успеет его прочитать. Получается полностью бесшовный опыт.
Вы можете создавать разные группы серверов. Например, сделать общие инвентари для всех серверов выживания, но изолировать их от хабов и аркад. Это настраивается через указание разных папок для сохранения в конфиге.
Важный нюанс про координаты
Один из главных подводных камней синхронизации - позиция игрока. Если тупо скопировать координаты с одного сервера на другой, игрок может оказаться в стене или в пустоте. Поэтому IOSync хранит позиции отдельно. Инвентарь, опыт и здоровье путешествуют с вами, а вот координаты остаются локальными для каждого сервера.
Установка и настройка
- Скачайте плагин и закиньте его в папку
plugins/на всех серверах вашей сети. - Запустите и выключите сервер, чтобы сгенерировался файл конфигурации.
- Отредактируйте
config.yml. Нужно указатьstorage-path- путь к общей папке. Убедитесь, что директория существует и сервер имеет права на запись! - Запустите сервер. Готово.
Основные настройки конфига
| Параметр | Описание |
|---|---|
storage-path | Путь к папке для хранения данных. Серверы с одинаковым путем будут делить инвентари. Если оставить пустым, синхронизация не работает, но будет доступна команда /switch. |
player-permissions | POSIX-права для файлов (формат вроде rw-r--r--). По умолчанию null. Не трогайте, если не понимаете, как работают права в Linux! |
Команды и права
Из-за специфики работы, стандартная команда BungeeCord /server тут не подойдет - она обрывает соединение слишком быстро, и данные могут не сохраниться. Поэтому используйте встроенную команду:
/switch- команда для перехода между серверами. Она гарантирует, что прогресс игрока сохранится до отключения.- Право:
iosync.switch- доступ к команде перехода.
Совместимость и версии
Плагин работает на ядрах Bukkit, Spigot и Paper для Minecraft Java Edition. Поддерживается широкий диапазон версий: от 1.13 до актуальных 1.21.x. Последняя важная версия 1.8.2 исправляла баг с некорректной установкой позиции при входе на Paper.
Совет от админа: При каждом крупном обновлении Майнкрафт (когда меняется сетевой протокол) плагин может выдавать предупреждение при запуске. Он не ломается намертво, но разработчик рекомендует обновляться, чтобы избежать багов с чтением NBT-тегов новых предметов.
Ограничения
Главный минус - все серверы должны находиться на одной файловой системе. Если у вас серверы разбросаны по разным железякам или изолированным Docker-контейнерам без общего диска, синхронизация работать не будет. В таком случае придется монтировать общую папку через NFS или искать решения на базе баз данных.
Скачайте IOSync, если вам нужна надежная и легковесная синхронизация данных для вашей сборки модов или ванильной сети без лишней нагрузки на базу данных.
Сервер для плагина IOSync - Синхронизация инвентаря для сети серверов Minecraft - как у профи
Плагин IOSync - Синхронизация инвентаря для сети серверов Minecraft создан для серверов: на своём сервере вы настраиваете его под себя и решаете, кому играть. Создать сервер с плагином IOSync - Синхронизация инвентаря для сети серверов Minecraft для друзей можно за пару минут - BungeeHost всё уже подготовил.
