Перейти к основному содержимому

Настройка EternalTD

Текущий процесс настройки EternalTD построен вокруг контента, управляемого Nightbreak, опциональной поддержки моделей через FreeMinecraftModels и вспомогательной команды для набора ресурсов.

Требования​

  • EternalTD; инструкции соответствуют текущему исходному коду 1.7.8
  • Java 21
  • Сервер, совместимый с Paper/Spigot, на текущей линейке API 1.21.4

Опциональные интеграции:

  • FreeMinecraftModels для пользовательских моделей EternalTD
  • ResourcePackManager, если вы хотите, чтобы EternalTD регистрировал свой официальный набор ресурсов там вместо записи в server.properties
  • floodgate и LibsDisguises являются мягкими зависимостями, а не требованиями настройки для текущего процесса установки

plugin.yml объявляет ровно четыре мягкие зависимости: FreeMinecraftModels, LibsDisguises, floodgate и ResourcePackManager. ModelEngine больше нигде в плагине не упоминается.

Что создаёт EternalTD​

При запуске EternalTD инициализирует или использует следующие пути:

plugins/EternalTD/config.yml
plugins/EternalTD/content_packages/
plugins/EternalTD/imports/
plugins/EternalTD/levels/
plugins/EternalTD/waves/
plugins/EternalTD/npcs/
plugins/EternalTD/worlds/

Примечание об устаревших версиях:

  • Плагин теперь использует levels/ и npcs/ как канонические имена папок.
  • При запуске и перезагрузке он автоматически мигрирует устаревшие папки Levels/ и NPCs/ в пути с нижним регистром.
  • Миграция никогда не перезаписывает файлы. Если в папке с нижним регистром уже есть файл с тем же именем, перенос останавливается, неперенесённые файлы остаются в устаревшей папке или в levels_migration/ (npcs_migration/), а EternalTD записывает в журнал ошибку инициализации. Объедините файлы вручную и перезапустите сервер.
  1. Установите EternalTD и запустите сервер один раз.
  2. Привяжите свою учётную запись Nightbreak с помощью /nightbreaklogin, затем одобрите сервер по выведенной ссылке.
  3. Выполните /etd downloadall, чтобы загрузить все доступные пакеты EternalTD в plugins/EternalTD/imports.
  4. Выполните /etd install, чтобы применить официальную настройку набора ресурсов EternalTD.
  5. Выполните /etd setup в любое время, когда хотите просмотреть, включить, отключить или обновить отдельные пакеты.

/nightbreaklogin является частью общего потока учётных записей Nightbreak/MagmaCore, а не командой, объявленной в plugin.yml EternalTD.

Меню /etd initialize​

Пока setupDone равно false, игроки с eternaltd.* через 10 секунд после входа получают напоминание о настройке со ссылками на /etd initialize и /etd setup.

/etd initialize открывает меню первоначальной настройки. Каждый из трёх вариантов устанавливает setupDone: true, после чего напоминание прекращается:

  • Recommended Setup выводит пошаговую инструкцию по настройке и, если сервер ещё не привязан, запускает для вас привязку через /nightbreaklogin.
  • Manual Setup оставляет управление пакетами вам и напоминает выполнить /etd install.
  • Use Current Content оставляет существующие папки контента EternalTD без изменений.

Меню /etd setup​

/etd setup открывает общее меню настройки MagmaCore. Наряду с пакетами контента EternalTD (отфильтрованными по Free Content, Premium Packs и Resources), меню также предоставляет следующие стандартные элементы управления MagmaCore:

  • запись Plugin Update, которая показывает установленную и последнюю версию EternalTD и загружает обновление плагина, когда оно доступно (оно применяется при перезапуске или раньше, если это разрешает nightbreak.applyPluginUpdatesWithoutRestart),
  • запись Recommended Plugins, которая открывает представление с рекомендациями сопутствующих плагинов (также доступно через /etd recommendedplugins),
  • кнопку-переключатель Automatic Updates, которая включает или выключает значение конфигурации nightbreak.autoDownloadPluginUpdates,
  • запись Download All, которая выполняет /etd downloadall (обновление плагина плюс весь доступный контент).

Поведение точки появления и хаба​

config.yml в настоящее время включает:

  • setupDone — флаг, отслеживающий, было ли завершено руководство первоначальной настройки (по умолчанию false).
  • spawnLocations — по умолчанию etd_spawn,0,65,0,0,0; это значение всегда записывается в конфиг. EternalTD разрешает и использует его, только когда существует мир etd_spawn.
  • manageSpawn — по умолчанию true. Телепортирует присоединяющихся игроков в мир-хаб EternalTD, когда он доступен.
  • playerGuide — текст игрового руководства.
  • nightbreak.autoDownloadPluginUpdates — по умолчанию false. Общая настройка MagmaCore; когда true, плагин автоматически загружает доступные обновления плагина и контента при запуске (применяется после следующего перезапуска, если только nightbreak.applyPluginUpdatesWithoutRestart не применит обновление плагина раньше). Это также можно переключить в игре через кнопку «Automatic Updates» в меню /etd setup.
  • nightbreak.applyPluginUpdatesWithoutRestart (по умолчанию never) — общая настройка MagmaCore, определяющая, когда загруженное обновление плагина применяется без перезапуска: never ждёт следующего перезапуска, when-empty применяет его, как только на сервере не останется игроков, а immediately — сразу по завершении загрузки. Любое другое значение считается never. Применение обновления отключает и снова включает EternalTD, поэтому идущие уровни завершаются. /etd applypluginupdate применяет загруженное обновление по требованию.

Когда manageSpawn: true и мир etd_spawn существует, подключающиеся игроки телепортируются в настроенную точку появления EternalTD.

Официальный пакет хаба отслеживается отдельно от игровых карт и устанавливается как мир etd_spawn в контейнере миров сервера.

На Paper 26.1 и новее миры мигрируют из корня контейнера миров в <level-name>/dimensions/minecraft/<world>. EternalTD ищет etd_spawn и в устаревшем корне, и в мигрированном расположении, поэтому мигрированный хаб по-прежнему определяется как установленный и загруженный. Наполовину мигрированные остатки помещаются в карантин перед созданием мира, потому что миграция Paper отказывается объединять устаревшую копию, лежащую рядом с мигрированной.

Перезагрузка после импорта​

Используйте /etd reload после ручного импорта или ручной очистки файлов.

/etd reload — это полный перезапуск плагина на месте: он выполняет путь disable, load и enable EternalTD, поэтому всё, что делает запуск, происходит заново:

  • устаревшие папки Levels/ и NPCs/ мигрируют в нижний регистр
  • импортёр запускается повторно
  • пакеты контента, волны, уровни, шаблоны миров и NPC перезагружаются
  • состояние обновления/доступа пакетов обновляется
  • помощник набора ресурсов инициализируется заново

Два последствия, о которых стоит знать:

  • Любая идущая сессия уровня сворачивается, поскольку перезагрузка проходит через обычное завершение работы плагина.
  • Если при этой перезагрузке импортируются модели или другие файлы в папки FreeMinecraftModels (например, scripts) и FreeMinecraftModels включён, общий импортёр запускает перезагрузку контента FMM. Если вы редактируете или копируете файлы непосредственно в папки FMM, используйте собственную команду перезагрузки FMM.

Игроки, которые уже в сети​

manageSpawn обычно телепортирует игроков в хаб при входе, но игроки, подключившиеся, пока EternalTD ещё инициализируется, этого не получают (мир-хаб и слушатель входа существуют только после завершения инициализации). Когда инициализация завершается, EternalTD проходит по всем, кто уже в сети, и телепортирует в настроенную точку появления всех, кто ещё не находится в мире-хабе.

Устранение неполадок​

  • К уровню нельзя присоединиться. Проверьте консоль на ошибки, связанные с файлом этого уровня, его файлом волн или шаблоном мира, и убедитесь в /etd setup, что пакет установлен и включён. Сообщения о присоединении и старте перечислены в разделах Жизненный цикл мира и Проверка при старте сессии.
  • Башни отображаются как ванильные мобы, или у моделей нет текстур. Проверьте две половины по отдельности. Моделям нужны FreeMinecraftModels и пакет EternalTD Custom Models. Чтобы появились текстуры, ресурс-пак должен дойти до игрока; см. Модели и ресурс-пак.
  • Перед обновлением контента сделайте резервную копию всех отредактированных вами файлов уровней, волн или NPC из пакета. Обновление контента записывает файлы пакета поверх ваших отредактированных копий.

Когда просите о помощи, укажите версии EternalTD и сервера, затронутый уровень, соответствующие конфигурационные файлы и полный журнал сервера. /logify загружает журнал и возвращает ссылку.