Bukkit 玩家死亡事件

Bukkit PlayerDeathEvent

为什么这不起作用?如果我被杀了,我不会得到任何回应!如您所见,我已经测试了多种方法。但是没有人在工作。

package net.gameforce.testing;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.plugin.java.JavaPlugin;






public class Main extends JavaPlugin implements Listener {


@Override
public void onEnable() {
    getServer().getPluginManager().registerEvents(this,this);
    getLogger().info("Testing Plugin Started");
}

public void onDisable() {}

@EventHandler
public void onPlayerInteract(PlayerInteractEvent event){
    Bukkit.broadcastMessage("test");
    event.getPlayer().setExp(100);
}
public void onPlayerDeath (PlayerDeathEvent event){
    Bukkit.broadcastMessage("send");
    event.getEntity().getPlayer().setExp(1000);
}

public boolean onDeath (PlayerDeathEvent event) {
    Player Player = event.getEntity();
    Bukkit.broadcastMessage(Player.getKiller().getDisplayName() + ", has killed you!");
    if (Player.getKiller() != null) {
        Bukkit.broadcastMessage("No Player");
    }
    else {
        Bukkit.broadcastMessage("IDK");
    }


    return true;
}
}

我是不是做错了什么?

引自http://bukkit.gamepedia.com/Event_API_Reference#.40EventHandler

"Before this method can be invoked by Bukkit when the "Event" 被触发,我们需要对其进行注释。我们使用 EventHandlers 来完成此操作。"

您已将此注释添加到您的 onPlayerInteract 方法,但 none 您的其他方法,例如您的 onDeath 方法。如果您的侦听器设置正确,向这些方法添加 @EventHandler 注释将允许 bukkit 正确调用它们,如下所示:

@EventHandler
public void onPlayerDeath (PlayerDeathEvent event){
    Bukkit.broadcastMessage("send");
    event.getEntity().getPlayer().setExp(1000);
}