EternalTD 自訂內容打包
EternalTD 仍然支援基於檔案系統的自訂內容,但目前的程式碼期望特定的資料夾佈局和套件追蹤模型。
匯入根目錄
手動匯入仍然透過以下路徑進行:
plugins/EternalTD/imports/
手動匯入內容後,執行:
/etd reload
規範內容資料夾
目前的插件掃描這些小寫資料夾:
plugins/EternalTD/levels/
plugins/EternalTD/waves/
plugins/EternalTD/npcs/
plugins/EternalTD/worlds/
舊版說明:
Levels/和NPCs/是舊版資料夾名稱。- EternalTD 現在在啟動和重新載入期間將它們遷移到
levels/和npcs/。
世界打包規則
EternalTD 將以下位置的世界:
plugins/EternalTD/worlds/
視為世界範本。
當玩家開始一個關卡時,EternalTD 將匹配的範本世界複製到伺服器世界容器中,並在該複製副本中執行工作階段。
範本在被複製之前會先經過驗證,若符合下列任一情況則拒絕複製:
- 範本根目錄沒有
level.dat - 範本資料夾本身是符號連結,或其內部任何位置含有符號連結
- 範本中含有名為
.eternaltd-instance的檔案
最後那個名稱是保留的:EternalTD 會把它寫入每個執行期複製副本作為擁有權標記,並拒絕刪除任何未帶有相符標記的世界資料夾。請絕對不要在打包的範本中夾帶這個檔案。
實際含義:
- 將範本世界打包在
plugins/EternalTD/worlds/下 - 不要將執行時複製的世界視為打包內容的真實來源
- 世界資料夾名稱必須是單純的名稱 —— 不得含路徑分隔符號、
:或控制字元,也不得為.或..
官方大廳世界是一個特殊情況,直接在伺服器世界容器中作為以下內容進行追蹤:
etd_spawn
什麼使套件可切換
/etd setup 中的套件切換僅適用於公開追蹤設定檔的套件。
目前追蹤的資產欄位為:
levelFileswaveFilesnpcFilesworldFoldersworldContainerFoldersmarkerFileName
實際上:
- 關卡、波次和 NPC 套件可以透過在這些 YAML 檔案中寫入
isEnabled來啟用或停用 - 共享世界容器內容和僅標記的資源套件不能以相同方式切換
套件中繼資料欄位
目前的套件設定欄位模型支援:
isEnablednamedescriptiondownloadLinkversionnightbreakSluglevelFileswaveFilesnpcFilesworldFoldersworldContainerFoldersmarkerFileNamecategorytoggleable
如果你希望自訂內容在設定介面中表現為追蹤套件,你需要匹配這些欄位的套件中繼資料。
另外還有一個被追蹤的欄位 markerFallbackFolders,它列出 plugins/ 底下的資料夾,只要這些資料夾非空存在也會被視為該套件已安裝。它的存在是為了那些不透過下載流程寫入標記就能抵達伺服器的內容。它只定義於程式碼中 —— 寫進套件 YAML 不會有任何效果。
模型打包說明
目前的 EternalTD Custom Models 套件使用標記檔案而不是普通的 EternalTD 設定檔進行追蹤。
這意味著:
- EternalTD 可以追蹤共享模型套件是否已下載
- 當 FMM 安裝時,實際的模型資產位於 FreeMinecraftModels 側的設定中
- 清理是手動的,之後需要執行
/etd reload
此頁面未聲明的內容
此頁面記錄了在儲存庫中驗證的目前磁碟目標位置和追蹤模型。
它不定義 Nightbreak 套件封存的第一方 ZIP 模式,因為該打包格式在此儲存庫中未作為獨立的公開創作規範描述。