跳至主要內容

EternalTD 內容套件

EternalTD 現在透過 content_packages 設定集追蹤官方內容,並透過 /etd setup 公開這些套件。

套件類別

目前的程式碼使用三種套件類別:

  • FREE
  • PREMIUM
  • RESOURCES

設定選單目前將它們顯示為:

  • Free Content
  • Premium Packs
  • Resources

已驗證的預製套件

以下是目前在儲存庫中定義的預製套件:

套件類別/etd setup 中可切換追蹤的資產
EternalTD Hub WorldFree伺服器世界容器資料夾 etd_spawn
EternalTD TutorialFreetutorial.ymltutorial_waves.ymltutorial_npc.ymletd_tutorial
Towers of the Grassy LandsFree5 個關卡檔案、1 個波次檔案、1 個 NPC 檔案、5 個世界
Towers from the DepthsPremium5 個關卡檔案、1 個波次檔案、1 個 NPC 檔案、5 個世界
Towers of the Rising SunPremium5 個關卡檔案、1 個波次檔案、1 個 NPC 檔案、5 個世界
EternalTD Custom ModelsResources僅標記檔案,加上存在時匯入的 FreeMinecraftModels 內容

套件生命週期

套件瀏覽器目前區分以下狀態:

  • 未下載
  • 未安裝
  • 已安裝
  • 部分安裝
  • 已過時且可更新
  • 已過時但不可存取
  • 需要存取權限

該狀態根據磁碟上追蹤的資產、追蹤設定檔中的 isEnabled 標記以及 Nightbreak 存取/更新檢查計算得出。

當某個套件看起來卡在「部分安裝」時,有兩條偵測規則很重要:

  • 世界容器資料夾在兩種版面配置下都會被比對。 Paper 26.1 及更新版本會把插件世界遷移到 <level-name>/dimensions/minecraft/<world>。只要世界容器資料夾存在於舊有根目錄或遷移後的位置之一,EternalTD 就會視為已存在,而且它刻意檢查資料夾而非 level.dat —— 若要求 level.dat,在遷移進行到一半時該套件會翻轉為「未安裝」並觸發重新安裝,而 Paper 之後會拒絕合併。
  • 以標記追蹤的套件具備內容後備。 僅以標記檔案追蹤的套件,也可以透過其在 plugins/ 底下的內容資料夾是否存在來偵測。發生這種情況時會立刻寫入標記,讓狀態之後保持穩定。這正是為什麼當自訂模型包的模型是手動匯入而非透過選單安裝時,仍會被判讀為已安裝。後備資料夾清單定義在程式碼中,而非讀取自套件的 YAML。

可切換套件與共享套件

可切換套件透過在以下位置的追蹤設定檔中切換 isEnabled 來運作:

plugins/EternalTD/levels/
plugins/EternalTD/waves/
plugins/EternalTD/npcs/

共享套件的行為與普通切換不同:

  • 大廳世界被視為共享已安裝內容。
  • 自訂模型套件被視為共享資源內容。

對於這些套件,設定選單會告訴你手動刪除檔案,然後執行 /etd reload

批次操作

目前實作的批次內容操作有:

  • /etd downloadall — 下載 EternalTD 插件更新以及所有可用內容
  • /etd downloadallcontent — 下載所有可用內容(不含插件更新)
  • /etd updatecontent(別名 /etd updateallcontent)— 僅下載過時的內容

內容下載/更新指令會:

  • 需要已連結的 Nightbreak 令牌
  • 下載到 plugins/EternalTD/imports
  • 跳過不可存取或已是最新版本的套件
  • 成功下載後自動重新載入 EternalTD

/etd downloadall 此外還會先檢查並下載插件更新;如果未連結令牌或驗證失敗,它會在內容步驟之前停止。

實用說明

  • 套件檢查在批次下載/更新前按 Nightbreak slug 去重。
  • 設定介面以冷卻時間重新整理內容和存取資訊,而不是每次開啟都查詢 Nightbreak。
  • 自訂模型套件在 plugins/EternalTD/content_markers/ 下寫入標記,以便 EternalTD 可以追蹤共享資源套件是否已下載。
  • 被追蹤的關卡、波次與 NPC 檔案是以檔名在 levels/waves/npcs/ 底下任意位置比對,因此把檔案放在子資料夾中的套件仍能被偵測到。
  • Towers of the Rising Sun 先前把它的波次檔案追蹤為 towers_of_the_rising_sun.yml,但該包實際提供的是 towers_of_the_rising_sun_waves.yml,導致它永遠被判讀為未完全安裝。追蹤名稱現在會自動修正並在載入時寫回套件設定 —— 不需要手動處理。