====== 規則と用語の学習 ====== 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--" という名前のプロジェクトは ''myproject''、 ''my_project''、または場合によっては ''my-project'' と呼ばれることもありましたが、 modid 内の "-" は処理するのが少し面倒な場合があります[要出典]。 Mod は、このような Mod ID をレジストリ名前空間として使用してアイテムとブロックを登録します。 一部のチュートリアルでは、プレースホルダー Mod ID を使用し、アイテムとブロックをプレースホルダー名前空間に登録します。これは、テンプレートと考えることができます。 Fabric Wiki では、Mod ID として ''tutorial'' を使用しています。 これを変更しないままにしておくことは、テストでは危険ではありませんが、プロジェクトをリリースする場合は忘れずに変更してください。 ==== タグ ==== タグは、同様のプロパティを持つブロック、アイテム、または液体のグループです。つまり、 ''minecraft:saplings'' にはゲームのすべての苗木が含まれます。 Mod のタグの呼び方に関する情報は [[tutorial:tags|こちら]] にあります。 Read more on what tags are on the [[https://minecraft.gamepedia.com/Tag|Minecraft Wiki]] ==== エントリポイントと初期化 ==== Fabric ローダーは ''fabric.mod.json'' を使用して Mod を検出してロードします。 Mod には通常、 ''ModInitializer''、 ''ClientInitializer''、 ''ServerInitializer'' のいずれかを実装する必要がある初期化クラスが少なくとも 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]] 〔英語版〕で詳細をお読みください。