EternalTD 设置
当前的 EternalTD 设置流程围绕 Nightbreak 管理的内容、通过 FreeMinecraftModels 提供的可选模型支持以及资源包辅助命令构建。
要求
- EternalTD;本指南依据当前源码
1.7.8 - Java
21 - 运行当前
1.21.4API 线的 Paper/Spigot 兼容服务器
可选集成:
FreeMinecraftModels用于 EternalTD 的自定义模型ResourcePackManager如果你希望 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 并启动服务器一次。
- 使用
/nightbreaklogin关联你的 Nightbreak 账户,然后在它打印的链接处批准该服务器。 - 运行
/etd downloadall将所有可访问的 EternalTD 包下载到plugins/EternalTD/imports。 - 运行
/etd install应用官方 EternalTD 资源包设置。 - 随时运行
/etd setup来浏览、启用、禁用或更新单个包。
/nightbreaklogin 是共享的 Nightbreak/MagmaCore 账户流程的一部分,不是在 EternalTD 的 plugin.yml 中声明的命令。
/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让插件更新更早应用)。也可在游戏内通过/etd setup菜单的 "Automatic Updates" 按钮切换。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 是对插件的一次完整的原地重启 —— 它会走完 EternalTD 的禁用、加载和启用流程 —— 因此启动时发生的一切都会再次发生:
- 旧版的
Levels/和NPCs/文件夹被迁移为小写 - 重新运行导入器
- 重新加载内容包、波次、关卡、世界模板和 NPC
- 刷新包更新/访问状态
- 重新初始化资源包辅助工具
有两个后果值得注意:
- 任何进行中的关卡会话都会被拆除,因为重新加载走的是插件的正常关闭流程。
- 如果此次重新加载向 FreeMinecraftModels 的文件夹导入了模型或其他文件(例如
scripts),且 FreeMinecraftModels 已启用,共享导入器会触发 FMM 的内容重新加载。如果你直接编辑 FMM 文件夹中的文件或将文件复制到其中,请使用 FMM 自己的重新加载命令。
已经在线的玩家
manageSpawn 通常会在玩家加入时将其传送到大厅,但在 EternalTD 仍在初始化期间连接的玩家不会被传送(大厅世界和加入监听器只有在初始化完成后才存在)。初始化完成时,EternalTD 会扫描所有已经在线的玩家,并将尚未处于大厅世界中的玩家传送到配置的出生点。
故障排查
- 无法加入某个关卡。 检查控制台中关于该关卡文件、其波次文件或其世界模板的错误,并在
/etd setup中确认该包已安装并启用。加入和开始时的消息列在世界生命周期和会话启动校验下。 - 防御塔显示为原版生物,或模型没有材质。 分别检查这两部分。模型需要 FreeMinecraftModels 和
EternalTD Custom Models包。材质需要资源包送达玩家;参见模型与资源包。 - 更新内容之前, 请备份你编辑过的任何已打包的关卡、波次或 NPC 文件。内容更新会用包中的文件覆盖你编辑过的副本。
寻求帮助时,请附上 EternalTD 和服务端的版本、受影响的关卡、相关的配置文件以及完整的服务器日志。/logify 会上传日志并返回一个链接。