このページはMinecraft Forge WikiのForge Eventsの訳です。
目次
Forge Events
新しいForge Event Bus systemは、すべてイベントによって構成される。このイベントシステムの使い方はAtomicStryker's guide on How To Use ForgeEventsで紹介されている
@ForgeSubscribe アノテーションはメソッドをイベントシステムに関連付け、そのメソッドが受け取るパラメータ(引数)は何のイベントを受け取るかを決定する
スーパークラス(継承元のクラス)のパラメーターは、さらにサブクラス(継承したクラス)のイベントの全てを受け取る。以下は、現在利用可能なイベントのリストである
但し、全てのサブクラスは当然スーパークラスのプロパティを参照することが出来るので、ここではサブクラスのフィールドについては触れない。
Version
このイベントリストは現在Minecraft Forge 4.0.0 build 200に基づいている
CommandEvent
コマンドが送信されたときに発生する
フィールド
- ICommand command
- 送信されたコマンド。つまり、マインクラフトのチャットで/のあとに入力された、あるいはコンソールで入力された最初の単語
- ICommandSender sender
- コマンドの送信者
- String[] parameters
- コマンドと一緒に送信されたパラメーター。つまり、スペースによって区切られた単語
- Throwable exception
- イベントがキャンセルされたときに投げられる例外
EntityEvent
すべてのエンティティに関するイベントのスーパークラス。サブクラスによってのみ発生する
フィールド
- Entity entity
- このイベントを起こしたエンティティ
PlaySoundAtEntityEvent
エンティティの位置で音が再生されたときに発生する
フィールド
- String name
- 再生された音の名前
- float volume
- 音のボリューム
- float pitch
- 音のピッチ。例えば、動物の子供の音など
LivingEvent
#EntityEventのサブクラス
他のサブクラスは以下のものには直にリストされない: #PlayerEvent
サブクラスによって送出される
フィールド
- EntityLiving entityLiving
- このイベントと関連付けられたエンティティ。同じオブジェクトがEntityEventのentityに入る
LivingAttackEvent
LivingEntityが攻撃されるときに発生する
フィールド
- DamageSource source
- ダメージを与えた原因
- int amount
- 攻撃によって受けたダメージ
source.getEntity()は、攻撃原因がエンティティならエンティティを、そうでないならnullを返す
このイベントをevent.setCanceled(true)を呼び出してキャンセルすれば、攻撃を中止できる
LivingDeathEvent
LivingEntityのHPが0になるときに発生する
フィールド
- DamageSource source
- 死の一撃となった原因
- int amount
- 攻撃によって受けたダメージ
source.getEntity()は、攻撃原因がエンティティならエンティティを、そうでないならnullを返す
このイベントをevent.setCanceled(true)を呼び出してキャンセルすれば、エンティティを殺さない
LivingDropsEvent
LivingEntityが死に、アイテムをドロップするときに発生する
フィールド
- DamageSource source
- 死の原因
- ArrayList<EntityItem> drops
- エンティティがドロップするアイテムのリスト。追加および削除が可能
- int lootingLevel
- バニラではLooting(ドロップ増加)のエンチャントに反映される
- boolean recentlyHit
- エンティティがこの死以前にヒットされたかどうか
- int specialDropValue
- lootingレベルで引かれる0~200のランダムな数値。バニラではレアドロップのために5以下でなければならない
source.getEntity()は、攻撃原因がエンティティならエンティティを、そうでないならnullを返す
このイベントをevent.setCanceled(true)を呼び出してキャンセルすれば、エンティティはアイテムをドロップしない
LivingFallEvent
LivingHurtEvent
LivingSetAttackTargetEvent
LivingSpecialSpawnEvent
PlayerEvent
#LivingEventのサブクラス
ArrowLooseEvent
AttackEntityEvent
BonemealEvent
EntityInteractEvent
EntityItemPickupEvent
FillBucketEvent
PlayerDestroyItemEvent
PlayerSleepInBedEvent
UseHoeEvent
MinecartEvent
#EntityEventのサブクラス
MinecartCollisionEvent
MinecartInteractEvent
MinecartUpdateEvent
WorldEvent
ChunkEvent
ChunkDataEvent
#ChunkEventのサブクラス