EternalTDコンテンツパッケージ
EternalTDは現在、content_packages 設定セットを通じて公式コンテンツを追跡し、/etd setup を通じてそれらのパッケージを公開しています。
パッケージカテゴリ
現在のコードは3つのパッケージカテゴリを使用しています:
FREEPREMIUMRESOURCES
セットアップメニューでは現在、以下のように表示されます:
Free ContentPremium PacksResources
検証済みのプリメイドパッケージ
リポジトリで現在定義されているプリメイドパッケージは以下の通りです:
| パッケージ | カテゴリ | /etd setup で切り替え可能 | 追跡されるアセット |
|---|---|---|---|
EternalTD Hub World | Free | いいえ | サーバーワールドコンテナフォルダ etd_spawn |
EternalTD Tutorial | Free | はい | tutorial.yml, tutorial_waves.yml, tutorial_npc.yml, etd_tutorial |
Towers of the Grassy Lands | Free | はい | レベルファイル5個、ウェーブファイル1個、NPCファイル1個、ワールド5個 |
Towers from the Depths | Premium | はい | レベルファイル5個、ウェーブファイル1個、NPCファイル1個、ワールド5個 |
Towers of the Rising Sun | Premium | はい | レベルファイル5個、ウェーブファイル1個、NPCファイル1個、ワールド5個 |
EternalTD Custom Models | Resources | いいえ | マーカーファイルのみ、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だったため、恒久的に「完全にはインストールされていない」状態として表示されていました。追跡名は現在自動的に修正され、読み込み時にパッケージ設定へ書き戻されます — 手動での修正は不要です。