提供: Minecraft Modding Wiki
移動先: 案内検索
(ページの作成:「=Eventについて= <p>  EventはMinecraft 1.3以降にMinecraftForgeに追加された, 従来のハンドラに代わるフックの仕組みである. 機能的に...」)
 
 
(他の1人の利用者による、間の2版が非表示)
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%
 
{|class="wikitable" style="border-width:1px 1px 1px 1px; border-color:black; border-style:solid; " width=100%
!width=15%|イベント名
+
!width=15%|アノテーション名
|'''FillBucketEvent'''
+
|'''SubscribeEvent'''
|-
 
!フックのタイミング
 
|プレイヤーが空のバケツでブロックを右クリックしたとき
 
 
|-
 
|-
!Cancelable
+
!概要
|
+
|フックさせたいメソッドに付与するアノテーション
|-
 
!SetResult
 
|○
 
 
|-
 
|-
 
!補足
 
!補足
110行目: 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%|アノテーション名
|'''PlayerDestroyItemEvent'''
+
|'''EventPriority'''
|-
 
!フックのタイミング
 
|プレイヤーが現在持っているアイテムのスタック数が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
+
!概要
|×
+
|フックさせたいメソッドの優先度を決めるアノテーション
 
|-
 
|-
 
!補足
 
!補足
|
+
|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% rowspan="2"|イベント名
+
!width=15%|アノテーション名
|'''PlayerEvent.HarvestCheck'''
+
|'''Cancelable'''
|-
 
|'''PlayerEvent.BreakSpeed'''
 
|-
 
!rowspan="2"|フックのタイミング
 
|プレイヤーがツールでブロックを右クリックしたとき
 
 
|-
 
|-
|プレイヤーがツールでブロックを破壊しているとき
+
!概要
|-
+
|イベントの処理だけ実行し, 通常の処理がキャンセル可能であることを示すアノテーション
!Cancelable
 
|(BreakSpeedのみ)○
 
|-
 
!SetResult
 
|×
 
 
|-
 
|-
 
!補足
 
!補足
|BreakSpeedはcancelable
+
|通常の処理をキャンセルするときは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%|イベント名
+
!width=15%|アノテーション名
|'''PlayerInteractEvent'''
+
|'''HasResult'''
 
|-
 
|-
!フックのタイミング
+
!概要
|プレイヤーがブロックを左クリック/右クリックしたとき
+
|通常の処理の成功判定に介入できることを示すアノテーション。
|-
 
!Cancelable
 
|○
 
|-
 
!SetResult
 
 
 
|-
 
|-
 
!補足
 
!補足
|
+
|成功時にsetResult(ALLOW)するなど
 
|}
 
|}
 
{|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に関するイベント==
 
 
==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)するなど