Быстрое перемещение между серверами без Xbox Live - Настройка WaterdogPE

Введение

Вы создали сервер и набрали аудиторию. Онлайн становится только выше, а вместе с ним, и нагрузка на сервер. А может, у вас просто появилась новая идея.
Всё это приводит вас к мысли о том, чтобы создать ещё один сервер, который позволит увеличить аудиторию проекта и повысить комфорт игры.
На этом этапе у многих может возникнуть вопрос: “А как соединить все мои серверы, да ещё и так, чтобы между ними между было перемещаться без входа в Xbox Live?”. В этой статье я расскажу про WaterdogPE, прокси-сервер для мгновенного перемещения между серверами.

Подготовка

Для корректной работы WaterdogPE вам потребуются:
  • Java 11
  • 512 МБ ОЗУ или больше
  • Навыки работы с Linux

Поддерживаемое ПО

WaterdogPE официально поддерживает:
  • PocketMine 3.0
  • PocketMine 4.0
  • Nukkit
  • JukeboxMC

Официально не поддерживает:

  • PowerNukkit
  • Bedrock Dedicated Server

Важно: WaterdogPE поддерживает ядра, в которых реализованы сразу несколько версий игры.

Установка WaterdogPE

Создаём отдельную папку и заходим в неё. Скачиваем последнюю версию Waterdog.jar с сайта Jenkins и выдаём права на запуск файла. Это можно сделать вручную, или с помощью команд:

wget https://jenkins.waterdog.dev/job/Waterdog/job/WaterdogPE/job/master/lastSuccessfulBuild/artifact/target/Waterdog.jar
chmod +x Waterdog.jar

Запускаем WaterdogPE:

java -Xms512M -Xmx4G -jar Waterdog.jar

Разработчики рекомендуют при запуске на Java 11 также указывать параметры для более стабильной работы netty, однако они не являются обязательными:

-Dio.netty.tryReflectionSetAccessible=true
--add-opens java.base/jdk.internal.misc=ALL-UNNAMED

Настройка WaterdogPE

После успешного запуска прокси-сервера вы можете приступить к настройке.
Рассмотрим появившиеся файлы и папки.
изображение

  • Папка logs содержит логи прокси-сервера. Последние логи находятся в файле server.log. Более старые логи сохраняются в gzip архивах.
  • В папку packs можно при необходимости добавить ресурспаки, которые будут загружаться при входе через прокси-сервер.
  • В папку plugins загружаются плагины для прокси-сервера. Примеры плагинов доступны по ссылке.
  • Файл config.yml содержит все настройки WaterdogPE.
  • С помощью lang.ini вы можете настроить то, какие сообщения будут получать игроки в различных ситуациях.

Рассмотрим имеющиеся настройки прокси-сервера. Открываем файл config.yml с помощью текстового редактора.
Первым делом следует указать серверы, между которыми будет возможно перемещение. Пример настройки:

servers:
  lobby:
    address: localhost:19133
    public_address: play.myserver.com:19133
    server_type: bedrock
  survival:
    address: localhost:19134
    public_address: play.myserver.com:19134
    server_type: bedrock
  minigames:
    address: localhost:19135
    public_address: play.myserver.com:19135
    server_type: bedrock

Поле address отвечает за IP-адрес сервера, по которому WaterdogPE будет подключаться. Если ваши серверы находятся на одной машине с WaterdogPE, следует оставить значение localhost или 127.0.0.1. Если же серверы находятся на другом оборудовании, укажите доменное имя или IP-адрес каждого из серверов.
Поле public_address является необязательным и отвечает за то, по какому IP-адресу игроки могут напрямую зайти на сервер.
Поле server_type должно иметь значение bedrock для того, чтобы игроки могли подключиться.

Примечание: Не используйте WaterdogPE как прокси-сервер для Java Edition игроков. Вместо этого используйте GeyserMC и BungeeCord.

После того, как мы указали список серверов, можно настроить сам WaterdogPE. Рассмотрим некоторые из полезных настроек:

motd: §bTest§3Proxy # MOTD прокси-сервера, которое будут видеть игроки в меню
host: 0.0.0.0:19132 # IP-адрес и порт, на котором запустится прокси-сервер 
max_players: 100 # Максимальное количество игроков, которое может играть через прокси-сервер
online_mode: false # Должны ли игроки входить в Xbox Live для подключения
use_login_extras: false # Дополнительные данные об игроке, которые могут быть использованы плагинами серверов
prefer_fast_transfer: true # Если true, прокси-сервер будет быстро перемещать игрока на выбранный сервер, если он использует команду /transferserver, указав сервер из списка
enable_edu_features: true # Включить/Выключить в зависимости от того, есть ли на серверах предметы из Education Edition

Важно: PocketMine 4.0 не поддерживает use_login_extras со значением true. Игроки не смогут подключиться в случае использования этого параметра.

Настройка лобби

Теперь вы можете создать в лобби NPC, которые будут перемещать игрока на серверы.
Для NPC вы можете использовать любой плагин, например Slapper.

Для того, чтобы NPC перемещал игрока с помощью прокси, настройте выполнение следующей команды от имени игрока по нажатию на NPC:

/transferserver survival

Вместо survival укажите название необходимого сервера, которое вы указывали в config.yml.

Теперь, если игрок нажмёт на NPC, он будет моментально перемещён на указанный сервер, даже при отсутствии Xbox Live.

Выводы

Теперь ваши игроки могут заходить на проект через лобби и выбирать интересный им сервер из вариантов, а затем мгновенно перемещаться на него с помощью NPC. Благодаря этому игроки смогут быстро узнавать о новых серверах вашего проекта и играть на них без трудностей.

4 лайка

+10

2 лайка

жаль то что версию не сменить, ех.

Всегда интересовало: а в чëм между ними разница?

Достаточно было открыть интернет https://powernukkit.org/

1 лайк

А если вкратце?

Они разные

1 лайк

PowerNukkit больше косит под ваниллу

2 лайка

PowerNukkit — это модифицированная версия Nukkit, серверного программного обеспечения Minecraft Bedrock Edition, созданного на Java, в котором добавлена ​​поддержка огромного количества функций, таких как заболачивание, все новые блоки, дополнительные события плагинов, свободный слот, исправления ошибок и многое другое.

1 лайк

Это и так можно было прочитать просто зайдя на официальный сайт

1 лайк

Он кстати перестал разрабатываться, т.к. на его замену пришел PowerNukkitX

1 лайк

Чево? Они от разных разработчиков

Да, имею ввиду что PowerNukkit перестал обновляться буквально через пару месяцев после выхода PowerNukkitX, может быть это просто совпадение

1 лайк

Нет не сразу, PowerNukkitX давно существует. PowerNukkit ласт обнова в декабре 22 года.

1 лайк

это были снапшоты с обновлением протоколов, если зайти в главную ветку на гитхабе, там последний комммит в апреле 22 года был

1 лайк

В общем не важно. Это звучит как бред, какие-то люди Форкнули Nukkit назвав свое детище PowerNukkit. Долгое время поддерживали его, оптимизировали, обновляли. Пришел какой-то китаец, форкнул PowerNukkit и назвал его PowerNukkitX, стал делать воистину чудесные вещи с ядром. Разрабы PowerNukkit посмотрели такие, бля да он круче, и бросили разработку своего PowerNukkit


пон

пон