メインコンテンツまでスキップ

EternalTDコンテンツパッケージ

EternalTDは現在、content_packages 設定セットを通じて公式コンテンツを追跡し、/etd setup を通じてそれらのパッケージを公開しています。

パッケージカテゴリ

現在のコードは3つのパッケージカテゴリを使用しています:

  • FREE
  • PREMIUM
  • RESOURCES

セットアップメニューでは現在、以下のように表示されます:

  • Free Content
  • Premium Packs
  • Resources

検証済みのプリメイドパッケージ

リポジトリで現在定義されているプリメイドパッケージは以下の通りです:

パッケージカテゴリ/etd setup で切り替え可能追跡されるアセット
EternalTD Hub WorldFreeいいえサーバーワールドコンテナフォルダ etd_spawn
EternalTD TutorialFreeはいtutorial.yml, tutorial_waves.yml, tutorial_npc.yml, etd_tutorial
Towers of the Grassy LandsFreeはいレベルファイル5個、ウェーブファイル1個、NPCファイル1個、ワールド5個
Towers from the DepthsPremiumはいレベルファイル5個、ウェーブファイル1個、NPCファイル1個、ワールド5個
Towers of the Rising SunPremiumはいレベルファイル5個、ウェーブファイル1個、NPCファイル1個、ワールド5個
EternalTD Custom ModelsResourcesいいえマーカーファイルのみ、FreeMinecraftModelsが存在する場合はインポートされたコンテンツも含む

パッケージのライフサイクル

パッケージブラウザは現在以下を区別します:

  • 未ダウンロード
  • 未インストール
  • インストール済み
  • 部分的にインストール済み
  • 古く、更新可能
  • 古いが、アクセス不可
  • アクセスが必要

この状態は、ディスク上の追跡されたアセット、追跡された設定ファイル内の isEnabled フラグ、およびNightbreakのアクセス/更新チェックから計算されます。

パッケージが「部分的にインストール済み」から動かなくなったように見えるとき、次の2つの検出ルールが重要になります:

  • ワールドコンテナのフォルダは両方のレイアウトで照合されます。 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スラグで重複を排除します。
  • セットアップUIは、毎回開くたびに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 だったため、恒久的に「完全にはインストールされていない」状態として表示されていました。追跡名は現在自動的に修正され、読み込み時にパッケージ設定へ書き戻されます — 手動での修正は不要です。