FreeMinecraftModelsのコンテンツパッケージ
公式FMMコンテンツは、管理されたNightbreakパッケージとして公開されるようになりました。
現在の公式パッケージ
現在のプラグインは、プロップとアイテムのコンテンツを混在させた5つの既製公式パッケージを定義しています:
| パック | タイプ | 設定ファイル名 | フォルダ名 | Nightbreakスラッグ |
|---|---|---|---|---|
Basic Furniture Pack | プロップ | basic_furniture_pack | Basic Furniture Pack | basic-furniture-pack |
BetterStructures Prop Pack | プロップ | betterstructures_prop_pack | bs prop pack | betterstructures-prop-pack |
EliteMobs Prop Pack | プロップ | elitemobs_prop_pack | em_dungeon_prop_pack | elitemobs-prop-pack |
Craftenmine's Weapons Item Pack | カスタムアイテム | craftenmines_weapons_item_pack | fmm_craftenmine_weapons_items_pack | craftenmines-weapons-item-pack |
Craftenmine Tools Item Pack | カスタムアイテム | craftenmine_tools_item_pack | fmm_craftenmine_tools_items_pack | craftenmine-tools-item-pack |
設定ファイル名はplugins/FreeMinecraftModels/content_packages/内の.ymlエントリを指定します。フォルダ名はmodels/またはmodels_disabled/内のモデルディレクトリを指定します。接頭辞は後述のとおり別に設定します。
各パッケージは、ローカルフォルダ名、Nightbreakスラッグ、バージョンフィールド、content_packages内の有効・無効状態を持ちます。Craftenmineの2つのアイテムパックは、material:定義と名前空間付きエンチャントを持つ手持ちアイテムを提供します。装備アイテム用のscripts:を含む古いコンテンツは更新が必要で、その定義はスキップされます。
セットアップメニューが管理するもの
/fmm setupはローカル設定、検出したファイル、キャッシュされたNightbreak情報からパッケージ状態を表示します。次の状態を区別できます:
- インストール済みパッケージ
- ダウンロード済みだが現在は無効のパッケージ
- 古くなったパッケージ
- Nightbreakアクセスが必要なパッケージ
メニューはバックグラウンドでバージョンとアクセス情報を更新します。更新には5分間のクールダウンがあります。バージョン確認の対象はインストール済みと検出されたパッケージです。インストール済みの表示は、パッケージが有効で管理対象のモデルエントリが存在することを意味します。全モデルの読み込みやクライアントへのリソースパック配信は証明しません。/fmm admin、コンソール、クライアントへの配信も確認してください。
フォルダの挙動
プラグインは、有効/無効コンテンツに対してパッケージ状態のフォルダ移動を使用します:
- 有効なモデルフォルダは
models/<folderName>にあります - 無効なモデルフォルダは
models_disabled/<folderName>にあります - 有効なスクリプトファイルは
scripts/にあります - 無効なスクリプトファイルは
scripts_disabled/にあります
ダウンロードしたコンテンツは、有効でなくてもディスク上に存在できます。インストール・アンインストールは一致するモデル、スクリプト、エンチャントのエントリを移動し、有効状態を保存してからリロードを要求します。移動は順次行われ、アトミックなトランザクションではありません。移動や状態保存の失敗で一部だけ変更される可能性があるため、再試行前にコンソールと両方の保存先を確認してください。どちらの操作にも移動元の管理対象モデルエントリが必要です。スクリプトやエンチャントだけのファイルはダウンロード済みと判定されても、その操作でインストールできるとは限りません。
古い環境ではModelsやModels_disabledを使っている場合があります。有効モデルのパスは小文字のmodelsを優先し、無効側は既存のModels_disabledを優先します。大文字と小文字を区別するディレクトリを統合する前に、モデル作成上の注意を確認してください。
ファイル接頭辞
パッケージ設定にはcontentFilePrefixesとscriptFilePrefixesがあります。組み込みの5つの定義では両方とも空のリストで初期化され、folderNameを自動的に接頭辞にはしません。インストールされた設定の値を確認してください。
モデルとエンチャントでは、FMMは正確なfolderNameエントリと、名前がcontentFilePrefixesの値で始まるルート直下のエントリを選択します。スクリプトではscriptFilePrefixesに一致するルート直下のエントリだけを選び、フォルダ名による追加の一致判定はありません。接頭辞は大文字と小文字を区別せず、ファイルやディレクトリ全体を選択できます。無関係なディレクトリ内のファイルを再帰検索するものではありません。固有の接頭辞を使い、参照先ファイルを選択対象のエントリ内に含めてください。
ダウンロードとインストールのライフサイクル
明確な2つのステップがあります:
- パッケージコンテンツをダウンロードします。
保存先は
plugins/FreeMinecraftModels/importsです。管理対象のダウンロードが成功すると、有効状態を保存してからリロード・インポートを要求します。 - パッケージを有効または無効に保ちます。
セットアップメニューは、フォルダを
modelsとmodels_disabledの間で移動することによって、パッケージをインストール・アンインストールします。
一括操作も同じモデルに従います:
/fmm downloadallは、プラグインjarの更新をダウンロードしたうえで、欠落しているまたは古くなっているアクセス可能なすべてのパッケージをダウンロードします。コンテンツはFMMの後続のリロードで適用できますが、プラグインjar自体は再起動後または/fmm applypluginupdateの実行後に反映されます/fmm downloadallcontentは、プラグインjarの更新なしで同じコンテンツの一括処理を行います/fmm updatecontent(エイリアス/fmm updateallcontent)はバージョンとアクセス情報を更新し、古いと判定されたパッケージを更新します。現在、バージョン確認はインストール済みパッケージが対象です
一括処理はパッケージを順次処理し、ダウンロードと準備の成功を失敗とは別に報告します。1つ以上が成功すれば、他に失敗があっても20ティック後のリロードを予約します。成功がなければリロードしません。空のインストール処理は新規コンテンツなし、空の更新処理は保留中の更新なしと報告します。ダウンロードの成功は、その後のインポート、モデル読み込み、クライアント配信の成功を証明しません。
コンテンツの一括操作は共通のガードを使い、最初の処理が完了するか後続のリロードを開始するまで2つ目をブロックします。リンク済みのNightbreakトークンが必要で、認証失敗時は停止します。通常のパッケージ失敗は報告して残りを続行します。開始したプレイヤーがログアウトしても、コンソールへの報告で処理を継続します。プラグイン停止時は、そのライフサイクルの保留中のダウンロード公開処理とコールバックが無効になります。
パッケージの修復
通常の選択は検出ファイルとバージョン状態を使い、ファイルの整合性は検査しません。一部が破損していても最新と判定され、スキップされる場合があります。/fmm forcereinstallcontent <package|all>はバージョンに関係なく選択した内容を再ダウンロードし、成功後にリロードを要求します。無効なパッケージを強制的に有効化する処理ではありません。
- タブ補完では
allに加えて各パッケージのNightbreakスラッグ(basic-furniture-pack、betterstructures-prop-pack、elitemobs-prop-pack、craftenmines-weapons-item-pack、craftenmine-tools-item-pack)が提示されます。 allはダウンロード済み、インストール済み、または古いと判定されたパッケージを選びます。対象がなければNo downloaded content was detected. Specify a package slug directly if its files are completely missing.と報告します。完全に欠落したパックはスラッグを直接指定してください。- 不明な指定子は
Unknown Nightbreak content package: <name>と報告されます。 - 他の一括操作と同じ多重実行ガードを共有し、
freeminecraftmodels.*を必要とします。
他のパックに含まれるコンテンツ
EliteMobsやBetterStructuresのパックをそのプラグインのimportsフォルダに置いた場合など、あらゆるNightbreakプラグインのコンテンツパックは、plugins/FreeMinecraftModels/と同じ構成のトップレベルfreeminecraftmodels/フォルダにFreeMinecraftModelsのコンテンツを含めることができます。たとえばfreeminecraftmodels/enchantments/はパックのアイテムが使うfreeminecraftmodels:エンチャントを提供し、freeminecraftmodels/models/はFMMが読み込むmodelsフォルダ(小文字のmodels、または旧形式のModelsフォルダが存在する場合はそちら)に統合されます。パック内のトップレベルのmodels/とscripts/フォルダもFMMに送られます。トップレベルのenchantments/フォルダは、pack.metaで指定されたパックのプラットフォーム(pack.metaがない場合は、パックが置かれたimportsフォルダのプラグイン)に従います。FreeMinecraftModelsのパックではFMMにインストールされ、EliteMobsとBetterStructuresのパックではEliteMobsにインストールされます。
別のプラグインのインポートがFMMのフォルダにファイルを配置した場合、FMMはその後にインポート済みコンテンツのリロードを実行します。このリロードはモデル、アイテム、エンチャント、プロップスクリプト、レシピ、リソースパックを再構築しますが、config.ymlやshop_config.ymlは再読込しません。
管理者コンテンツブラウザ
/fmm adminは、読み込み済みモデルと登録済みカスタムアイテムのゲーム内ブラウザを開きます。次を表示します:
- 読み込み済みコンテンツを持つ有効なパッケージ(プロップ数とアイテム数を分けて表示)
- 未パッケージモデルフォルダ(プロップ数とアイテム数を分けて表示)
- 個別のプロップモデル
- 正常に登録されたカスタムアイテム
プロップは黄色の表示と紙のアイコンを使います。カスタムアイテムは設定された素材と名前を使い、代替名は紫色です。表示にはアイテム登録の成功が必要で、ファイルにmaterial:があるだけでは不十分です。拒否された定義は、動作するカスタムアイテムとして一覧に表示されません。
パッケージやフォルダのエントリは内容一覧を開きます。個別のプロップやアイテムをクリックすると、コピーがインベントリに追加されます。カスタムアイテムは設定された素材、エンチャント、ロア、fmm_item_idタグを含み、プロップは紙の設置アイテムを渡します。この管理者用処理はあふれたアイテムを地面に落とさないため、空きを確保してください。作成エラーはチャットで通知されます。登録やメニュー表示だけでは、クライアントで正しく描画される証拠にはなりません。
エンチャントのコンテンツ
パッケージの有効化・無効化は、モデルやプロップスクリプトとともに管理対象エンチャントのYAML/Luaも扱います。有効な内容はenchantments/、無効な内容はenchantments_disabled/に置かれます。選択には上記のフォルダ名とコンテンツ接頭辞の規則を使うため、プロバイダー定義と参照先スクリプトを選択対象のエントリ内に含めてください。廃止されたアイテムスクリプトのランタイムは、不足したエンチャントプロバイダーの代わりにはなりません。