跳至主要內容

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 並處理待匯入內容。共用匯入器將模型或其他檔案(例如 scripts)安裝到 FMM 的資料夾且 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 中的設定。