2014-05-20 2 views
0

다음 코드가 있습니다. 공격을 받으면 공격자의 플레이어 명을 보내는 플러그인을 만들고 싶습니다. 새싹은 작동하지 않습니다 .. 어떤 해결책?Maven Bukkit Server Plugin 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은 엔티티 (예 : Player)가 손상을 입혔다는 것을 의미합니다. 단순히 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()); 
     } 
}       

}