このページはMinecraft Forge WikiのForge Eventsの訳です。
目次
Forge Events
新しいForge Event Busシステムは、全てイベントによって構成される。このイベントシステムの使い方はAtomicStryker's guide on How To Use ForgeEventsで紹介されている
@ForgeSubscribe アノテーションはメソッドをイベントシステムに関連付け、パラメータ(引数)はどのイベントを受け取るかを決定する
パラメータにスーパークラス(継承元のクラス)を利用した場合、サブクラス(継承したクラス)のイベントも受け取ることになる。以下は利用可能なイベントの一覧である
但し、全てのサブクラスは当然スーパークラスのプロパティを参照することが出来るので、ここではそのようなフィールドについては触れない。
Version
このイベント一覧は現在Minecraft Forge 6.4.0 build 397に基づいている
CommandEvent
コマンドが送信された時に発生する
フィールド
- ICommand command
- 送信されたコマンド。即ち、ゲームのチャットで/のあとに入力された、あるいはコンソールで入力された最初の語句
- ICommandSender sender
- コマンドの送信者
- String[] parameters
- コマンドと一緒に送信されたパラメーター。即ち、スペースによって区切られた語句
- Throwable exception
- イベントがキャンセルされたときに投げられる例外
EntityEvent
すべてのエンティティに関するイベントのスーパークラス。サブクラスによってのみ発生する
フィールド
- Entity entity
- このイベントを発生させたエンティティ
EntityJoinWorldEvent
エンティティがワールドに加わった時に発生する
フィールド
- World world
- ワールドのインスタンス
PlaySoundAtEntityEvent
エンティティの位置で音声が再生される時に発生する
フィールド
- String name
- 再生される音声の名前
- float volume
- 音声のボリューム
- float pitch
- 音声のピッチ。例:動物の子供の鳴き声
ItemEvent
#EntityEventのサブクラス
サブクラスによってのみ発生する
フィールド
- EntityItem entityItem
- イベントに関連するEntityItem
ItemExpireEvent
EntityItemが寿命に達した時に発生する。このイベントをキャンセルすると、アイテムの死亡済フラグがセットされワールドから消滅することを阻止できる。キャンセルによってエンティティの寿命が(extraLifeの分だけ)延びる
フィールド
- int extraLife
- イベントがキャンセルされた時にエンティティの寿命に追加される時間
ItemTossEvent
プレイヤーがインベントリからアイテムを捨てた(Qキーを押した、インベントリのGUIの外側にアイテムをD&Dした)時に発生する。このイベントをキャンセルすると、アイテムはワールドには現れないがインベントリ及びシステムからは消滅する
フィールド
- EntityPlayer entityPlayer
- アイテムを捨てたプレイヤー
LivingEvent
#EntityEventのサブクラス
ここに直接記載されないクラス: #PlayerEvent
サブクラスによってのみ発生する
フィールド
- EntityLiving entityLiving
- このイベントと関連付けられたエンティティ。同じオブジェクトがEntityEventのentityに入る
LivingAttackEvent
生きたエンティティが攻撃される時に発生する
フィールド
- DamageSource source
- ダメージの原因
- int amount
- 攻撃によって受けたダメージ
source.getEntity()は、攻撃元がエンティティならそのエンティティを、そうでないならnullを返す
このイベントをevent.setCanceled(true)を呼び出してキャンセルすると、攻撃を中止できる
LivingDeathEvent
生きたエンティティのHPが0になる時に発生する
フィールド
- DamageSource source
- 死の一撃の原因
- int amount
- 攻撃によって受けるダメージ
source.getEntity()は、攻撃元がエンティティならそのエンティティを、そうでないならnullを返す
このイベントをevent.setCanceled(true)を呼び出してキャンセルすると、このエンティティは死なない
LivingDropsEvent
生きたエンティティが死に、アイテムをドロップする時に発生する
フィールド
- DamageSource source
- 死の原因
- ArrayList<EntityItem> drops
- エンティティがドロップするアイテムのリスト。追加および削除が可能
- int lootingLevel
- バニラではLooting(ドロップ増加)のエンチャントに反映される
- boolean recentlyHit
- エンティティが死亡前に攻撃されたかどうか
- int specialDropValue
- Lootingレベルで引かれる0~200のランダムな数値。バニラでは、レアドロップする場合5未満となる
source.getEntity()は、攻撃元がエンティティならエンティティを、そうでないならnullを返す
このイベントをevent.setCanceled(true)を呼び出してキャンセルすると、エンティティはアイテムをドロップしない
LivingFallEvent
エンティティが落下した時に発生する
フィールド
- float distance
- エンティティが落下した距離
LivingHurtEvent
エンティティが何らかの有効なDamageSourceによって攻撃される時に発生する。以下の原因を含む: 炎、溶岩、溺死、飢え、サボテンとの接触、落下 など。 全ての攻撃元はnet.minecraft.src.DamageSourceを参照
フィールド
- DamageSource source
- ダメージの原因(種類)
- int amount
- 負うダメージ
LivingSetAttackTargetEvent
LivingSpecialSpawnEvent
PlayerEvent
#LivingEventのサブクラス
ArrowLooseEvent
ArrowNockEvent
AttackEntityEvent
BonemealEvent
EntityInteractEvent
EntityItemPickupEvent
FillBucketEvent
PlayerDestroyItemEvent
PlayerDropsEvent
PlayerInteractEvent
PlayerSleepInBedEvent
UseHoeEvent
MinecartEvent
#EntityEventのサブクラス
MinecartCollisionEvent
MinecartInteractEvent
MinecartUpdateEvent
WorldEvent
ChunkEvent
ChunkDataEvent
#ChunkEventのサブクラス