Forge Eventについて
概要
1.3以降のForgeから, 従来のHandlerの多くがEventに変更された. インタフェースを継承し, 実装するHandlerと異なり, Eventはアノテーションによって呼び出されるメソッドが指定される. Bukkit PluginのEventHandlerと同じ形式でもある.
基本的な使い方
ForgeのEventはForgeSubscribeアノテーションを付与したメソッドと, そのメソッドが呼ばれたいEventを引数にする必要がある. たとえば
public class EventHooks { @ForgeSubScribe public void hoge(Event event) { // プレイヤーが他のEntityを攻撃したときに挟みたい処理 } }
なお, Eventは登録しないと呼ばれない. 登録はModの初期化等で行う.
MinecraftForge.EVENT_BUS.register(new EventHooks());
また, Bukkit PluginのEventHandlerと同様に, 優先度(priority)が設定可能
@ForgeSubscribe(priority = EventPriority.HIGH)
ForgeSubscribeにはもうひとつreceiveCanceledという引数がある(デフォルトではfalse). BukkitPluginと同じなら, trueにした場合, Eventキャンセル時にEventを受け付けない.