Java (Spigot/Bukkit) 多个类

问题描述 投票:0回答:1

我有我的主类Main.java(onEnable方法) 和另外 3 个人。

在 Main.java 中我正在注册其他类:

new Example(this);
new Shop(this);
new Info(this);

在课程本身中,我使用这种结构:

public class Shop implements Listener {

    private final JavaPlugin plugin;

    public Shop(JavaPlugin plugin) {
        this.plugin = plugin;
        plugin.getServer().getPluginManager().registerEvents(this, plugin);
}

问题要点:我在某处读到可以避免在main方法中编写类注册(因为它占用大量空间并使代码不可读)如何摆脱

new Example(this);
new Shop(this);
new Info(this);

我已经尝试过

plugin = this;
但它不起作用。

java minecraft bukkit spigot
1个回答
0
投票

我个人会这么做

public static void main(String[] args) {
   List<Listener> listeners = List.of(
      new Example(),
      new Shop(),
      new Info()
   );
   JavaPlugin plugin = new JavaPlugin(...);
   PluginManager pluginManager = plugin.getServer().getPluginManager();
   for (Listener listener : listeners) {
      pluginManager.registerEvents(listener, plugin);
   }
}
© www.soinside.com 2019 - 2024. All rights reserved.