3 回答

TA貢獻1934條經(jīng)驗 獲得超2個贊
我看不到你注冊你的聽眾。Bukkit 需要知道哪些對象是偵聽器(您沒有這樣做)并且需要知道要執(zhí)行哪些方法(使用@EventHandler注釋)
您可以使用 PluginManager 的registerEvents(Listener listener, Plugin plugin)方法注冊偵聽器。一個聰明的想法是在您的 onEnable 方法中執(zhí)行此操作,以確保您的偵聽器在您的插件啟動后立即注冊。
public class MyClass extends JavaPlugin implements Listener {
@Override
public void onEnable() {
this.getServer().getPluginManager().registerEvents(this, this);
}
// rest of your code
}

TA貢獻1871條經(jīng)驗 獲得超13個贊
只是一個快速提示,
如果你想為不同的類注冊一個監(jiān)聽器,那么#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條經(jīng)驗 獲得超3個贊
您嘗試調(diào)用的偵聽器類代碼將有助于嘗試和調(diào)試此場景。您必須確保以下內(nèi)容為真:
1) 類實現(xiàn)監(jiān)聽器
2)您使用以下方法注冊課程:
Bukkit.getServer().getPluginManager().registerEvents(new [class] /* class of listener. this if it's your main class */, this/* your main class */);
3) 你在每個事件之前都記得@EventHandler。
如果您正在學(xué)習(xí) bukkit 編程,可能值得觀看此視頻:https ://youtu.be/Rinjdx6c6r8和本系列:
https://www.youtube.com/watch?v=bVySbfryiMM&list=PLAF3anQEEkzREsHA8yZzVhc3_GHcPnqxR
添加回答
舉報