提供: Minecraft Modding Wiki
移動先: 案内検索
 
(他の1人の利用者による、間の1版が非表示)
1行目: 1行目:
 
=Eventについて=
 
=Eventについて=
<p>
+
EventはMinecraft 1.3以降にMinecraftForgeに追加された, 従来のハンドラに代わるフックの仕組みである. 機能的にはBukkitのEventシステムとほぼ同じである。
 EventはMinecraft 1.3以降にMinecraftForgeに追加された, 従来のハンドラに代わるフックの仕組みである. 機能的にはBukkitのEventシステムとほぼ同じである.
 
Cancelableなイベントは'''イベントの処理のみ行い, 通常の処理はキャンセルできる'''ものである. HasResultなイベントは'''イベントの処理が成功かどうかの情報が必要'''ということである.
 
</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'''
+
|'''SubscribeEvent'''
|-
 
|'''LivingEvent.LivingJumpEvent'''
 
|-
 
!rowspan="2"|フックのタイミング
 
|EntityLivingのonUpdate
 
|-
 
|EntityLivingがジャンプしたとき
 
|-
 
!Cancelable
 
|(LivingUpdateEventのみ)○
 
 
|-
 
|-
!HasResult
+
!概要
|×
+
|フックさせたいメソッドに付与するアノテーション
 
|-
 
|-
 
!補足
 
!補足
289行目: 15行目:
  
 
{|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と異なり, 落下, 水没, 炎など全てのダメージソースで呼ばれる
+
|SubscribeEventのデフォルトでは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'''
+
|'''HasResult'''
|-
 
|'''LivingSpawnEvent.SpecialSpawn'''
 
|-
 
!rowspan="2"|フックのタイミング
 
|EntityLivingのスポーンチェック時
 
|-
 
|特殊なMobがスポーンするとき
 
|-
 
!rowspan="2"|Cancelable
 
 
|-
 
|○
 
|-
 
!rowspan="2"|HasResult
 
|○
 
 
|-
 
|-
|×
+
!概要
 +
|通常の処理の成功判定に介入できることを示すアノテーション。
 
|-
 
|-
 
!補足
 
!補足
|
+
|成功時にsetResult(ALLOW)するなど
 
|}
 
|}
 
==EntityItemに関するイベント==
 
 
==Minecartに関するイベント==
 
 
==地形生成に関するイベント==
 
 
==ワールドに関するイベント==
 

2017年2月19日 (日) 19:01時点における最新版

Eventについて[編集]

EventはMinecraft 1.3以降にMinecraftForgeに追加された, 従来のハンドラに代わるフックの仕組みである. 機能的にはBukkitのEventシステムとほぼ同じである。

アノテーション[編集]

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