Table of Contents

依存関係のオーバーライド

Fabric ローダーバージョン 0.11.1 では、 “Dependency Overrides” 〔依存関係のオーバーライド〕という名前の機能が導入されました。

使用する前に:この機能は、 Mod パック開発者が Mod の依存関係をより細かく制御できるように設計されています。

通常のプレイヤーとして、これを使用するべきではありませんが、 Mod 開発者に変更したいことは何でもするように依頼してください。

要件

Starting

まず、 config フォルダー(.minecraft フォルダー内にある必要があります)内に fabric_loader_dependencies.json という名前のファイルを作成します。

次に、ファイルに以下の定型文の内容を入力します:

  1. {
  2. "version": 1,
  3. "overrides": {
  4.  
  5. }
  6. }

行ごとに見ていきましょう。

まず、 version があります。これは、使用する依存関係オーバーライド仕様のバージョンを指定します。このページを書いている時点で、最新バージョンはバージョン 1 です。

次に、 overrides (現在は空)があります。この JSON オブジェクトには、さまざまな Mod への依存関係のオーバーライドがすべて含まれます。

オーバーロードする方法

overrides オブジェクト内に、ロードされた Mod の ID のキーと JSON オブジェクトの値を持つエントリを追加できます。 たとえば、ロードされた Mod の ID が mymod の場合、次のことができます。

  1. {
  2. "version": 1,
  3. "overrides": {
  4. "mymod": {}
  5. }
  6. }

上記のように、 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 バージョンでも機能するようにします。 それを行う方法を見てみましょう:

  1. {
  2. "version": 1,
  3. "overrides": {
  4. "specificmod": {
  5. "+depends": {
  6. "minecraft": "1.16.x"
  7. }
  8. }
  9. }
  10. }

“minecraft” との依存関係は、指定されている場合はオーバーライドされるようになりました(先ほどやりましたね)。これを行う別の方法があります:

  1. {
  2. "version": 1,
  3. "overrides": {
  4. "specificmod": {
  5. "-depends": {
  6. "minecraft": "IGNORED"
  7. }
  8. }
  9. }
  10. }

上で指定したように、依存関係を削除するとき、キー “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 の依存関係も削除したいと思います。私たちは次のようにそれを行うことができます:

  1. {
  2. "version": 1,
  3. "overrides": {
  4. "specificmod": {
  5. "-depends": {
  6. "minecraft": ""
  7. },
  8. "suggests": {}
  9. }
  10. }
  11. }

suggests キーにはプレフィックスが付いていないため、完全に空のオブジェクトに置き換えられ、基本的にクリアされました。