提供: Minecraft Modding Wiki
2012年10月21日 (日) 09:16時点におけるAznhe21 (トーク | 投稿記録)による版
移動先: 案内検索

このページはMinecraft Forge WikiForge 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のサブクラス