亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Bukkit(spigot api)監聽器沒有響應?

Bukkit(spigot api)監聽器沒有響應?

達令說 2021-11-24 15:52:14
我一直在制作一個 bukkit 插件,它顯示在插件列表中,但是當我做我想讓代碼做的事情時,什么也沒發生。public class MyClass extends JavaPlugin implements Listener {@EventHandlerpublic void onInteract(PlayerInteractEvent event) {  Player player = event.getPlayer();  if (player.isSneaking()) {      player.sendMessage("Fire!");      Arrow arrow = player.launchProjectile(Arrow.class);      arrow.setShooter(player);      arrow.setGravity(false);      arrow.setSilent(true);      arrow.setBounce(false);      Block attach = arrow.getAttachedBlock();      Location attachlocation = attach.getLocation();      attachlocation.getWorld().createExplosion(attachlocation, 3);            arrow.setVelocity((player.getEyeLocation().getDirection().multiply(1000)));      }   }}
查看完整描述

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

}


查看完整回答
反對 回復 2021-11-24
?
慕桂英4014372

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);

}

謝謝!


查看完整回答
反對 回復 2021-11-24
?
翻過高山走不出你

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


查看完整回答
反對 回復 2021-11-24
  • 3 回答
  • 0 關注
  • 270 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號