2014-05-20 63 views
0

我有以下代碼。我想製作攻擊者發送攻擊者的玩家名字的插件。芽它不工作..任何解決方案?Maven Bukkit服務器插件EventHandler

@EventHandler 
public void onEntityDamage(EntityDamageEvent event) { 
    final Entity entity = event.getEntity(); 
    if (entity instanceof Player) { 
    Player player = (Player)entity; 
    player.sendMessage("You have been damaged."); 
    } 
} 

回答

0

您是否嘗試過與朋友或破解的帳戶?

首先你使用了錯誤的事件。 EntityDamageEvent意味着一個實體(例如玩家)確實會受到損害。只需使用EntityDamageByEntityEvent即可。 而實體的東西是一個玩家在你的代碼+你的 消息是("You have been damaged") ..這實際上是不穩定的,因爲像我之前說的那樣,玩家是DAMAGER而不是DAMAGED。 獲得更好的代碼是:

@EventHandler 

public void onEntityDamageByEntity(EntityDamageByEntityEvent event) { 
    final Entity entity = event.getDamager(); 
    if (entity instanceof Player) { 
    Player player = (Player)entity; 
    final Entity entity2 = event.getEntity(); 
    if(entity2 instanceof Player){ 
    Player player2 = (Player)entity2; 
    player2.sendMessage("You got damaged by " + player.getName()); 
     } 
}       

}