====== 依存関係のオーバーライド ======
Fabric ローダーバージョン ''0.11.1'' では、 "Dependency Overrides" 〔依存関係のオーバーライド〕という名前の機能が導入されました。
**使用する前に:この機能は、 Mod パック開発者が Mod の依存関係をより細かく制御できるように設計されています。**
通常のプレイヤーとして、これを使用するべきではありませんが、 Mod 開発者に変更したいことは何でもするように依頼してください。
===== 要件 =====
* Fabric ローダー ''0.11.1'' 以降
* ''fabric.mod.json'' の依存関係の構文と 5 種類の依存関係(''depends'' 〔依存〕、 ''recommends'' 〔推奨〕、 ''suggests'' 〔提案〕、 ''conflicts'' 〔競合〕、 ''breaks'' 〔中断〕)に慣れる
===== Starting =====
まず、 ''config'' フォルダー(''.minecraft'' フォルダー内にある必要があります)内に ''fabric_loader_dependencies.json'' という名前のファイルを作成します。
次に、ファイルに以下の定型文の内容を入力します:
{
"version": 1,
"overrides": {
}
}
行ごとに見ていきましょう。
まず、 ''version'' があります。これは、使用する依存関係オーバーライド仕様のバージョンを指定します。このページを書いている時点で、最新バージョンはバージョン ''1'' です。
次に、 ''overrides'' (現在は空)があります。この JSON オブジェクトには、さまざまな Mod への依存関係のオーバーライドがすべて含まれます。
===== オーバーロードする方法 =====
''overrides'' オブジェクト内に、ロードされた Mod の ID のキーと JSON オブジェクトの値を持つエントリを追加できます。 たとえば、ロードされた Mod の ID が ''mymod'' の場合、次のことができます。
{
"version": 1,
"overrides": {
"mymod": {}
}
}
上記のように、 ''mymod'' には JSON オブジェクトの値があります。そのオブジェクト内に、依存関係のオーバーライドを追加できます。
Mod オブジェクト内のキーは、 5 つの依存関係タイプ(''depends'' 〔依存〕、 ''recommends'' 〔推奨〕、 ''suggests'' 〔提案〕、 ''conflicts'' 〔競合〕、 ''breaks'' 〔中断〕)のいずれかになります。
キーには、オプションで ''+'' または ''-'' のプレフィックスを付けることができます(例:''"+depends"''、 ''"-breaks"'')。
これらのキーのいずれかの値は、 JSON オブジェクトである必要があります。この JSON オブジェクトは、 ''fabric.mod.json'' 依存関係オブジェクトとまったく同じ構造に従います。
キーの前に ''+'' が付いている場合、その JSON オブジェクト内のエントリが Mod に追加されます(またはすでに存在する場合は上書きされます)。
キーの前に ''-'' が付いている場合、各エントリの値は完全に無視され、 Fabric ローダーは結果の依存関係マップからそれらのエントリを削除します。
キーにプレフィックスが付いていない場合、依存関係オブジェクトは完全に置き換えられます。**キーのプレフィックスに注意してください!**
===== Practical Example =====
ID が ''specificmod'' の Mod が Minecraft のバージョン ''1.16.4'' に**正確に**依存していると仮定しましょう。ただし、他の 1.16 バージョンでも機能するようにします。 それを行う方法を見てみましょう:
{
"version": 1,
"overrides": {
"specificmod": {
"+depends": {
"minecraft": "1.16.x"
}
}
}
}
''"minecraft"'' との依存関係は、指定されている場合はオーバーライドされるようになりました(先ほどやりましたね)。これを行う別の方法があります:
{
"version": 1,
"overrides": {
"specificmod": {
"-depends": {
"minecraft": "IGNORED"
}
}
}
}
上で指定したように、依存関係を削除するとき、キー ''"minecraft"'' の値は無視されます。 ''"minecraft"'' の Mod ID 要件を持つ依存関係が見つかった場合、それはターゲット Mod ''specificmod'' から削除されます。
''depends'' 〔依存〕ブロック全体をオーバーライドすることもできますが、大いなる力には、大いなる責任が伴います。気をつけて。
''specificmod'' の依存関係仕様(''fabric.mod.json'' 内)が次のようになっていると仮定します:
{
"depends": {
"fabricloader": ">=0.11.1",
"fabric": ">=0.28.0",
"minecraft": "1.16.4"
},
"breaks": {
"optifabric": "*"
},
"suggests": {
"anothermod": "*",
"flamingo": "*",
"modupdater": "*"
}
}
''minecraft'' の依存関係を変更する以外に、すべての ''suggests'' の依存関係も削除したいと思います。私たちは次のようにそれを行うことができます:
{
"version": 1,
"overrides": {
"specificmod": {
"-depends": {
"minecraft": ""
},
"suggests": {}
}
}
}
''suggests'' キーにはプレフィックスが付いていないため、完全に空のオブジェクトに置き換えられ、基本的にクリアされました。