Настройка EternalTD
Текущий процесс настройки EternalTD построен вокруг контента, управляемого Nightbreak, опциональной поддержки моделей через FreeMinecraftModels и вспомогательной команды для набора ресурсов.
Требования
- EternalTD; инструкции соответствуют текущему исходному коду
1.7.8 - Java
21 - Сервер, совместимый с Paper/Spigot, на текущей линейке API
1.21.4
Опциональные интеграции:
FreeMinecraftModelsдля пользовательских моделей EternalTDResourcePackManager, если вы хотите, чтобы EternalTD регистрировал свой официальный набор ресурсов там вместо записи вserver.propertiesfloodgateи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 записывает в журнал ошибку инициализации. Объедините файлы вручную и перезапустите сервер.
Рекомендуемый порядок первоначальной настройки
- Установите EternalTD и запустите сервер один раз.
- Привяжите свою учётную запись Nightbreak с помощью
/nightbreaklogin, затем одобрите сервер по выведенной ссылке. - Выполните
/etd downloadall, чтобы загрузить все доступные пакеты EternalTD вplugins/EternalTD/imports. - Выполните
/etd install, чтобы применить официальную настройку набора ресурсов EternalTD. - Выполните
/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 загружает журнал и возвращает ссылку.