Eventについて
EventはMinecraft 1.3以降にMinecraftForgeに追加された, 従来のハンドラに代わるフックの仕組みである. 機能的にはBukkitのEventシステムとほぼ同じである.
Cancelableなイベントはイベントの処理のみ行い, 通常の処理はキャンセルできるものである. HasResultなイベントはイベントの処理が成功かどうかの情報が必要ということである.
Playerに関するイベント
イベント名
|
ArrowLooseEvent
|
ArrowNockEvent
|
フックのタイミング
|
弓を右クリックしたとき(NockEvent)と矢を発射するとき(LooseEvent)
|
Cancelable
|
○
|
HasResult
|
×
|
補足
|
追加した矢をバニラの弓で撃たせたいときに実装する必要がある
|
イベント名
|
AttackEntityEvent
|
フックのタイミング
|
プレイヤーが他のEntityを攻撃したとき
|
Cancelable
|
○
|
HasResult
|
×
|
補足
|
|
イベント名
|
BonemealEvent
|
フックのタイミング
|
プレイヤーが骨粉をブロックに対し右クリックしたとき
|
Cancelable
|
○
|
HasResult
|
○
|
補足
|
処理成功時にsetResult(ALLOW)するとスタック数が減る
|
イベント名
|
EntityInteractEvent
|
フックのタイミング
|
プレイヤーが他のEntityを右クリックしたとき
|
Cancelable
|
○
|
SetResult
|
×
|
補足
|
|
イベント名
|
EntityItemPickupEvent
|
フックのタイミング
|
プレイヤーがEntityItem(ドロップ状態のアイテム)を拾ったとき
|
Cancelable
|
○
|
SetResult
|
○
|
補足
|
|
イベント名
|
FillBucketEvent
|
フックのタイミング
|
プレイヤーが空のバケツでブロックを右クリックしたとき
|
Cancelable
|
○
|
SetResult
|
○
|
補足
|
|
イベント名
|
PlayerDestroyItemEvent
|
フックのタイミング
|
プレイヤーが現在持っているアイテムのスタック数が0になったとき
|
Cancelable
|
×
|
SetResult
|
×
|
補足
|
ツールだけでなくアイテムやブロックのスタック数が0になったときも呼ばれる
|
イベント名
|
PlayerDropsEvent
|
フックのタイミング
|
プレイヤーがアイテムをドロップしたとき
|
Cancelable
|
○
|
SetResult
|
×
|
補足
|
|
イベント名
|
PlayerEvent.HarvestCheck
|
PlayerEvent.BreakSpeed
|
フックのタイミング
|
プレイヤーがツールでブロックを右クリックしたとき
|
プレイヤーがツールでブロックを破壊しているとき
|
Cancelable
|
(BreakSpeedのみ)○
|
SetResult
|
×
|
補足
|
BreakSpeedはcancelable
|
イベント名
|
PlayerInteractEvent
|
フックのタイミング
|
プレイヤーがブロックを左クリック/右クリックしたとき
|
Cancelable
|
○
|
SetResult
|
×
|
補足
|
|
イベント名
|
PlayerSleepInBedEvent
|
フックのタイミング
|
プレイヤーがベッドで寝たとき
|
Cancelable
|
×
|
SetResult
|
×
|
補足
|
|
イベント名
|
UseHoeEvent
|
フックのタイミング
|
クワで土/草ブロックを耕したとき
|
Cancelable
|
○
|
SetResult
|
○
|
補足
|
|
EntityLivingに関するイベント
イベント名
|
LivingAttackEvent
|
フックのタイミング
|
EntityLivingが攻撃を受けたとき
|
Cancelable
|
○
|
HasResult
|
×
|
補足
|
名前と機能がわかりづらい
|
イベント名
|
LivingDeathEvent
|
フックのタイミング
|
EntityLivingが死亡したとき
|
Cancelable
|
○
|
HasResult
|
×
|
補足
|
|
イベント名
|
LivingDropsEvent
|
フックのタイミング
|
EntityLivingが死んで, アイテムをドロップするとき
|
Cancelable
|
○
|
HasResult
|
×
|
補足
|
|
イベント名
|
LivingEvent.LivingUpdateEvent
|
LivingEvent.LivingJumpEvent
|
フックのタイミング
|
EntityLivingのonUpdate
|
EntityLivingがジャンプしたとき
|
Cancelable
|
(LivingUpdateEventのみ)○
|
HasResult
|
×
|
補足
|
|
イベント名
|
LivingFallEvent
|
フックのタイミング
|
EntityLivingが落下したとき
|
Cancelable
|
○
|
HasResult
|
×
|
補足
|
ジャンプ後の落下も含む
|
イベント名
|
LivingHurtEvent
|
フックのタイミング
|
EntityLivingがダメージを受けたとき
|
Cancelable
|
○
|
HasResult
|
×
|
補足
|
LivingAttackEventと異なり, 落下, 水没, 炎など全てのダメージソースで呼ばれる
|
イベント名
|
LivingSetAttackTargetEvent
|
フックのタイミング
|
EntityLivingが他のEntityLivingをターゲットしたとき
|
Cancelable
|
×
|
HasResult
|
×
|
補足
|
|
イベント名
|
LivingSpawnEvent.CheckSpawn
|
LivingSpawnEvent.SpecialSpawn
|
フックのタイミング
|
EntityLivingのスポーンチェック時
|
特殊なMobがスポーンするとき
|
Cancelable
|
×
|
○
|
HasResult
|
○
|
×
|
補足
|
|
EntityItemに関するイベント
Minecartに関するイベント
地形生成に関するイベント
ワールドに関するイベント