石橋を叩いて壊すブログ

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

以前に作った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列挙型の列挙子から選ぶ。

この記事を評価

42 14

コメント

  1. 【Seaoftrees】 このプラグインを使ってみたのですが、/event remove PlayerMoveEventは使えませんでした。
    コードを見たところ、/event del PlayerMoveEvent が使えそうだったのでやってみたらいけました。
    非表示候補のコマンドをremove→del に訂正お願いします。 [2017/3/21 13:07]
  2. 【石橋】 ほんとだ、ごめんなさい間違えてました。本文を書き換えました。 [2017/3/26 21:32]
  3. 【mira】 ダウンロードをしてみたんですが[=?UTF-8?B?RXZlbnRDYXRjaEFsbC5qYXI=?=]と言うものがのがダウンロードされて使えません
    [Mac OS を使っています] [2017/8/7 21:50]
  4. 【石橋】 申し訳ないです。化けるのはファイルの名前のほうですか?もしそうなら、保存するとき正しいファイル名で保存してもらえば問題ないと思います。 [2017/8/8 00:29]

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

277,008

記事カテゴリー

最近の記事

  1. FF14を翻訳したら国によって結構特色が違った[12/11]
  2. ゼロから始めるFactorioの回路構築(実践例編)[7/24]
  3. ゼロから始めるFactorioの回路構築(条件回路・論理演算編)[7/24]
  4. ゼロから始めるFactorioの回路構築(定数回路・算術回路編)[7/24]
  5. ゼロから始めるFactorioの回路構築(入力・出力・混合編)[7/24]

RSS1.0 RSS2.0

最近のコメント

  1. 天晴れ!押したらポーションのモヤモヤでまし…[5/26]
  2. 習うより慣れろって感じで。この記事は記事冒…[4/7]
  3. もっと詳しく説明してください[3/21]
  4. みなさんと同じです、
    すみません
    [11/21]
  5. 上と同じ理由です。
    すみません
    [9/26]

記事を検索


管理人

石橋

パソコンデスクは座椅子