提供: Minecraft Modding Wiki
はじめに
Minecraft Forge Universalから新しいEventシステムが組み込まれた。ある処理にこちらの用意した処理を割り込ませる機能であり、介入しづらいバニラの処理にも介入できるようになる。
BukkitPluginのEventシステムやFMLの@ModなどもこのEventシステムと同じ概念である。
詳しく知りたい場合は、DI(依存性の注入)やAOP(アスペクト指向)などの概念、Struts2, SpringFrameworkなどの有名なフレームワークがキーワードとなるだろう。
基本
メソッドにアノテーションと引数を指定すると、イベント発火に合わせて呼び出されるようになる。
@SubscribeEvent public void onSampleEvent(SampleEvent event) { }
このメソッドはSampleEventクラスがpostされる箇所で呼び出される。メソッドを持つクラスは適切な箇所でMinecraftForgeのAPIを使って登録する必要がある。
MinecraftForge.EVENT_BUS.register(new ForgeEventHook())
MinecraftForge.EVENT_BUSに限っては、@EventBusSubscriberでクラスを注釈すれば自動的に登録され、静的メソッドであれば対応したタイミングに呼び出されるようになる。
ここでは具体的なサンプルは扱わず、SampleEventというEventも存在しないが、Forgeのイベントの使い方の流れは大体このようであると認識して良い。
Minecraft Forgeの扱えるEventはMinecraft Forge API#イベントを参照すること。