|
|
(他の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に関するイベント==
| |
− |
| |
− | ==地形生成に関するイベント==
| |
− |
| |
− | ==ワールドに関するイベント==
| |