bukkitプラグインで、イベント処理を複数ファイルにして読みやすくする
どうも。今回は、タイトル通りイベントの処理を複数ファイルにしてみようと思います。 機能別でファイルを作ってみたりして読みやすくできます。
ここでのイベント処理とは?
@EventHandler
でアノテーションされているものです。 JavaPlugin
を継承しているもの(onEnable
等)は親クラスから呼ばなくてはいけません。
どうやるの?
大体このフォーラムから持ってきてます。
やってみる。
今回は親クラスがMain
子クラスがtest
とする。
まず、implements Listener
を追加してイベント処理ができるようにする。
そうすると、このようになる。
import org.bukkit.event.Listener; public class test implements Listener { }
これが基本の型だ。
そこから、getServer()
のようなJavaPlugin
内部の関数が動かせるように、classの引数でMain
クラスを渡す。
そうすると、内部関数が使えるようになる仕組みだ。
classの引数はclass内にこのように書くことでできるらしい。(初めて知った)
private final Main main; public test(Main main){ this.main = main; }
だから、こうなる。
import org.bukkit.event.Listener; public class test implements Listener { private final Main main; public test(Main main){ this.main = main; } }
そうしたら、main.getServer()
のようにmain
をつけることで使えるようになる。
あとは親クラスでイベントの設定を済ます。
getServer().getPluginManager().registerEvents(new test(this), this);
これを親クラスのOnenable
等に入れておくとうごくようになる。
終わり!
最後に
結構最近いそがすいぃ
個人的な質問等はこちらまで。
https://forms.gle/V6NRhoTooFw15hJdA
また、自分が参加しているRobocup soccer シミュレーションリーグのチームでは参加者募集中です!活動の見学、活動に参加したい方、ご連絡お待ちしております!
詳しくはこちら