跳到主要内容

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-pack
  • resource-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。

清理说明​

自定义模型包被视为共享资源内容,而不是普通的可切换包。

如果你想移除它:

  1. 检查当前和旧版 FMM 文件夹,删除需要移除的已导入模型文件。
  2. 如果希望该包不再计为已安装,请删除 plugins/EternalTD/content_markers/eternaltd_custom_models.marker。如果检测用的备用文件夹仍非空,下次检查会恢复该状态。
  3. 重载 FMM 以应用直接删除文件的变更,然后运行 /etd reload。按需检查 /fmm setup。这些步骤不会删除资源包注册或 server.properties 中的设置。