提供: Minecraft Modding Wiki
細 (間違っていたサンプルコードの修正、サンプルコードのちょっとした方針の変更) |
(→次にやった方がいいこと) |
||
(5人の利用者による、間の12版が非表示) | |||
5行目: | 5行目: | ||
== 必要最低限のコード == | == 必要最低限のコード == | ||
− | + | MODであるというマークとなる@Modアノテーションが付いたクラスのみがある状態です。何の処理も行えないのですがMod一覧には表示されます。 | |
<source lang="java"> | <source lang="java"> | ||
18行目: | 18行目: | ||
== 初期化イベントを受け取る == | == 初期化イベントを受け取る == | ||
− | @ | + | @EventHandlerアノテーションをメソッドにつけると、とあるタイミング(この場合はMODが読み込まれるとき)にそのメソッドが呼ばれるためその中で様々な処理を行えます。ただし、その引数はある特定のイベントを表すクラス一つのみでなければなりません。 |
<source lang="java"> | <source lang="java"> | ||
25行目: | 25行目: | ||
import net.minecraftforge.fml.common.Mod; | import net.minecraftforge.fml.common.Mod; | ||
import net.minecraftforge.fml.common.Mod.EventHandler; | import net.minecraftforge.fml.common.Mod.EventHandler; | ||
− | import net.minecraftforge.fml.common.event. | + | import net.minecraftforge.fml.common.event.FMLInitializationEvent; |
− | import net.minecraftforge.fml.common.event. | + | import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; |
− | import net.minecraftforge.fml.common.event. | + | import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; |
@Mod(modid = "samplemod") | @Mod(modid = "samplemod") | ||
public class Sample { | public class Sample { | ||
@EventHandler | @EventHandler | ||
− | public preInit( | + | public void preInit(FMLPreInitializationEvent event) { |
− | // | + | // Minecraftを立ち上げて最初に呼ばれる処理アイテムやブロックなどの登録をする |
} | } | ||
@EventHandler | @EventHandler | ||
− | public init( | + | public void init(FMLInitializationEvent event) { |
− | // | + | // 2番めに呼ばれる処理色々書く |
} | } | ||
@EventHandler | @EventHandler | ||
− | public postInit( | + | public void postInit(FMLPostInitializationEvent event) { |
− | // | + | // 最後に呼ばれる処理他のmodとの連携に使う |
} | } | ||
} | } | ||
51行目: | 51行目: | ||
* [https://github.com/MinecraftForge/MinecraftForge/blob/b15269fde504dbe8837a540202a0947c1a5b3e62/src/main/java/net/minecraftforge/fml/common/Mod.java#L278-L303 公式ドキュメント(2017/12/13時点)] | * [https://github.com/MinecraftForge/MinecraftForge/blob/b15269fde504dbe8837a540202a0947c1a5b3e62/src/main/java/net/minecraftforge/fml/common/Mod.java#L278-L303 公式ドキュメント(2017/12/13時点)] | ||
+ | |||
+ | == 次にやった方がいいこと == | ||
+ | |||
+ | * @Modアノテーションの変数の設定 | ||
+ | * [[mcmod.infoの設定]] | ||
+ | * [[1.12のアイテム追加(旧式)]] | ||
+ | * [[1.12のブロック追加(旧式)]] |
2021年8月15日 (日) 22:47時点における最新版
ここではMODのメインクラスの作り方を解説します。
必要最低限のコード[編集]
MODであるというマークとなる@Modアノテーションが付いたクラスのみがある状態です。何の処理も行えないのですがMod一覧には表示されます。
package info.minecraftjp; import net.minecraftforge.fml.common.Mod; @Mod(modid = "samplemod") public class Sample {}
初期化イベントを受け取る[編集]
@EventHandlerアノテーションをメソッドにつけると、とあるタイミング(この場合はMODが読み込まれるとき)にそのメソッドが呼ばれるためその中で様々な処理を行えます。ただし、その引数はある特定のイベントを表すクラス一つのみでなければなりません。
package info.minecraftjp; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod.EventHandler; import net.minecraftforge.fml.common.event.FMLInitializationEvent; import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; @Mod(modid = "samplemod") public class Sample { @EventHandler public void preInit(FMLPreInitializationEvent event) { // Minecraftを立ち上げて最初に呼ばれる処理アイテムやブロックなどの登録をする } @EventHandler public void init(FMLInitializationEvent event) { // 2番めに呼ばれる処理色々書く } @EventHandler public void postInit(FMLPostInitializationEvent event) { // 最後に呼ばれる処理他のmodとの連携に使う } }
これが定番です。ただし、@EventHandlerアノテーションがついてさえいればメソッドの名前や引数の名前は自由で、「ある特定のイベントを表すクラス」というのもこれだけではありません。
次にやった方がいいこと[編集]
- @Modアノテーションの変数の設定
- mcmod.infoの設定
- 1.12のアイテム追加(旧式)
- 1.12のブロック追加(旧式)