Spigotで別のクラスからメインクラスにアクセスする方法


  1. インスタンス変数を使用する方法: メインクラスのインスタンスを作成し、他のクラスに渡すことで、メインクラスのメソッドやフィールドにアクセスできます。

    public class MainClass extends JavaPlugin {
       private static MainClass instance;
    
       public void onEnable() {
           instance = this;
           // ...
       }
    
       public static MainClass getInstance() {
           return instance;
       }
    // ...
    }

    別のクラスからメインクラスにアクセスする場合:

    public class AnotherClass {
       public void someMethod() {
           MainClass main = MainClass.getInstance();
           // メインクラスのメソッドやフィールドにアクセスする
       }
    }
  2. イベントリスナーを使用する方法: Spigotでは、イベントをリッスンするためのイベントリスナーを作成することができます。メインクラスでイベントリスナーを登録し、別のクラスでそのイベントをリッスンすることで、メインクラスのメソッドを呼び出すことができます。

    public class MainClass extends JavaPlugin {
       public void onEnable() {
           // イベントリスナーを登録する
           getServer().getPluginManager().registerEvents(new MyListener(), this);
           // ...
       }
    // ...
    }
    
    public class MyListener implements Listener {
       @EventHandler
       public void onSomeEvent(SomeEvent event) {
           // メインクラスのメソッドを呼び出す
           MainClass main = (MainClass) event.getPlugin();
           main.someMethod();
       }
    }

これらの方法を使用することで、別のクラスからSpigotのメインクラスにアクセスすることができます。どちらの方法も簡単で効果的な方法ですが、具体的な要件に応じて適切な方法を選択してください。