2017-05-06 72 views
2

我認爲這是正確的,但如果我用斧頭沒什麼單擊發生,沒有錯誤Bukkit PlayerInteractEvent不起作用

我不知道,因爲在互聯網上它的工作原理

package mrleaw.tools.main; 

import org.bukkit.Bukkit; 
import org.bukkit.Material; 
import org.bukkit.entity.Player; 
import org.bukkit.event.EventHandler; 
import org.bukkit.event.Listener; 
import org.bukkit.event.block.Action; 
import org.bukkit.event.player.PlayerInteractEvent; 
import org.bukkit.plugin.java.JavaPlugin; 

public class Main extends JavaPlugin implements Listener{ 

String prefix = "§0[§4RollmopsMC | Tools§0] §5"; 

public void onEnable() { 
    Bukkit.getConsoleSender().sendMessage(prefix + "§aDas Plugin wurde aktiviert!"); 
    Bukkit.getConsoleSender().sendMessage(prefix + "§6Coded by MrLeaw"); 
} 
public void onDisable() { 
    Bukkit.getConsoleSender().sendMessage(prefix + "§cDas Plugin wurde deaktiviert!"); 
    Bukkit.getConsoleSender().sendMessage(prefix + "§6Coded by MrLeaw"); 
} 

@EventHandler 
void onRightClickTool(PlayerInteractEvent e){ 
    try { 
     if(e.getAction() == Action.LEFT_CLICK_AIR 
       || e.getAction() == Action.RIGHT_CLICK_AIR 
       || e.getAction() == Action.LEFT_CLICK_BLOCK 
       || e.getAction() == Action.RIGHT_CLICK_BLOCK){ 
      Player player = e.getPlayer(); 
      if(player.getItemInHand() != null && player.getItemInHand().getType() == Material.WOOD_AXE){ 
       player.sendMessage(prefix + "test"); 
      } 
     } 
    }catch(Exception exception){ 
    }catch(Error error){ 
    } 
} 
} 
+2

1.不要捕捉'Error'秒。 [如果你這樣做會發生壞事](https://stackoverflow.com/q/11017304)。 2.不要有空的「catch」子句。如果有什麼不對,爲什麼你不想聽到它? 3.你不要在任何地方註冊你的事件處理程序。參見['PluginManager.registerEvents()'](https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/plugin/PluginManager.html#registerEvents(org.bukkit.event.Listener,%20org.bukkit。 plugin.Plugin))。 – Siguza

回答

3

什麼是錯的添加getServer().getPluginManager().registerEvents(this, this);onEnable()

你必須要做到這一點,以註冊偵聽器,如按照Bukkit API reference

+0

哦,當然,對不起xD –