提供: Minecraft Modding Wiki
2013年2月3日 (日) 04:30時点におけるAznhe21 (トーク | 投稿記録)による版 (Forge EventsEvent Referenceへ移動: 原文が移動したため)
移動先: 案内検索

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