Skip to main content
Вам понадобится прокси Velocity, BungeeCord или Waterfall и хотя бы один бэкенд на Paper или Folia с уже установленным и работающим Nexo.
1

Установите NexoHub на прокси

Поместите jar для вашего прокси в его папку plugins/ и запустите его: NexoHubVelocity.jar на Velocity, NexoHubBungee.jar на BungeeCord или Waterfall.При первом запуске он создаёт plugins/nexohub/config.yml и генерирует в нём секрет. На BungeeCord папка называется plugins/NexoHub/; всё остальное одинаково, и далее на этом сайте она записывается как plugins/nexohub/ для обоих случаев. Скопируйте это значение; оно понадобится на каждом бэкенде.
2

Решите, где размещается пак — или не решайте

На свежей установке здесь делать ничего не нужно. Пак загружается на Hermes, собственный хостинг Nexo, и каждый бэкенд выдаёт игрокам эту ссылку, так что не нужно открывать порт и не нужно правильно указывать адрес.
Чтобы вместо этого раздавать пак с самого прокси, установите host: proxy и укажите адрес, который будут использовать игроки:
При host: proxy этот адрес попадает в ссылку на ресурспак, отправляемую каждому игроку, поэтому он должен быть доступен из интернета, а порт должен быть открыт в вашем файрволе. Если оставить поле пустым, NexoHub откатится на localhost, что подходит только для тестирования на вашей собственной машине.
О других вариантах хостинга и о том, что нужно для мультипака, см. где размещается пак.
3

Установите мост на каждый бэкенд

Поместите NexoHubBridge.jar в папку plugins/ каждого бэкенда, рядом с Nexo.В plugins/NexoHubBridge/config.yml:
Это единственный файл, который вы редактируете. Собственный параметр Nexo Pack.server.type устанавливается в HUB за вас при первом запуске, который обнаружит settings.yml, до того как Nexo его прочитает.Перезапустите бэкенды. Хаб пока пуст и никто ещё не заходил, поэтому каждый бэкенд сообщает об этом и ждёт:
Записывается один раз, а затем не трогается. Если вы в любой момент вернёте значение вручную, этот бэкенд выйдет из сети, и мост не станет это отменять. На бэкенде, где Nexo ещё ни разу не запускался, пока нет settings.yml, куда можно было бы писать, поэтому мост сообщает, что сделает это при следующем запуске, — и делает.
Оставьте server_name: auto. Прокси сообщает каждому бэкенду его имя при первом заходе игрока, поэтому имя хранится только в собственном списке серверов вашего прокси: в velocity.toml или в config.yml BungeeCord.
4

Заполните хаб с одного бэкенда

Зайдите в сеть, затем на прокси укажите бэкенд, из чьей папки plugins/Nexo/ должна собираться вся сеть:
Этот бэкенд отправляет свою папку наверх:
Зайдите в сеть, прежде чем выполнять эту команду. При server_name: auto бэкенд не знает собственного имени, пока не зайдёт игрок, а пока он его не знает, принять от него файлы нельзя. Запрос истекает через пять минут.
Принятие файлов перезаписывает _shared/ файлами этого одного бэкенда, так что все остальные бэкенды вот-вот их получат. Если ваши серверы разошлись между собой, решите, какой из них указать первым: см. перенос существующей сети.
Вместо этого вы можете в любой момент заполнить nexo-data/ по SFTP. Скопируйте содержимое папки plugins/Nexo/ одного бэкенда в plugins/nexohub/nexo-data/_shared/, сохранив ту же структуру:
Пропустите всё сгенерированное: pack/pack.zip, всё содержимое pack/external_packs/ и скрытые папки вроде .assetCache/. Паки плагинов NexoHub обрабатывает отдельно, см. паки плагинов.
5

Убедитесь, что каждый бэкенд всё подхватил

Хаб отправляет файлы, как только они у него появляются, поэтому все остальные бэкенды получают их без перезапуска:
На втором и последующих бэкендах загрузка превращается в пропуск:
Затем выполните /nexohub status на прокси:
6

Проверьте всё остальное

Эта команда проверяет то, что вы не можете увидеть с того места, где находитесь. При host: proxy самое важное из этого — отвечает ли адрес в вашей ссылке на ресурспак извне вашей собственной сети; при делегированном хостинге по умолчанию у вас нет своего адреса для проверки, и команда так и сообщает.

Что дальше

Отредактируйте любой файл в nexo-data/ и сохраните его. В течение нескольких секунд каждый бэкенд подтянет изменение, перезагрузит Nexo, и игроки получат обновлённый пак. Не нужно запускать команду или что-либо перезапускать.
Ничего не отправляется, пока не пройдёт разбор. Если вы опечатаетесь в строке, ваши бэкенды останутся на последних рабочих файлах, а ошибка попадёт в вашу консоль, а не к игрокам. См. как не сломать свою сеть.
Бэкенду, на котором никого нет, невозможно отправить сообщение, поэтому он сам запрашивает изменения у хаба каждую минуту. В том же запросе он сообщает, что у него есть, так что пустой сервер всё равно корректно отображается в /nexohub status.