kumitatepazuru's blog

中学生のメモブログ。みんなの役に立ちたい。

bukkitプラグインで、イベント処理を複数ファイルにして読みやすくする

f:id:kumitatepazuru:20210306062433p:plain どうも。今回は、タイトル通りイベントの処理を複数ファイルにしてみようと思います。 機能別でファイルを作ってみたりして読みやすくできます。

ここでのイベント処理とは?

@EventHandlerアノテーションされているものです。 JavaPluginを継承しているもの(onEnable等)は親クラスから呼ばなくてはいけません。

どうやるの?

大体このフォーラムから持ってきてます。

www.spigotmc.org

やってみる。

今回は親クラスが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 シミュレーションリーグのチームでは参加者募集中です!活動の見学、活動に参加したい方、ご連絡お待ちしております!

詳しくはこちら

kumitatepazuru.github.io