提供: Minecraft Modding Wiki
(「初期化イベントを受け取る」wo) |
細 (間違っていたサンプルコードの修正、サンプルコードのちょっとした方針の変更) |
||
18行目: | 18行目: | ||
== 初期化イベントを受け取る == | == 初期化イベントを受け取る == | ||
− | @ | + | @EventHandlerアノテーションをメソッドにつけると、MODが読み込まれる時にそのメソッドが呼ばれるためその中で様々な処理を行えます。ただし、その引数はある特定のイベントを表すクラス一つのみでなければなりません。 |
<source lang="java"> | <source lang="java"> | ||
24行目: | 24行目: | ||
import net.minecraftforge.fml.common.Mod; | import net.minecraftforge.fml.common.Mod; | ||
+ | import net.minecraftforge.fml.common.Mod.EventHandler; | ||
import net.minecraftforge.fml.common.event.PreInitializationEvent; | import net.minecraftforge.fml.common.event.PreInitializationEvent; | ||
import net.minecraftforge.fml.common.event.InitializationEvent; | import net.minecraftforge.fml.common.event.InitializationEvent; | ||
30行目: | 31行目: | ||
@Mod(modid = "samplemod") | @Mod(modid = "samplemod") | ||
public class Sample { | public class Sample { | ||
+ | @EventHandler | ||
public preInit(PreInitializationEvent event) { | public preInit(PreInitializationEvent event) { | ||
// ... | // ... | ||
} | } | ||
+ | @EventHandler | ||
public init(InitializationEvent event) { | public init(InitializationEvent event) { | ||
// ... | // ... | ||
} | } | ||
+ | @EventHandler | ||
public postInit(PostInitializationEvent event) { | public postInit(PostInitializationEvent event) { | ||
// ... | // ... | ||
44行目: | 48行目: | ||
</source> | </source> | ||
− | これが定番です。ただし、@ | + | これが定番です。ただし、@EventHandlerアノテーションがついてさえいればメソッドの名前や引数の名前は自由で、「ある特定のイベントを表すクラス」というのもこれだけではありません。 |
* [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時点)] |
2018年1月20日 (土) 18:32時点における版
ここでは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.PreInitializationEvent; import net.minecraftforge.fml.common.event.InitializationEvent; import net.minecraftforge.fml.common.event.PostInitializationEvent; @Mod(modid = "samplemod") public class Sample { @EventHandler public preInit(PreInitializationEvent event) { // ... } @EventHandler public init(InitializationEvent event) { // ... } @EventHandler public postInit(PostInitializationEvent event) { // ... } }
これが定番です。ただし、@EventHandlerアノテーションがついてさえいればメソッドの名前や引数の名前は自由で、「ある特定のイベントを表すクラス」というのもこれだけではありません。