石橋を叩いて壊すページ

発生したイベントを画面に表示するプラグインを作った

以前に作ったBukkitイベントの一覧最新版にするために、 発生したありとあらゆるイベントを画面に表示するプラグインを作ってみた。
プラグインを作るときに、どんなときにどんなイベントが発生するのかを調べてみたい人向け。


木材を一個投げ、一個設置した状態。ただの2アクションでこれだけのログが出る。
イベント名と簡単な説明が表示される。イベント名はカテゴリごとに色分けされている。
またイベント名と実際のイベントクラス名が異なる場合(親クラスのイベントハンドラは子クラスのイベントも拾うので、その場合)は、
画像の2行目のようにイベント名の後ろに実際のイベントクラス名が表示される。

導入

導入方法は簡単。EventCatchAll.jarファイルをダウンロードして、Spigotのpluginsフォルダに入れるだけ。
Spigotの1.8.3-R0.1-SNAPSHOTで動作確認済み。

EventCatchAll.jar - 15KB

使用

プラグインを導入してサーバーを起動するだけで、あらゆるイベントを全体チャットで表示し始める。
通常のワールドではログが多すぎて使い物にならないので、上記画像のようなフラットワールドを準備するのがお勧め。

このプラグインには、「イベントの非表示条件」を設定することができる。
不要なイベントを非表示にすることで目的のイベントを確認しやすくできる。
非表示条件は以下のコマンドで設定する。(pluginsフォルダ下のconfig.ymlを直接編集して/reloadしてもいい。)

※PlayerMoveEventを非表示条件に追加・削除する場合の例

/event add PlayerMoveEvent
 PlayerMoveEventを表示しないようにする。大文字と小文字は区別しない。
 非表示条件は先頭一致で判定するので、フルネームを記載する必要はない。引数は複数指定できる。

/event del PlayerMoveEvent
 PlayerMoveEventを非表示条件から削除する(表示されるようになる)。
 大文字と小文字は区別しない。引数は複数指定できる。

/event show
 現在設定されている非表示条件の一覧を表示する。

/event save
 現在設定されている非表示条件を、ファイル(config.yml)に保存する。次回以降起動時にも自動的に読み込まれる。
 ※本コマンドを実行しないと設定を変更しても保存されないので注意。

/event load
 現在ファイル(config.yml)に保存されている非表示条件を読み込む。

なお、あまりにも煩雑に出すぎる4つのイベント(VehicleUpdateEvent, PlayerMoveEvent, BlockPhysicsEvent, PlayerAnimationEvent)は、
あらかじめ非表示条件に設定してある。上記コマンドで確認/削除できる。
非表示条件に合致したイベントは、ゲーム画面には表示されなくなるが、サーバーコンソールには表示される。

ソースコード

改造したい人向け。

EventCatchAll.java - メインクラス
EventListener.java - イベントを捕まえるクラス
plugin.yml - プラグインの設定
config.yml - 動作設定。色名はChatColor列挙型の列挙子から選ぶ。

この記事を評価

この記事にコメント

  1. ...

【この記事にコメント】
お名前:
コメント:

Menu