▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Плагины/MC-Data-Bridge - синхронизация данных игроков между серверами
MC-Data-Bridge - синхронизация данных игроков между серверами

MC-Data-Bridge - синхронизация данных игроков между серверами

MC-Data-Bridge - плагин для сетей BungeeCord и Velocity, который синхронизирует инвентарь, здоровье, опыт и эффекты игроков между серверами Майнкрафт. Защита от дюпа, поддержка Folia и Paper.

Оцените первым
1.8K
7

MC-Data-Bridge - плагин для сетей серверов Майнкрафт на BungeeCord и Velocity, который решает главную головную боль любого владельца мультисервера: синхронизацию данных игрока между серверами. Скачать плагин стоит каждому, кто держит связку из нескольких серверов и хочет, чтобы игрок, перейдя с выживания на мини-игры или обратно, не терял инвентарь, здоровье и уровень опыта.

Если вы когда-нибудь настраивали сеть из лобби, выживания и анархии, то знаете проблему: каждый сервер хранит данные игрока в своих файлах playerdata, и при переходе между серверами человек по факту становится "другим" игроком. Ванильный Minecraft из коробки такого не умеет в принципе. Обычно это решают костылями вроде MySQL Player Data Bridge или ручными скриптами, но MC Data Bridge делает это на уровне полноценного enterprise-решения: с распределёнными блокировками, атомарными транзакциями и мгновенной событийной моделью доставки данных.

И да, такой плагин отлично заработает на BungeeHost (https://bungee.host) - там же можно развернуть всю сеть и поставить плагин буквально в один клик, что для мультисерверных проектов очень удобно.

Совместимость и платформы

Тут всё необычно хорошо. Плагин собран как гибридный единый JAR-файл - один и тот же файл работает и на бэкенд-серверах, и на прокси. Не нужно искать отдельные сборки под каждую платформу.

  • Версии Minecraft: 1.21.x и 26.3.x
  • Серверные платформы: PaperMC, Purpur, Spigot, Bukkit и Folia (полноценная поддержка региональных планировщиков)
  • Прокси: BungeeCord, Waterfall и Velocity
  • Java: 25+

Отдельно отмечу поддержку Folia - её мало кто делает нормально, потому что регионализированная многопоточность ломает половину старых плагинов. Здесь используются GlobalRegionScheduler и EntityScheduler, так что потокобезопасность гарантирована.

Быстрый старт: как установить MC-Data-Bridge

Установка простая, но есть нюанс с базой данных - она обязательна для мультисерверных сетей.

  1. Закиньте JAR везде. Положите файл mc-data-bridge-*.jar в папку plugins/ каждого сервера (Paper, Folia, Spigot) и прокси (Velocity или BungeeCord).
  2. Настройте конфиг. Откройте plugins/mc-data-bridge/config.yml на каждом бэкенд-сервере:
    • Задайте уникальный server-id, например server-id: "survival-1". Это важно - без уникальных ID плагин не поймёт, кто есть кто в сети.
    • Пропишите доступы к MySQL или MariaDB. Без базы синхронизация между серверами работать не будет.
    • Установите security.seed - секретную случайную строку. Она используется для контрольных сумм целостности данных.
  3. Перезапустите всё. Рестартуете прокси и бэкенды - синхронизация поднимется автоматически.

Важный нюанс из практики: security.seed должен быть одинаковым на всех серверах сети, но при этом действительно случайным и секретным. Если сиды различаются, проверки целостности SHA-256 начнут фейлиться, и данные не будут загружаться. Это классическая ошибка при первой настройке.

Что именно синхронизирует плагин

Список впечатляет - по факту это полный слепок состояния игрока:

  • Здоровье, голод, насыщение и истощение
  • Опыт и уровни
  • Инвентарь, броня и отдельные профили инвентаря для разных режимов игры (креатив/выживание не перемешаются)
  • Эффекты зелий
  • Эндер-сундуки
  • Достижения (advancements) и открытые рецепты
  • Ванильная статистика
  • Метаданные Persistent Data Container (PDC) - это важно для серверов с кастомными плагинами, которые хранят данные в PDC
  • Состояние полёта и игровой режим
  • Питомцы-компаньоны
  • Карты, которые работают между серверами

По сути, игрок вообще не замечает перехода между серверами. Зашёл в портал на спавне, оказался на сервере выживания - и у тебя те же сердечки, тот же голод, та же кирка в третьем слоте.

Защита от дюпа и блокировки: почему это важно

Вот тут начинается самое интересное. Главная причина, по которой самописные решения для синхронизации ломаются - дюпы. Игрок выходит с сервера А, данные ещё не сохранились, а он уже зашёл на сервер Б и выкинул вещи. Классика.

MC Data Bridge решает это на нескольких уровнях:

  • Блокировка взаимодействий при переносе. Пока идёт переход, плагин автоматически закрывает открытые инвентари и отменяет клики по контейнерам, перетаскивания, дропы, подбор предметов и любые взаимодействия. Окно для дюпа просто исчезает.
  • Распределённые блокировки с fencing-токенами (lock_version). Используются монотонные счётчики поколений, которые отсекают "просроченные" записи. Если сервер завис на GC-паузе или отвис после сетевого лага, он физически не сможет перезаписать активную сессию игрока старыми данными.
  • Событийное снятие блокировок. Исходный сервер после сохранения состояния шлёт мгновенный сигнал LockReleased, который будит pre-login поток на целевом сервере. Задержка ожидания лока при переключении падает примерно до 50 мс, а если сообщение не дошло - есть автоматический фолбэк на опрос базы.
  • Атомарная персистентность одной транзакцией. Обновление инвентарей, статистики, метаданных, питомцев и карт плюс снятие блокировки идут в одном соединении и одной транзакции (setAutoCommit(false) ... commit()). Либо сохранилось всё, либо ничего - промежуточных состояний нет.
  • Контрольные суммы целостности. Перед загрузкой данных считается канонический SHA-256 хэш по всем компонентам состояния с солью из security.seed. Подмена данных в базе вручную будет замечена.

По факту это уровень надёжности, которого от Майнкрафт-плагинов обычно не ждёшь. Если вы строите серьёзный проект с экономикой, где дюп инвентаря обвалит рынок - это именно тот случай, где такая паранойя оправдана.

Инспектор инвентарей: invsee и endersee

Отдельная киллер-фича для админов - интерактивный просмотр инвентарей и эндер-сундуков. Причём работает даже с офлайн-игроками и игроками на других серверах сети, в реальном времени.

По умолчанию открывается безопасный режим "только просмотр". Админ с нужным правом может включить режим редактирования (флаг --edit или просто правый клик) - и после закрытия GUI изменения автоматически сохранятся в базу. Удобно, когда нужно вернуть игроку утерянную вещь или, наоборот, изъять задюпанное.

Режимы идентификации и миграция с пиратки на лицензию

Редкая и очень полезная штука для русскоязычных проектов, где половина игроков сидит с неофициальных лаунчеров:

  • Режим PREMIUM - строгая привязка к лицензионным UUID.
  • Режим HYBRID - гибкая смена идентичности. Плагин автоматически мигрирует данные игрока с офлайн-UUID на премиум-UUID после подтверждения через FastLogin (PreLogin) или AuthMe (Login, включая нативную TOTP/2FA от AuthMe).

То есть игрок купил лицензию - и его прогресс с пиратского аккаунта переехал сам, без тикетов в админку.

Плюс ведётся история идентичности: last_known_name и защищённый identity_hash (HMAC-SHA256 с ключом). Это позволяет ловить угон аккаунта, коллизии UUID и ручное вмешательство в базу.

Команды и права

КомандаОписаниеПраво
/databridge inspect <player> [inv|ender] [--edit]Открыть GUI просмотра или редактирования данных игрокаdatabridge.inspect (.edit для --edit)
/databridge invsee <player> [--edit]Сразу открыть инвентарь игрокаdatabridge.inspect (.edit для --edit)
/databridge endersee <player> [--edit]Сразу открыть эндер-сундук игрокаdatabridge.inspect (.edit для --edit)
/databridge unlock <player>Снять зависшую блокировку данных (Spigot, Folia, Bungee, Velocity)databridge.admin
/databridge forceunlock <player>Прокси-команда: принудительный сигнал сброса локаdatabridge.admin
/databridge migrate <target>Перенос данных между UUID или никамиdatabridge.admin
/databridge reloadПерезагрузка конфига и переподключение пула БДdatabridge.admin

Права (permissions):

  • databridge.inspect - просмотр данных, инвентарей и эндер-сундуков в безопасном режиме только для чтения.
  • databridge.inspect.edit - повышенное право на интерактивное редактирование через --edit или правый клик.
  • databridge.admin - полный административный доступ ко всем командам.

Совет: право databridge.inspect.edit выдавайте только старшей администрации. Обычным модераторам хватит просмотра - случайный клик в режиме редактирования сохранится в базу автоматически при закрытии GUI, и откатить это будет непросто.

Мониторинг и тонкая настройка

Для тех, кто любит наблюдать за продакшеном, в плагин встроен экспортер метрик Prometheus: поднимается HTTP-сервер, который отдаёт задержки синхронизации, hit-ratio кэша и состояние пула HikariCP. Цепляете Grafana - и у вас полноценный дашборд по здоровью синхронизации всей сети.

А в config.yml можно гранулярно включать и выключать синхронизацию для любого типа данных, а также исключать конкретные серверы и миры через чёрный список. Например, на сервере мини-игр синхронизировать инвентарь не нужно - просто добавляете его в исключения, и никаких лишних записей в базу.

Стоит ли ставить MC-Data-Bridge

Если у вас одиночный сервер - плагин вам не нужен вообще, это инструмент строго для сетей. Но если вы держите связку из двух и более серверов за прокси, это must-have. По совокупности - поддержка Folia, защита от дюпа на уровне fencing-токенов, миграция пиратских аккаунтов на лицензию через AuthMe и FastLogin, инспектор офлайн-инвентарей - MC Data Bridge выглядит одним из самых продуманных решений для синхронизации данных игроков в Minecraft на текущий момент. Скачайте MC-Data-Bridge, настройте MySQL и забудьте про жалобы игроков на потерянные при переходе вещи.

Партнёрский материал

Сервер для плагина MC-Data-Bridge - синхронизация данных игроков между серверами - как у профи

Плагин MC-Data-Bridge - синхронизация данных игроков между серверами создан для серверов: на своём сервере вы настраиваете его под себя и решаете, кому играть. Создать сервер с плагином MC-Data-Bridge - синхронизация данных игроков между серверами для друзей можно за пару минут - BungeeHost всё уже подготовил.

Часто задаваемые вопросы

Совместимость

Minecraft: Java Edition

26.3.x26.2.x26.1.x1.21.x

Поддерживаемые окружения

Сервер

Ссылки


Создатели

Детали

Лицензия:
Опубликован:1 год назад
Обновлён:1 месяц назад
Главная