EternalTD 模型和资源包
EternalTD 使用 FreeMinecraftModels 显示模型,通过 /etd install 配置资源包分发。
FreeMinecraftModels
FreeMinecraftModels 是一个软依赖。
- EternalTD 在没有它的情况下仍然可以加载。
- 当它存在时,EternalTD 可以用 FMM 静态模型替换塔的原版实体。模型缺失时会记录警告,并保留原版实体。
- 当它不存在时,EternalTD 使用原版塔实体,不会阻止启动。集成标志检查的是插件是否存在,因此已禁用或不兼容的 FMM 不等同于未安装。
当前的共享模型包是:
EternalTD Custom Models
该包通过 EternalTD 的内容流程下载,在代码中被描述为当 FMM 可用时导入到 FreeMinecraftModels 的内容。
EternalTD 的包跟踪机制也接受以下任一非空 FMM 文件夹作为已安装内容:
plugins/FreeMinecraftModels/models/EternalTD default towers/
plugins/FreeMinecraftModels/Models/EternalTD default towers/
首字母大写的是旧版文件夹名称。检测到任一非空文件夹后,内容便计为已安装,并尝试写入 plugins/EternalTD/content_markers/eternaltd_custom_models.marker;写入失败会记录日志。已有标记同样有效,即使模型文件后来被删除。两种检查都不验证模型内容,也不证明模型成功加载。
/etd reload 对模型做了什么
/etd reload 会在服务器内重启 EternalTD 并处理待导入内容。共享导入器向 FMM 的文件夹安装模型或其他文件(例如 scripts)且 FMM 已启用时,其模型安装通知会调用 FMM 的导入内容重载。这是有条件的,并非每次 /etd reload 都会重载 FMM。EternalTD 自己另有一个转发方法,但没有调用方。
如果直接编辑或复制文件到 FMM 文件夹,请使用 FMM 自己的重载命令。检查日志及游戏中的实际模型;只有包标记还不够。
/etd install
/etd install 不会下载模型包。它应用官方的 EternalTD 资源包分发设置。
当前官方资源包 URL 是:
https://www.magmaguy.com/downloads/eternaltd_resource_pack.zip
如果安装了 ResourcePackManager
如果 ResourcePackManager 已启用,EternalTD 会注册官方包并请求重载包状态。
在该模式下:
- EternalTD 不会将包 URL 写入
server.properties - ResourcePackManager 处理向玩家的分发
- EternalTD 将
/etd reload注册为后续重新加载命令
注册消息只确认 API 调用,不代表资源包已成功交付客户端。启动时,EternalTD 仅将已启用的 ResourcePackManager 视为资源包设置有效,并不执行这项注册。请运行 /etd install 请求注册,再用在线玩家验证资源包。
如果 ResourcePackManager 不可用或注册失败
如果 ResourcePackManager 已禁用、未安装,或 API 注册抛出错误,EternalTD 会改为直接编辑 server.properties。
它会写入:
resource-packresource-pack-sha1
更改任一属性前,EternalTD 会下载资源包,并在数据到达的同时计算其 SHA1,不会把资源包保存到磁盘。下载使用 10 秒的连接超时和 30 秒的读取超时。下载或哈希计算失败时,server.properties 保持不变。成功后,通过临时文件一起写入两个值,并在操作系统支持时使用原子替换。如果两个值都已一致,则不会重写该文件。
在此回退模式下,命令会告诉你重启服务器以使新的包设置生效。
SHA1 更新检查
如果 EternalTD 使用的是 server.properties 路径而不是 ResourcePackManager,启动时(以及执行 /etd reload 时)还会检查官方资源包的 SHA1 是否已更改。
只有当 resource-pack 恰好是上面的官方 EternalTD URL 时才会执行此检查;来自其他任何 URL 的资源包都不受影响。如果哈希已更改,EternalTD 会在确认 resource-pack 仍是官方 URL 后写入新的 resource-pack-sha1。它不会公告这一变化;服务器会在下次重启后把新哈希发送给玩家。如果写入被跳过或失败,控制台会记录校验和未更新。ResourcePackManager 已启用时会跳过此启动分支。
操作员警告行为
当以下所有条件都为真时:
FreeMinecraftModels已安装- 加入的玩家是操作员
- EternalTD 未检测到活跃的资源包设置
EternalTD 会安排在五秒后显示警告,前提是玩家届时仍有效。警告列出以下命令:
/etd install/etd initialize— 打开首次设置菜单。所需权限:eternaltd.*./etd setup
检测仅表示 ResourcePackManager 已启用,或 server.properties 的 resource-pack 值非空。它不检查客户端是否接受,也不检查资源包是否包含 EternalTD 资源。警告描述的是 server.properties 方案,但 /etd install 仍会优先尝试 ResourcePackManager。
清理说明
自定义模型包被视为共享资源内容,而不是普通的可切换包。
如果你想移除它:
- 检查当前和旧版 FMM 文件夹,删除需要移除的已导入模型文件。
- 如果希望该包不再计为已安装,请删除
plugins/EternalTD/content_markers/eternaltd_custom_models.marker。如果检测用的备用文件夹仍非空,下次检查会恢复该状态。 - 重载 FMM 以应用直接删除文件的变更,然后运行
/etd reload。按需检查/fmm setup。这些步骤不会删除资源包注册或server.properties中的设置。