bukkitのeventの一覧ざっと作ってみた(改)
[マインクラフト]
[2013/10/11 21:01]
2015/8/30追記:
これは古い記事です。より新しいV1.8.3版を作成しました。
Bukkitプラグイン作成の要になるイベントの一覧。
以前既に作ってはあったが、
あの時はクラス名やクラスの説明などから動作を推測しただけだったので、
せっかくなので実際にイベントが出るかどうかまで9割方チェックしてみた。
あと、前回の記事時点ではなかったイベントとして、手綱系イベント数件が追加されたようだ。
手綱系イベントには"Leash"の名前がついているので、この記事をLeashで検索すれば手綱系イベントが出る。

イベントを湧かすための実験跡地。ここでなにかあったのか的意味不明な構造物の数々。
結構骨の折れる作業だった。
実際イベントを湧かしてみると、同じイベントが2回連続で出たり
予想に反してイベントが出たり出なかったり、正直首をかしげることが多かった。
プラグインを作るにあっては、イベントがなぜかうまく出ないときはすっぱりあきらめるほうがいいかもしれない。
ブロック操作関連のイベント
| イベントクラス | 簡単な説明 | API | ワンポイント |
| BlockBreakEvent | ブロックが壊れる時 | API | |
| BlockBurnEvent | ブロックが燃え尽きて焼失する時 | API | 着火はBlockIgniteEvent、焼失はBlockBurnEvent |
| BlockCanBuildEvent | ブロックを設置する時 | API | BlockPlaceEventに先立って発生する |
| BlockDamageEvent | ブロックが殴られる時 | API | 殴りはじめに一度だけ発生する |
| BlockDispenseEvent | アイテムが発射される時 | API | ディスペンサー・ドロッパーのどちらでも発生。ItemSpawnEventも同時発生。 |
| BlockExpEvent | ブロックが壊れて経験値オーブが生まれる時 | API | 発生しない?(V1.6.2#2879) |
| BlockFadeEvent | ブロックが溶ける時 | API | 氷ブロックなど。なぜか羊毛や木材などが焼失する際にBlockBurnEventに代わって発生したりする(V1.6.2#2879) |
| BlockFormEvent | 気象効果でブロックが生成される時 | API | 水が凍る、雪が積もるなど |
| BlockFromToEvent | 液体が流れる時 | API | BlockFromToEventをキャンセルすると、液体が流れずに留まる |
| BlockGrowEvent | 植物が育つ時 | API | サボテン・小麦・かぼちゃなど。木の苗・きのこの成長はStructureGrowEvent。1回成長するごとにイベントが1回発生。骨粉で成長させた場合発生しない。 |
| BlockIgniteEvent | ブロックを着火する時 | API | 着火時は、着火(BlockIgniteEvent)のほかに落下判定(BlockPhysicsEvent)・炎ブロックの設置(BlockPlaceEvent)のイベントも発生する |
| BlockPhysicsEvent | ブロックの落下判定をする時 | API | 落下するときではなくあくまで落下判定をするイベントなので、砂利や砂ではないブロックでも発生する。判定は直前に変更があったブロックの隣接ブロックで起こる。 |
| BlockPistonExtendEvent | ブロックをピストンで押し出す時 | API | |
| BlockPistonRetractEvent | ブロックをピストンで引き戻す時 | API | |
| BlockPlaceEvent | ブロックを設置する時 | API | |
| BlockRedstoneEvent | レッドストーンの状態が変化する時 | API | |
| BlockSpreadEvent | 炎が燃え広がる時 | API | 草ブロックが伝播して土ブロックに草が生えるときにも発生する。 |
| EntityBlockFormEvent | 雪だるまが雪を作る時 | API | |
| LeavesDecayEvent | 葉が枯れる時 | API | 葉が自然に枯れる場合のみ発生。手で壊すとBlockBreakEvent |
| NotePlayEvent | 音符ブロックが動作する時 | API | |
| SignChangeEvent | 看板にテキストを書く時 | API | 看板を設置すると最初にテキスト未設定の看板が設置されてBlockPlaceEventが発生し、次にテキスト入力画面にテキストを入力して決定すると、看板にテキストが設定されSignChangeEventが発生する |
エンチャント操作関連のイベント
| イベントクラス | 簡単な説明 | API | ワンポイント |
| EnchantItemEvent | アイテムをエンチャントする時 | API | アイテムをエンチャントした際に発生する |
| PrepareItemEnchantEvent | アイテムをエンチャントテーブルに載せる時 | API | アイテムをエンチャントテーブルに載せると、エンチャント画面に3つのエンチャント候補が表示されるが、この候補ひとつずつについてPrepareItemEnchantEventが1回発生する。このためアイテムを1回載せるごとにPrepareItemEnchantEventが3回発生する。なぜかエンチャント後にも1回発生する。(V1.6.2#2879) |
エンティティ関連のイベント
| イベントクラス | 簡単な説明 | API | ワンポイント |
| CreatureSpawnEvent | 生き物が生まれる時 | API | |
| CreeperPowerEvent | クリーパーが雷撃を受ける時 | API | 豚の雷撃はPigZapEvent |
| EntityBreakDoorEvent | ドアが壊れる時 | API | |
| EntityChangeBlockEvent | プレイヤー以外がブロックを変更する時 | API | |
| EntityCombustByBlockEvent | ブロックから火が燃え広がる時 | API | |
| EntityCombustByEntityEvent | エンティティから火が燃え広がる時 | API | |
| EntityCombustEvent | エンティティに着火する時 | API | 着火後のダメージ処理はEntityDamageEvent |
| EntityCreatePortalEvent | ポータルを作成する時 | API | |
| EntityDamageByBlockEvent | ブロックからダメージを受ける時 | API | サボテンなど |
| EntityDamageByEntityEvent | エンティティからダメージを受ける時 | API | |
| EntityDamageEvent | エンティティがダメージを受けるする時 | API | |
| EntityDeathEvent | 死亡する時 | API | |
| EntityExplodeEvent | 爆発する時 | API | |
| EntityInteractEvent | 不明 | API | |
| EntityPortalEnterEvent | ポータルに入る時 | API | プレイヤーがポータルに立っている間、1秒に20回延々と発生する |
| EntityPortalEvent | 不明 | API | |
| EntityPortalExitEvent | ポータルから出る時 | API | 全くではないが、なぜかほとんど発生しない(V1.6.2#2879) |
| EntityRegainHealthEvent | 体力が回復する時 | API | |
| EntityShootBowEvent | 矢を撃つ時 | API | |
| EntityTameEvent | 飼いならす時 | API | |
| EntityTargetEvent | 不明 | API | |
| EntityTargetLivingEntityEvent | 攻撃目標を決めた時 | API | |
| EntityTeleportEvent | テレポートする時 | API | |
| EntityUnleashEvent | 首綱を外す時 | API | |
| ExpBottleEvent | 経験値ボトルが破裂する時 | API | |
| ExplosionPrimeEvent | 不明 | API | |
| FoodLevelChangeEvent | 空腹度が変化する時 | API | |
| HorseJumpEvent | 馬がジャンプする時 | API | |
| ItemDespawnEvent | 地面に落ちたアイテムが消える時 | API | |
| ItemSpawnEvent | アイテムがドロップする時 | API | |
| PigZapEvent | 豚が雷撃を受ける時 | API | クリーパーの雷撃はCreeperPowerEvent |
| PlayerDeathEvent | プレイヤーが死ぬ時 | API | |
| PlayerLeashEntityEvent | エンティティを首綱でつなぐ時 | API | 馬を首綱で柵に結ぶ場合、馬に首綱をつけた時と、その首綱を柵に結んだ時で2回PlayerLeashEntityEventが出る |
| PotionSplashEvent | スプラッシュポーションの効果を受ける時 | API | |
| ProjectileHitEvent | 投げられた物に当たる時 | API | 矢など |
| ProjectileLaunchEvent | 物を投げる時 | API | |
| SheepDyeWoolEvent | 羊を染色する時 | API | |
| SheepRegrowWoolEvent | 羊に毛が生えた時 | API | 既に毛の生えている羊が草を食べたときも発生 |
| SlimeSplitEvent | スライムが倒されて小さなスライムが生まれる時 | API | |
壁掛けアイテム操作関連のイベント
| イベントクラス | 簡単な説明 | API | ワンポイント |
| HangingBreakByEntityEvent | 壁掛けがエンティティによって壊される時 | API | 殴って壊したり爆発で壊れる場合など。なぜかイベントが2回連続で出る(V1.6.2#2879) |
| HangingBreakEvent | 壁掛けが壊されるする時 | API | 壁掛けの後ろのブロックが壊れて壁掛けがアイテム化した場合など |
| HangingPlaceEvent | 壁掛けが掛けられる時 | API | |
インベントリ操作関連のイベント
| イベントクラス | 簡単な説明 | API | ワンポイント |
| BrewEvent | 醸造する時 | API | 醸造完了時にイベント発生。醸造台に瓶を何本セットしていても、3本ばらばらのポーションをセットしていてもイベントは1回だけ |
| CraftItemEvent | アイテムを作成する時 | API | アイテムを1個作るたびになぜかイベントが2回発生する(V1.6.2#2879)。アイテムを複数個まとめて作るとイベントも複数発生する |
| FurnaceBurnEvent | かまどに火が点く時 | API | |
| FurnaceExtractEvent | かまどからアイテムを取り出す時 | API | なぜか2回発生する(V1.6.2#2879) |
| FurnaceSmeltEvent | かまどでアイテムが精錬される時 | API | アイテムが一個精錬される度に発生 |
| InventoryClickEvent | インベントリをクリックする時 | API | |
| InventoryCloseEvent | インベントリを閉じる時 | API | |
| InventoryCreativeEvent | クリエイティブモードでアイテムを作る時 | API | |
| InventoryDragEvent | インベントリでアイテムをドラッグする時 | API | |
| InventoryEvent | 不明 | API | |
| InventoryInteractEvent | 不明 | API | |
| InventoryMoveItemEvent | ホッパーからアイテムが移動する時 | API | アイテムが1個移動する度に発生 |
| InventoryOpenEvent | インベントリを開く時 | API | |
| InventoryPickupItemEvent | アイテムがホッパーに吸い込まれる時 | API | |
| PrepareItemCraftEvent | アイテム作成の準備が整った時 | API | 作業台などに材料を並べ、作業台ウィンドウの右に完成アイテムが表示されるたびに発生 |
プレイヤー操作関連のイベント
| イベントクラス | 簡単な説明 | API | ワンポイント |
| AsyncPlayerChatEvent | チャットする時 | API | |
| AsyncPlayerPreLoginEvent | ログインしようとする時 | API | PlayerJoinEventの直前に発生する。disallowメソッドでログインをキャンセルできる |
| PlayerAnimationEvent | アニメーションする時 | API | 主にクリック操作でよく出る |
| PlayerBedEnterEvent | ベッドに寝る時 | API | |
| PlayerBedLeaveEvent | ベッドから起きる時 | API | |
| PlayerBucketEmptyEvent | バケツを空にする時 | API | 水か溶岩かは問わない |
| PlayerBucketFillEvent | バケツを満たす時 | API | 水か溶岩かは問わない |
| PlayerChangedWorldEvent | 別の世界へ移動する時 | API | ネザーと通常世界の行き来など |
| PlayerChannelEvent | 不明 | API | |
| PlayerChatTabCompleteEvent | 不明 | API | |
| PlayerCommandPreprocessEvent | コマンドを実行する時 | API | |
| PlayerDropItemEvent | アイテムを投げる時 | API | ここで言う投げるとは(デフォルトで)Qキーを押してアイテムを投げるという意味。鶏卵・スプラッシュポーション・経験値ボトルなどを使うのは「投げる」ではなく「使う」であり意味が違うので注意。 |
| PlayerEditBookEvent | 本と羽ペンを編集する時 | API | 編集完了時に発生 |
| PlayerEggThrowEvent | 卵を投げる時 | API | |
| PlayerExpChangeEvent | 経験値が変わる時 | API | レベルの変化はPlayerLevelChangeEvent |
| PlayerFishEvent | 釣りを開始・終了する時 | API | 釣りを開始するとき・終了するときの両方で発生 |
| PlayerGameModeChangeEvent | ゲームモードが変化する時 | API | /gamemode 0や1コマンドを使ってゲームモードが変わった時 |
| PlayerInteractEntityEvent | エンティティを右クリックする時 | API | |
| PlayerInteractEvent | クリックする時 | API | @EventHandler(ignoreCancelled = true)で宣言すると空気を殴ったイベントが通知されなくなるので、単に@EventHandlerで宣言するのがお勧め |
| PlayerItemBreakEvent | アイテムが壊れる時 | API | |
| PlayerItemConsumeEvent | 飲食物を食べた時 | API | ポーションを飲んだ場合も発生 |
| PlayerItemHeldEvent | ホットバーを切り替えた時 | API | たとえばホットバー1(剣)からホットバー2(斧)に持ち替えたような場合に発生する。 |
| PlayerJoinEvent | プレイヤーがログインする時 | API | ログイン時にはAsyncPlayerPreLoginEvent→PlayerLoginEvent→PlayerJoinEventの3つのメッセージが発生する。BANされたプレイヤーがログインを試みた場合、AsyncPlayerPreLoginEventとPlayerLoginEventは発生するがPlayerJoinEventは発生しない |
| PlayerKickEvent | プレイヤーをキックする時 | API | |
| PlayerLevelChangeEvent | レベルが変化する時 | API | レベルの変化を伴わない経験値の変更はPlayerExpChangeEvent |
| PlayerLoginEvent | プレイヤーがログインする時 | API | PlayerJoinEventの前に発生する |
| PlayerMoveEvent | 移動する時 | API | |
| PlayerPickupItemEvent | アイテムを拾う時 | API | |
| PlayerPortalEvent | ポータルで移動する時 | API | ポータルに触れただけでは発生しない |
| PlayerQuitEvent | プレイヤーがログアウトする時 | API | |
| PlayerRegisterChannelEvent | 不明 | API | |
| PlayerRespawnEvent | リスポーンする時 | API | |
| PlayerShearEntityEvent | 羊の毛を刈る時 | API | |
| PlayerTeleportEvent | テレポートする時 | API | ベッドに寝る・起きる時やトロッコの乗降時にも発生する |
| PlayerToggleFlightEvent | 飛行状態が切り替わる時 | API | Flightとはクリエイティブの飛行モードのこと。飛行開始時・飛行終了時の両方でPlayerToggleFlightEventが発生 |
| PlayerToggleSneakEvent | スニーク状態が切り替わる時 | API | スニーク開始時・スニーク終了時の両方でPlayerToggleSneakEventが発生 |
| PlayerToggleSprintEvent | 走り状態が切り替わる時 | API | 歩くと走るの切り替え時に発生。 |
| PlayerUnleashEntityEvent | 動物をつないでいた首綱を外す時 | API | |
| PlayerUnregisterChannelEvent | 不明 | API | |
| PlayerVelocityEvent | 不明 | API | |
サーバー操作関連のイベント
| イベントクラス | 簡単な説明 | API | ワンポイント |
| MapInitializeEvent | 白紙の地図を使用する時 | API | 白紙の地図を手に持って右クリックすると発生 |
| PluginDisableEvent | プラグインを無効化する時 | API | |
| PluginEnableEvent | プラグインを有効化する時 | API | |
| RemoteServerCommandEvent | 不明 | API | |
| ServerCommandEvent | コマンドが実行された時 | API | |
| ServerListPingEvent | クライアントのサーバー選択画面が表示された時 | API | |
| ServiceRegisterEvent | サービスが登録される時 | API | |
| ServiceUnregisterEvent | サービスの登録が解除される時 | API | |
乗り物操作関連のイベント
| イベントクラス | 簡単な説明 | API | ワンポイント |
| VehicleBlockCollisionEvent | 乗り物とブロックが衝突する時 | API | |
| VehicleCreateEvent | 乗り物が生まれた時 | API | 線路上にトロッコを配置するなどで発生 |
| VehicleDamageEvent | 乗り物が殴られた時 | API | |
| VehicleDestroyEvent | 乗り物が消滅する時 | API | 線路上のトロッコを殴ると、まずVehicleDamageEventが発生し、次にVehicleDestroyEventが発生する |
| VehicleEnterEvent | 乗り物に乗る時 | API | |
| VehicleEntityCollisionEvent | 乗り物とエンティティが衝突する時 | API | |
| VehicleExitEvent | 乗り物から降りる時 | API | |
| VehicleMoveEvent | 乗り物が移動する時 | API | トロッコを障害物のないレール上に置いて走らせると、画面上でどう見ても停止しているのに(小数点レベルの速度で動いているのか)延々と1秒に20回イベントが発生し続ける。壁に衝突するなどで完全に停止するとイベントも止む。 |
| VehicleUpdateEvent | 乗り物の状態を更新する時 | API | トロッコが1台あるだけで(速度やレールの傾きに関係なく)1秒間に20回イベントが発生する。 |
天候関連のイベント
| イベントクラス | 簡単な説明 | API | ワンポイント |
| LightningStrikeEvent | 落雷が起こる時 | API | |
| ThunderChangeEvent | 落雷の有無が切り替わる時 | API | 雨天→晴天のような、落雷なし→落雷なしの天候変化でもなぜか発生(V1.6.2#2879) |
| WeatherChangeEvent | 天候が変化する時 | API | |
ワールド操作関連のイベント
| イベントクラス | 簡単な説明 | API | ワンポイント |
| ChunkLoadEvent | チャンクを読み込む時 | API | |
| ChunkPopulateEvent | 新しいチャンクが作られた時 | API | |
| ChunkUnloadEvent | チャンクをアンロードする時 | API | |
| PortalCreateEvent | ポータルを作成する時 | API | ネザーポータルのみ発生、エンドポータルではイベント起こらず |
| SpawnChangeEvent | スポーンポイントが変わった時 | API | |
| StructureGrowEvent | 木の苗・きのこが成長する時 | API | サボテン・小麦・かぼちゃなどの成長はBlockGrowEvent |
| WorldInitEvent | 不明 | API | |
| WorldLoadEvent | 不明 | API | |
| WorldSaveEvent | 不明 | API | |
| WorldUnloadEvent | 不明 | API | |
例によってBukkitJapanWikiにイベントのページにも書いておいた。

関係ないけどBukkit作業中に偶然見つけたマップ。
草原・湖・ツンドラ・ジャングル・高山などがまとまって配置されていて結構楽しい。
シード:2213985808419502141