3 回答
TA贡献1934条经验 获得超2个赞
我看不到你注册你的听众。Bukkit 需要知道哪些对象是侦听器(您没有这样做)并且需要知道要执行哪些方法(使用@EventHandler注释)
您可以使用 PluginManager 的registerEvents(Listener listener, Plugin plugin)方法注册侦听器。一个聪明的想法是在您的 onEnable 方法中执行此操作,以确保您的侦听器在您的插件启动后立即注册。
public class MyClass extends JavaPlugin implements Listener {
@Override
public void onEnable() {
this.getServer().getPluginManager().registerEvents(this, this);
}
// rest of your code
}
TA贡献1871条经验 获得超13个赞
只是一个快速提示,
如果你想为不同的类注册一个监听器,那么#onEnable() 中的代码将是:
public void onEnable() {
this.getServer().getPluginManager().registerEvents(this, this); //You have to
register the main class as a listener too.
this.getServer().getPluginManager().registerEvents(new EventClass(), this);
}
谢谢!
TA贡献1875条经验 获得超3个赞
您尝试调用的侦听器类代码将有助于尝试和调试此场景。您必须确保以下内容为真:
1) 类实现监听器
2)您使用以下方法注册课程:
Bukkit.getServer().getPluginManager().registerEvents(new [class] /* class of listener. this if it's your main class */, this/* your main class */);
3) 你在每个事件之前都记得@EventHandler。
如果您正在学习 bukkit 编程,可能值得观看此视频:https ://youtu.be/Rinjdx6c6r8和本系列:
https://www.youtube.com/watch?v=bVySbfryiMM&list=PLAF3anQEEkzREsHA8yZzVhc3_GHcPnqxR
添加回答
举报