
Создание сплочённой сети Minecraft с ValioBungee
ValioBungee (ProxioDev/ValioBungee)
Синхронизация данных игроков между прокси-серверами BungeeCord / Velocity
Запуск сети Minecraft через несколько серверов кажется отличной идеей, пока не понимаете, что игроки ожидают сохранения своих данных везде. Если ваш друг заходит с 50 изумрудами и переключается на другой прокси-сервер, он не должен их потерять. Вот что решает ValioBungee - синхронизирует данные игроков через все экземпляры BungeeCord и Velocity с помощью Redis.
Что такое ValioBungee?
ValioBungee - форк давно заброшенного проекта RedisBungee, обновлённый и поддерживаемый ProxioDev. Это Java-плагин, синхронизирующий информацию о игроках (инвентарь, локация, опыт и пользовательские данные) через центральную базу данных Redis. Если вы управляете распределённой сетью Minecraft, этот плагин «замолкает» пробел между независимыми прокси-экземплярами, обеспечивая игрокам плавный опыт независимо от выбранного сервера.
Оригинальный RedisBungee не обновлялся годами, а создатель проекта ушёл. Не давая администраторам серверов мучиться с устаревшим кодом, ProxioDev оживил проект под названием ValioBungee (смена названия была необходима из-за ограничений торговой марки, хотя внутренне плагин остался почти прежним). Это真正 полезный пример поддержки со стороны сообщества - кто-то увидел проблему и решил её.
Зачем это нужно?
Большинство настроек на одном сервере Minecraft не требуют этого. Но когда вы начинаете строить настоящую сеть,事情 становятся сложными. Представьте, что у вас есть хаб-сервер и три гейм-сервера (сёрвивал, креатив, пвп). Игроки должны能够 прыгать между ними без потери прогресса.
BungeeCord и Velocity уже обрабатывают переход игроков от прокси к отдельным серверам, но они не делятся данными о том, кто онлайн, какие предметы держат игроки, или пользовательскими данными, сохранёнными вашими плагинами. ValioBungee заполняет этот пробел. Однако он использует Redis в качестве общего слоя данных, так что все ваши прокси могут спрашивать «онлайн ли игрок Боб?» и получать одинаковый ответ, независимо от прокси.
Общие случаи использования включают:
- Сети с несколькими хаб-лоуби-серверами, где игроки должны видеть, кто онлайн во всей сети
- Архитектуры «хаб-и-спутник», где игроки сначала входят в хаб, а затем выбирают гейм-сервер для игры
- Пользовательские косметики или ранги, которые должны следовать за игроками между серверами
- Общие лидерборды или статистика
- Предотвращение дублирующихся входов, если игрок подключается к нескольким прокси одновременно
Вам это не нужно, если вы управляете единственным сервером или небольшой сетью прокси. Если вы работаете в масштабе или хотите, чтобы ваша сеть чувствовалась как единая система, а не как отдельные серверы, это становится ценным.
Начало работы с ValioBungee
Сначала вам нужен запущенный сервер Redis. Если его нет, это ваш первый шаг (не часть ValioBungee). Затем загрузите плагин.
Скачайте последний релиз с GitHub:
wget https://github.com/ProxioDev/ValioBungee/releases/download/0.12.6/RedisBungee-Proxy-Bungee-0.12.6-all.jarПереместите его в папку плагинов BungeeCord:
mv RedisBungee-Proxy-Bungee-0.12.6-all.jar /path/to/bungeecord/plugins/</div>
Перезапустите BungeeCord. Он сгенерирует файл конфигурации с настройками по умолчанию. Отредактируйте config.yml (обычно в папке plugins/RedisBungee), чтобы указать свой сервер Redis:
redis:
host: localhost
port: 6379</div>
Перезапустите снова, и плагин начнёт синхронизировать данные игроков. Просто в теории, но есть недавняя проблема, о которой стоит знать (см. раздел устранение неполадок ниже).
Как это работает
ValioBungee использует Java-клиент Redis под названием Jedis для подключения к Redis и хранения информации о игроках. Когда игрок присоединяется, прокси публикует его данные в Redis. Другие прокси подписываются на эти обновления, чтобы знать, кто подключён к всей сети.
Вы можете запросить эти данные через RedisBungeeAPI. Если вы разрабатываете плагин, который нуждается в том, чтобы знать «онлайн ли игрок X сейчас во всей сети?» вместо только на этом сервере, для этого и предназначен API. За кулисами он хранит имена игроков, UUID и состояние подключения. Пользовательские плагины также могут хранить свои данные, что делает его полезным для вещей, таких как общие косметики или сетевые достижения.
Известные проблемы и нюансы
Вот где ValioBungee становится интересным (и слегка раздражающим).
Проблема с перемещением Adventure API: Версия 0.12.6 была выпущена как хотфикс именно потому, что BungeeCord и ValioBungee использовали разные версии библиотеки текста Adventure, вызывая конфликты. Если вы используете Adventure API в своих плагинах, которые также используют RedisBungeeAPI, вам придётся перекомпилировать их после обновления. Это раздражает, но это реальная проблема с управлением зависимостями Java и не уникальна для этого проекта.
Старые плагины, ожидающие старый API: Объявитель отмечает, что версия 0.13.0 (в скором времени) включит слой совместимости для плагинов, написанных для оригинального RedisBungee. Если вы сидите на старых плагинах, вы можете столкнуться с этим, но это исправляется.
Подключение к Redis: Если Redis упадёт, ваши прокси не смогут синхронизироваться. Но это не вина ValioBungee, но стоит знать. Вы должны отдельно отслеживать свой экземпляр Redis.
Настройка варьируется в зависимости от случая использования: Есть вики с инструкциями по настройке, но в деталях есть контекстно-зависимые решения о том, какие данные синхронизировать и как обрабатывать конфликты. Это не плагин «один раз и для всех».
Сравнение с альтернативами
ValioBungee не единственный способ синхронизировать данные игроков через прокси. Существуют кастомные решения, но они требуют разработки и постоянного обслуживания. Встроенные функции прокси в Velocity и BungeeCord имеют некоторый отслеживание игроков, но это ограничено немедленной осведомлённостью сети без синхронизации постоянных данных. Другие решения на базе Redis существуют, но ValioBungee активно поддерживается и имеет реальную поддержку со стороны сообщества. Для большинства сетей это практический выбор без необходимости строить инфраструктуру с нуля.
Сделайте свою сеть сплочённой
Как только ValioBungee будет запущен, ваша сеть начинает чувствоваться как единая система. Игроки видят своих друзей онлайн, ранги следуют за ними между серверами, и пользовательские предметы не теряются при переключении серверов. Эта сплочённость важнее, чем кажется.
Если вы когда-либо играли на плохо связанной сети, где теряли предметы при смене серверов или ранги сбрасывались, вы знаете, насколько это раздражает. ValioBungee удаляет это трение. Разрабатывая свою сеть, вы, возможно, захотите просмотреть скины Minecraft, чтобы найти косметику для своих игроков, или проверить инструмент бесплатный DNS, если настраиваете пользовательные домены для своей сети.
ProxioDev/ValioBungee - EPL-1.0, ★247Lead writer at minecraft.how. Long-time Minecraft player running a small SMP server, testing every build, mod, and seed before writing about it.
Have a Question or Tip about this Guide?Community Q&A
Ask a question or help other players below. Join the discussion and share your Minecraft tips!
Комментарии
Пока нет комментариев. Станьте первым, кто поделится своим мнением!


