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-packresource-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を先に試します。
クリーンアップに関する注記
カスタムモデルパッケージは通常の切り替え可能なパックではなく、共有リソースコンテンツとして扱われます。
削除したい場合:
- 現在と旧形式のFMMフォルダを確認し、削除したいインポート済みモデルを手動で削除します。
- パッケージをインストール済みと判定させたくない場合は、
plugins/EternalTD/content_markers/eternaltd_custom_models.markerを削除します。検出対象フォルダが空でなければ、次の確認でその状態が復活します。 - FMMを再読み込みして直接のファイル削除を反映し、
/etd reloadを実行します。必要に応じて/fmm setupも確認してください。この手順ではリソースパックの登録やserver.propertiesの設定は削除されません。