3 回答

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

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