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

EternalTDモデルとリソースパック

EternalTDはモデルに FreeMinecraftModels を使い、/etd install でリソースパックの配布を設定します。

FreeMinecraftModels​

FreeMinecraftModels はソフト依存関係です。

  • EternalTDはそれなしでも読み込まれます。
  • 存在する場合、タワーのバニラの本体をFMMの静的モデルに置き換えられます。モデルが見つからない場合は警告を記録し、バニラの本体を残します。
  • 存在しない場合は、起動を妨げずにバニラのタワー本体を使います。連携フラグはプラグインの存在を確認するため、無効化されたFMMや互換性のない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 で行われるわけではありません。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の呼び出しであり、クライアントへの配布成功ではありません。起動時には、有効なResourcePackManagerをパック設定済みと見なすだけで、この登録は行いません。/etd install で登録を要求し、接続中のプレイヤーでパックを確認してください。

ResourcePackManagerが利用できない、または登録に失敗した場合​

ResourcePackManagerが無効、未インストール、またはAPI登録でエラーが発生した場合、EternalTDは server.properties を直接編集します。

以下を書き込みます:

  • resource-pack
  • resource-pack-sha1

いずれかのプロパティを変更する前に、EternalTDはパックをダウンロードし、受信したバイトからSHA1を計算します。パックはディスクに保存されません。ダウンロードには10秒の接続タイムアウトと30秒の読み取りタイムアウトが設定されています。ダウンロードまたはハッシュ計算に失敗した場合、server.properties は変更されません。成功した場合は、一時ファイルを介して両方の値がまとめて書き込まれ、オペレーティングシステムが対応していれば原子的な置換が行われます。両方の値がすでに一致している場合、ファイルは書き換えられません。

このフォールバックモードでは、新しいパック設定を適用するためにサーバーを再起動するよう指示されます。

SHA1更新チェック​

EternalTDがResourcePackManagerの代わりに server.properties パスを使用している場合、起動時(および /etd reload 時)に公式リソースパックのSHA1が変更されたかどうかもチェックします。

このチェックは、resource-pack が上記の公式EternalTD URLと完全に一致する場合にのみ実行されます。それ以外のURLのパックには手を加えません。ハッシュが変わっていた場合、EternalTDは resource-pack にまだ公式URLが設定されていることを確認してから、新しい resource-pack-sha1 を書き込みます。この変更は告知されません。新しいハッシュは、次回の再起動後にサーバーからプレイヤーへ送信されます。書き込みがスキップされたか失敗した場合、チェックサムが更新されなかったことがコンソールに記録されます。ResourcePackManagerが有効な場合、この起動処理は実行されません。

オペレーター警告動作​

以下のすべてが当てはまる場合:

  • FreeMinecraftModels がインストールされている
  • 参加するプレイヤーがオペレーターである
  • EternalTDがアクティブなリソースパック設定を検出しない

EternalTDは5秒後に警告を予約し、その時点でもプレイヤーが有効なら次のコマンドを案内します:

  • /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 の設定は削除されません。