Skip to main content
/nexohub doctor выполняет большинство приведённых ниже проверок за один раз. Начните с него.

Сервер отображается как stale

Пустой сервер — не причина. Бэкенды отчитываются сами, так что сервер, на котором никого нет, всё равно показывает, что у него есть. Проверяйте в таком порядке:
1

Он запущен?

Бэкенд, который выключен или не имеет моста, отображается как never reported, а не stale.
2

Секрет правильный?

В логе бэкенда написано Hub rejected the request: wrong hub.secret in config.yml. Скопируйте его заново с прокси.
3

Имя правильное?

Если вы задали server_name вручную, оно должно точно совпадать со списком серверов вашего прокси. Бэкенд, на котором ни разу не было игрока и у которого не задано имя, не может запросить свои файлы.
4

Он может достучаться до прокси?

Could not reach the hub означает файрвол или неправильный hub.address. Если на прокси задан http.api_address, бэкенд должен указывать на этот порт.
5

Опрос выключен?

poll_seconds: 0 означает, что этот бэкенд синхронизируется только пока на нём кто-то есть. В его логе при запуске написано Polling is off.

last reload failed на сервере, который выглядит нормально

Сборка пака заняла больше 60 секунд. Большие паки, медленные диски и загруженные старты — всё это к этому приводит. Увеличьте таймаут на прокси:
Если пак собирается за секунды, а вы всё равно это видите, что-то действительно пошло не так. Часть сообщения Nexo said: — это то, что Nexo напечатал во время работы, и обычно там сказано, что именно.
Чистая перезагрузка означает, что пак был собран. Она не означает, что у Nexo не было жалоб по пути, поскольку NexoHub не может отличить ошибку от строки прогресса в собственном выводе Nexo. Если что-то по-прежнему выглядит неправильно, прочитайте консоль этого бэкенда.

Ничего не отправлено, файлы не парсятся

Работает как задумано. Ничего не отправляется, так что ваши бэкенды продолжают работать на последнем рабочем наборе. Исправьте файл и сохраните снова. Если строка выглядит нормально, проверьте строку над ней. Ошибки YAML сообщаются там, где парсер сдался, что часто на одну строку позже.

Бэкенды расходятся в версиях

Разные версии Nexo или Minecraft собирают разные паки из одних и тех же файлов, так что игроки заново скачивают пак при переходе. Обновите отстающий сервер.

Игроки не получают пак

Запустите /nexohub doctor. При хостинге по умолчанию пак раздаётся внешним хостом, и doctor об этом сообщает:
Тогда адрес — не ваша проблема, переходите к разделам ниже. При packs.host: proxy doctor запрашивает ваш адрес снаружи:
Он должен работать из интернета, а не только из вашей собственной сети. Откройте его в браузере: должна начаться загрузка.

Invalid PackServer type specified: HUB

Nexo запустился раньше, чем мост успел зарегистрироваться. Проверьте, что NexoHubBridge.jar находится в plugins/ этого бэкенда, и посмотрите чуть выше этой строки — там будет собственная ошибка моста. Nexo продолжает работу без пак-сервера, так что игрокам не отправляется ничего сломанного.

NexoHubBridge is inactive: hub.secret is not set

Скопируйте secret из config.yml прокси в конфиг этого бэкенда и перезапустите. Он одинаковый на каждом бэкенде. Пока вы этого не сделаете, этот бэкенд не трогает раздачу паков Nexo, вместо того чтобы перехватывать её наполовину, так что игроки там не получают пак. Остальная сеть в порядке.

players will not be able to download it

Прокси был недоступен или отклонил загрузку, поэтому вместо сломанной ссылки не было отправлено ничего. Проверьте, что прокси запущен и что hub.address и hub.secret верны. Повторная попытка будет при следующей перезагрузке.

The hub has no Nexo files of its own, so nothing was swept

Нормально сразу после установки на прокси. Ничего не сломалось и ничего не потеряно. Хаб, у которого пусто в nexo-data/, никогда не трактуется как «удалить файлы этого бэкенда», даже если его бандл уже несёт сгенерированный вывод других бэкендов или общие исходники плагинов. Сделайте одну из двух вещей, о которых говорит сообщение: /nexohub adopt <server>, чтобы заполнить его с бэкенда, которому вы доверяете, или сами положите файлы в nexo-data/_shared/.

Could not reach the hub, continuing on the last synced files

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

HUD или модели выглядят неправильно на одном сервере

Обычно это конфликт имён плагинов. На прокси:
Выключите resourcepack-obfuscation в конфиге BetterHUD. Модели могут выглядеть неправильно без предупреждения на прокси, потому что BetterModel передаёт свой вывод напрямую Nexo, и хаб его никогда не видит. Проверьте лог бэкенда:
Установите pack.use-obfuscation: false в plugins/BetterModel/config.yml на каждом бэкенде и перезапустите. Nexo в любом случае обфусцирует объединённый пак, так что вы ничего не теряете. См. паки плагинов.

/nexohub contributions пуст или в нём нет плагина

Проверьте в консоли бэкенда, что он решил:
Если плагин отсутствует полностью:
  • pack-type: none в его конфиге означает, что он ничего не собирает.
  • Его build-folder-location указывает за пределы Nexo/pack/external_packs/, так что Nexo никогда не импортирует его как внешний пак. BetterModel поставляется так намеренно.
  • Его конфиг не парсится, и бэкенд об этом сообщает.
Zip, который вы сами положили в external_packs/, никогда не публикуется, поскольку никакой плагин на него не претендует. Вместо этого положите его в nexo-data/_shared/pack/external_packs/ на прокси, и его получит каждый бэкенд.

Я распаковал пак на одном бэкенде, и он разошёлся повсюду

Папка в external_packs/ публикуется там, где zip — нет, потому что запись папки туда — это способ, которым собираются некоторые генераторы. Бэкенд об этом сообщает:
Переместите её в nexo-data/_shared/pack/external_packs/ на прокси и удалите с бэкенда. Чтобы оставить её на этом одном бэкенде, укажите её в contribute_exclude.

Мои паки не переместились, когда я запустил /nexohub adopt

Усыновление никогда не переносит pack/external_packs/, потому что большая его часть всё равно пересобирается на каждом бэкенде. Команда перечисляет, что она оставила, и помечает то, за что не отвечает ни один плагин:
Это — ваши файлы. Загрузите их один раз в nexo-data/_shared/pack/external_packs/. Остальным ничего не нужно.

Пак, который я удалил из external_packs, продолжает возвращаться

Его возвращают обе половины. Плагин записывает его снова при следующем запуске, а хаб возвращает ваш собственный вклад как _hub-<name>-<id>. Остановите то, что его генерирует — удалите HUD из конфига BetterHUD, деинсталлируйте плагин или добавьте папку в contribute_exclude — и он исчезнет при следующей перезагрузке. Если бэкенд не может отозвать его сам, удалите его вручную:

Мультипак-шаблоны показывают основной пак

Ваш хост скрывает хеш пака в URL, а мультипаку он нужен. Так делают POLYMATH и LOBFILE. Переключитесь на hermes, s3 или proxy. См. хостинг.

Игроки скачивают пак заново при переходе между серверами

Бэкенды на одних и тех же файлах никогда не должны до этого доходить, поскольку сеть выбирает один пак и все его раздают. Если вы всё же это видите, значит одно из:
  • Старый NexoHubBridge.jar на этих бэкендах. Обновите его везде.
  • Они не смогли достучаться до хаба, когда генерировали. Исправьте соединение и отправьте изменения снова.
  • Один хранит содержимое пака, которого нет у остальных, так что файлы совпадают только на бумаге. Проверьте /nexohub contributions.
Если они на разных файлах, они и должны различаться, и ничего не сломано. Это переопределение для отдельного сервера или разные версии.
Pack.obfuscation.type: NONE здесь не помогает, хотя кажется, что должен. Два сервера с идентичными файлами всё равно собирают разные байты даже при полностью выключенной обфускации.Если полосы загрузки нет и игроки видят только применение пака, ничего не скачивается заново — это пак отправляется повторно, а подавлять это — работа NexoProxy.

Правка сделала только хуже

Копия сохраняется каждый раз, когда ваши файлы меняются. См. безопасность.

Заполняется диск на прокси

Старые паки очищаются автоматически. /nexohub packs prune делает это прямо сейчас, packs.keep и sync.snapshots задают лимиты.