Minecraft.How
Загрузка...
Перейти к содержимому
Создание сплочённой сети Minecraft с ValioBungee

Создание сплочённой сети Minecraft с ValioBungee

Alex Maftei
Alex Maftei
@ice
Обновлено
32 просмотров
TL;DR:ValioBungee - плагин на базе Redis для BungeeCord и Velocity, синхронизирующий данные игроков через несколько прокси-серверов. Идеален для администраторов распределённых сетей Minecraft, требующих надёжной синхронизации данных игроков.
GitHub - проект сообщества Minecraft

ValioBungee (ProxioDev/ValioBungee)

Синхронизация данных игроков между прокси-серверами BungeeCord / Velocity

Star на GitHub ↑
★ 247 звёзд🍵 Java📜 EPL-1.0

Запуск сети 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:

bash
wget https://github.com/ProxioDev/ValioBungee/releases/download/0.12.6/RedisBungee-Proxy-Bungee-0.12.6-all.jar

Переместите его в папку плагинов BungeeCord:

bash
mv RedisBungee-Proxy-Bungee-0.12.6-all.jar /path/to/bungeecord/plugins/
</div>

Перезапустите BungeeCord. Он сгенерирует файл конфигурации с настройками по умолчанию. Отредактируйте config.yml (обычно в папке plugins/RedisBungee), чтобы указать свой сервер Redis:

yaml
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, ★247
Об авторе
Alex Maftei
Alex MafteiВедущий автор

Lead 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!

Комментарии

Пока нет комментариев. Станьте первым, кто поделится своим мнением!

Мы используем файлы cookie для улучшения вашего опыта. Продолжая использовать этот сайт, вы соглашаетесь с использованием нами файлов cookie. Ознакомиться с нашей Политикой конфиденциальности