Введение
Вы создали сервер и набрали аудиторию. Онлайн становится только выше, а вместе с ним, и нагрузка на сервер. А может, у вас просто появилась новая идея.
Всё это приводит вас к мысли о том, чтобы создать ещё один сервер, который позволит увеличить аудиторию проекта и повысить комфорт игры.
На этом этапе у многих может возникнуть вопрос: “А как соединить все мои серверы, да ещё и так, чтобы между ними между было перемещаться без входа в 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. Благодаря этому игроки смогут быстро узнавать о новых серверах вашего проекта и играть на них без трудностей.


