Table of Contents

規則と用語の学習

Fabric で Mod を製作し始める前に、今後のチュートリアルページで使用されるいくつかの重要な用語とフレーズを理解することが重要です。また、パッケージ構造や modid 命名規則などの基本的な規則を知っておくとよいでしょう。これらを早い段階で知っておくと、チュートリアルをよりよく理解し、必要なときにより適切な質問をすることができるようになります。

Mod ID

ドキュメント全体で、 Mod ID 、またはコード内の modid について言及することがよくあります。 Mod ID は “Mod Identifier” 〔Mod 識別子〕の略で、 Mod を一意に識別する文字列です。 Mod ID は通常、同じ名前の識別子名前空間に関連付けられているため、同じ制限に従います。Mod ID は、 a-z の小文字、 0-9 の数字、および _- の記号のみで構成できます。たとえば、Minecraft は minecraft 名前空間を使用します。 さらに、mod ID は少なくとも 2 文字以上で構成されている必要があります。

Mod ID は、多くの場合、 Mod の名前を短くしたものですが、認識しやすく、名前の競合を防ぎます。従来、 “My Project–” という名前のプロジェクトは myprojectmy_project、または場合によっては my-project と呼ばれることもありましたが、 modid 内の “-” は処理するのが少し面倒な場合があります[要出典]。 Mod は、このような Mod ID をレジストリ名前空間として使用してアイテムとブロックを登録します。

一部のチュートリアルでは、プレースホルダー Mod ID を使用し、アイテムとブロックをプレースホルダー名前空間に登録します。これは、テンプレートと考えることができます。 Fabric Wiki では、Mod ID として tutorial を使用しています。 これを変更しないままにしておくことは、テストでは危険ではありませんが、プロジェクトをリリースする場合は忘れずに変更してください。

タグ

タグは、同様のプロパティを持つブロック、アイテム、または液体のグループです。つまり、 minecraft:saplings にはゲームのすべての苗木が含まれます。 Mod のタグの呼び方に関する情報は こちら にあります。

Read more on what tags are on the Minecraft Wiki

エントリポイントと初期化

Fabric ローダーは fabric.mod.json を使用して Mod を検出してロードします。

Mod には通常、 ModInitializerClientInitializerServerInitializer のいずれかを実装する必要がある初期化クラスが少なくとも 1 つ含まれています。 インターフェイスはすべて net.fabricmc.api パッケージに含まれています。初期化子を変更または追加するには、 fabric.mod.json を編集して entrypoints ブロックを見つけ、それに応じて編集する必要があります。 main ブロックは ModInitializer 〔Mod 初期化〕用、client ブロックは Client Mod Initializers 〔クライアント Mod 初期化〕用、server ブロックは Server Mod Initializers 〔サーバー Mod 初期化〕用です。

{
  [...]
  "entrypoints": {
    "main": [
      "net.fabricmc.ExampleMod"
    ],
    "client": [
      "net.fabricmc.ExampleClientMod"
    ]
  }
  [...]
}

ModInitializer インターフェイスを実装することにより、onInitializing() (またはクライアントの場合は onInitializeClient()、サーバーの場合は onInitializeServer())関数を実装する必要があります。そこにコードを書くことができます。

また、initializers というブロックがあります。

Maven グループとパッケージ名

Oracle の Java ドキュメントによると、クラスまたはインターフェースの名前との競合を避けるために、これらはすべて小文字で書かれています。逆ドメイン名は、名前を開始するために使用されます。 https://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html 〔英語版〕で詳細をお読みください。