提供: Minecraft Modding Wiki
移動先: 案内検索
4行目: 4行目:
 
Cancelableなイベントは'''イベントの処理のみ行い, 通常の処理はキャンセルできる'''ものである. HasResultなイベントは'''イベントの処理が成功かどうかの情報が必要'''ということである.
 
Cancelableなイベントは'''イベントの処理のみ行い, 通常の処理はキャンセルできる'''ものである. HasResultなイベントは'''イベントの処理が成功かどうかの情報が必要'''ということである.
 
</p>
 
</p>
==Playerに関するイベント==
 
{|class="wikitable" style="border-width:1px 1px 1px 1px; border-color:black; border-style:solid; " width=100%
 
!width=15% rowspan="2"|イベント名
 
|'''ArrowLooseEvent'''
 
|-
 
|'''ArrowNockEvent'''
 
|-
 
!フックのタイミング
 
|弓を右クリックしたとき(NockEvent)と矢を発射するとき(LooseEvent)
 
|-
 
!Cancelable
 
|○
 
|-
 
!HasResult
 
 
|-
 
!補足
 
|追加した矢をバニラの弓で撃たせたいときに実装する必要がある
 
|}
 
 
{|class="wikitable" style="border-width:1px 1px 1px 1px; border-color:black; border-style:solid; " width=100%
 
!width=15%|イベント名
 
|'''AttackEntityEvent'''
 
|-
 
!フックのタイミング
 
|プレイヤーが他のEntityを攻撃したとき
 
|-
 
!Cancelable
 
|○
 
|-
 
!HasResult
 
 
|-
 
!補足
 
|
 
|}
 
 
{|class="wikitable" style="border-width:1px 1px 1px 1px; border-color:black; border-style:solid; " width=100%
 
!width=15%|イベント名
 
|'''BonemealEvent'''
 
|-
 
!フックのタイミング
 
|プレイヤーが骨粉をブロックに対し右クリックしたとき
 
|-
 
!Cancelable
 
|○
 
|-
 
!HasResult
 
|○
 
|-
 
!補足
 
|処理成功時にsetResult(ALLOW)するとスタック数が減る
 
|}
 
 
{|class="wikitable" style="border-width:1px 1px 1px 1px; border-color:black; border-style:solid; " width=100%
 
!width=15%|イベント名
 
|'''EntityInteractEvent'''
 
|-
 
!フックのタイミング
 
|プレイヤーが他のEntityを右クリックしたとき
 
|-
 
!Cancelable
 
|○
 
|-
 
!SetResult
 
 
|-
 
!補足
 
|
 
|}
 
 
{|class="wikitable" style="border-width:1px 1px 1px 1px; border-color:black; border-style:solid; " width=100%
 
!width=15%|イベント名
 
|'''EntityItemPickupEvent'''
 
|-
 
!フックのタイミング
 
|プレイヤーがEntityItem(ドロップ状態のアイテム)を拾ったとき
 
|-
 
!Cancelable
 
|○
 
|-
 
!SetResult
 
|○
 
|-
 
!補足
 
|
 
|}
 
 
{|class="wikitable" style="border-width:1px 1px 1px 1px; border-color:black; border-style:solid; " width=100%
 
!width=15%|イベント名
 
|'''FillBucketEvent'''
 
|-
 
!フックのタイミング
 
|プレイヤーが空のバケツでブロックを右クリックしたとき
 
|-
 
!Cancelable
 
|○
 
|-
 
!SetResult
 
|○
 
|-
 
!補足
 
|
 
|}
 
 
{|class="wikitable" style="border-width:1px 1px 1px 1px; border-color:black; border-style:solid; " width=100%
 
!width=15%|イベント名
 
|'''PlayerDestroyItemEvent'''
 
|-
 
!フックのタイミング
 
|プレイヤーが現在持っているアイテムのスタック数が0になったとき
 
|-
 
!Cancelable
 
 
|-
 
!SetResult
 
 
|-
 
!補足
 
|ツールだけでなくアイテムやブロックのスタック数が0になったときも呼ばれる
 
|}
 
 
{|class="wikitable" style="border-width:1px 1px 1px 1px; border-color:black; border-style:solid; " width=100%
 
!width=15%|イベント名
 
|'''PlayerDropsEvent'''
 
|-
 
!フックのタイミング
 
|プレイヤーがアイテムをドロップしたとき
 
|-
 
!Cancelable
 
|○
 
|-
 
!SetResult
 
 
|-
 
!補足
 
|
 
|}
 
 
{|class="wikitable" style="border-width:1px 1px 1px 1px; border-color:black; border-style:solid; " width=100%
 
!width=15% rowspan="2"|イベント名
 
|'''PlayerEvent.HarvestCheck'''
 
|-
 
|'''PlayerEvent.BreakSpeed'''
 
|-
 
!rowspan="2"|フックのタイミング
 
|プレイヤーがツールでブロックを右クリックしたとき
 
|-
 
|プレイヤーがツールでブロックを破壊しているとき
 
|-
 
!Cancelable
 
|(BreakSpeedのみ)○
 
|-
 
!SetResult
 
 
|-
 
!補足
 
|BreakSpeedはcancelable
 
|}
 
 
{|class="wikitable" style="border-width:1px 1px 1px 1px; border-color:black; border-style:solid; " width=100%
 
!width=15%|イベント名
 
|'''PlayerInteractEvent'''
 
|-
 
!フックのタイミング
 
|プレイヤーがブロックを左クリック/右クリックしたとき
 
|-
 
!Cancelable
 
|○
 
|-
 
!SetResult
 
 
|-
 
!補足
 
|
 
|}
 
 
{|class="wikitable" style="border-width:1px 1px 1px 1px; border-color:black; border-style:solid; " width=100%
 
!width=15%|イベント名
 
|'''PlayerSleepInBedEvent'''
 
|-
 
!フックのタイミング
 
|プレイヤーがベッドで寝たとき
 
|-
 
!Cancelable
 
 
|-
 
!SetResult
 
 
|-
 
!補足
 
|
 
|}
 
 
{|class="wikitable" style="border-width:1px 1px 1px 1px; border-color:black; border-style:solid; " width=100%
 
!width=15%|イベント名
 
|'''UseHoeEvent'''
 
|-
 
!フックのタイミング
 
|クワで土/草ブロックを耕したとき
 
|-
 
!Cancelable
 
|○
 
|-
 
!SetResult
 
|○
 
|-
 
!補足
 
|
 
|}
 
 
==EntityLivingに関するイベント==
 
{|class="wikitable" style="border-width:1px 1px 1px 1px; border-color:black; border-style:solid; " width=100%
 
!width=15%|イベント名
 
|'''LivingAttackEvent'''
 
|-
 
!フックのタイミング
 
|EntityLivingが'''攻撃を受けた'''とき
 
|-
 
!Cancelable
 
|○
 
|-
 
!HasResult
 
 
|-
 
!補足
 
|名前と機能がわかりづらい
 
|}
 
 
{|class="wikitable" style="border-width:1px 1px 1px 1px; border-color:black; border-style:solid; " width=100%
 
!width=15%|イベント名
 
|'''LivingDeathEvent'''
 
|-
 
!フックのタイミング
 
|EntityLivingが死亡したとき
 
|-
 
!Cancelable
 
|○
 
|-
 
!HasResult
 
 
|-
 
!補足
 
|
 
|}
 
 
{|class="wikitable" style="border-width:1px 1px 1px 1px; border-color:black; border-style:solid; " width=100%
 
!width=15%|イベント名
 
|'''LivingDropsEvent'''
 
|-
 
!フックのタイミング
 
|EntityLivingが死んで, アイテムをドロップするとき
 
|-
 
!Cancelable
 
|○
 
|-
 
!HasResult
 
 
|-
 
!補足
 
|
 
|}
 
  
 +
==アノテーション==
 
{|class="wikitable" style="border-width:1px 1px 1px 1px; border-color:black; border-style:solid; " width=100%
 
{|class="wikitable" style="border-width:1px 1px 1px 1px; border-color:black; border-style:solid; " width=100%
!width=15% rowspan="2"|イベント名
+
!width=15%|アノテーション名
|'''LivingEvent.LivingUpdateEvent'''
+
|'''ForgeSubscribe'''
|-
 
|'''LivingEvent.LivingJumpEvent'''
 
|-
 
!rowspan="2"|フックのタイミング
 
|EntityLivingのonUpdate
 
|-
 
|EntityLivingがジャンプしたとき
 
|-
 
!Cancelable
 
|(LivingUpdateEventのみ)○
 
 
|-
 
|-
!HasResult
+
!概要
|×
+
|フックさせたいメソッドに付与するアノテーション
 
|-
 
|-
 
!補足
 
!補足
289行目: 18行目:
  
 
{|class="wikitable" style="border-width:1px 1px 1px 1px; border-color:black; border-style:solid; " width=100%
 
{|class="wikitable" style="border-width:1px 1px 1px 1px; border-color:black; border-style:solid; " width=100%
!width=15%|イベント名
+
!width=15%|アノテーション名
|'''LivingFallEvent'''
+
|'''EventPriority'''
|-
 
!フックのタイミング
 
|EntityLivingが落下したとき
 
|-
 
!Cancelable
 
|○
 
|-
 
!HasResult
 
 
|-
 
!補足
 
|ジャンプ後の落下も含む
 
|}
 
 
 
{|class="wikitable" style="border-width:1px 1px 1px 1px; border-color:black; border-style:solid; " width=100%
 
!width=15%|イベント名
 
|'''LivingHurtEvent'''
 
|-
 
!フックのタイミング
 
|EntityLivingがダメージを受けたとき
 
|-
 
!Cancelable
 
|○
 
 
|-
 
|-
!HasResult
+
!概要
|×
+
|フックさせたいメソッドの優先度を決めるアノテーション
 
|-
 
|-
 
!補足
 
!補足
|LivingAttackEventと異なり, 落下, 水没, 炎など全てのダメージソースで呼ばれる
+
|ForgeSubscribeのデフォルトではNORMAL
 
|}
 
|}
  
 
{|class="wikitable" style="border-width:1px 1px 1px 1px; border-color:black; border-style:solid; " width=100%
 
{|class="wikitable" style="border-width:1px 1px 1px 1px; border-color:black; border-style:solid; " width=100%
!width=15%|イベント名
+
!width=15%|アノテーション名
|'''LivingSetAttackTargetEvent'''
+
|'''Cancelable'''
 
|-
 
|-
!フックのタイミング
+
!概要
|EntityLivingが他のEntityLivingをターゲットしたとき
+
|イベントの処理だけ実行し, 通常の処理がキャンセル可能であることを示すアノテーション
|-
 
!Cancelable
 
 
|-
 
!HasResult
 
 
 
|-
 
|-
 
!補足
 
!補足
|
+
|通常の処理をキャンセルするときはsetCanceled(true)とすればよい
 
|}
 
|}
  
 
{|class="wikitable" style="border-width:1px 1px 1px 1px; border-color:black; border-style:solid; " width=100%
 
{|class="wikitable" style="border-width:1px 1px 1px 1px; border-color:black; border-style:solid; " width=100%
!width=15% rowspan="2"|イベント名
+
!width=15%|アノテーション名
|'''LivingSpawnEvent.CheckSpawn'''
+
|'''Event.HasResult'''
|-
 
|'''LivingSpawnEvent.SpecialSpawn'''
 
|-
 
!rowspan="2"|フックのタイミング
 
|EntityLivingのスポーンチェック時
 
|-
 
|特殊なMobがスポーンするとき
 
|-
 
!rowspan="2"|Cancelable
 
 
|-
 
|○
 
|-
 
!rowspan="2"|HasResult
 
|○
 
 
|-
 
|-
|×
+
!概要
 +
|通常の処理に, イベントの処理が成功かどうかを伝えるアノテーション
 
|-
 
|-
 
!補足
 
!補足
|
+
|成功時にsetResult(ALLOW)するなど
 
|}
 
|}
 
==EntityItemに関するイベント==
 
 
==Minecartに関するイベント==
 
 
==地形生成に関するイベント==
 
 
==ワールドに関するイベント==
 

2013年4月3日 (水) 18:18時点における版

Eventについて

 EventはMinecraft 1.3以降にMinecraftForgeに追加された, 従来のハンドラに代わるフックの仕組みである. 機能的にはBukkitのEventシステムとほぼ同じである. Cancelableなイベントはイベントの処理のみ行い, 通常の処理はキャンセルできるものである. HasResultなイベントはイベントの処理が成功かどうかの情報が必要ということである.

アノテーション

アノテーション名 ForgeSubscribe
概要 フックさせたいメソッドに付与するアノテーション
補足
アノテーション名 EventPriority
概要 フックさせたいメソッドの優先度を決めるアノテーション
補足 ForgeSubscribeのデフォルトではNORMAL
アノテーション名 Cancelable
概要 イベントの処理だけ実行し, 通常の処理がキャンセル可能であることを示すアノテーション
補足 通常の処理をキャンセルするときはsetCanceled(true)とすればよい
アノテーション名 Event.HasResult
概要 通常の処理に, イベントの処理が成功かどうかを伝えるアノテーション
補足 成功時にsetResult(ALLOW)するなど