2017-01-05 2 views
1

난 당신이 엔티티 손상 이벤트Bukkit 1.11.2 가져 오기

event.getCause() == DamageCause.ENTITY_ATTACK 

으로 손상 원인을 얻을 수 있다는 사실을 알고 다른 플레이어에 손상을했던 선수,하지만 난 개체를 반환하는 방법을 발견하지 않은 피해를 입혔다. 플레이어가 인벤토리에 특정 항목이 있는지 확인할 수 있도록이 항목을 찾아야합니다.

답변

0

사용 EntityDamageByEntityEvent하고 당신이 EntityDamageByEntityEvent를 사용해야합니다, 당신이 원하는 것을 달성하기 위해 선수

+1

이벤트를 사용하는 방법을 추가하는 방법 damager를 복구하는 방법으로 질문을 개선해야 :


이제, 이벤트 처리는이 방법을 수행 할 수 있습니다. 사용자는해야 할 일을 이해하기 위해 다른 사이트를 방문 할 필요가 없습니다. – Kerooker

2

에 damager를 캐스팅.

기본적으로 엔티티가 다른 엔티티에 의해 손상 될 때마다 발생하는 이벤트이며 플레이어는 엔티티입니다.

@EventHandler 
public void onPlayerDamage(EntityDamageByEntityEvent e) { 
Entity damager = e.getDamager(); 
Entity damageTaker = e.getEntity(); 

if (damageTaker instanceof Player) { 
    //DamageTaker is a Player 
    Player taker = (Player) damageTaker; 
    if (damager instanceof Player) { 
     //Damage Causer is also a player 
     Player damagerPlayer = (Player) damager; 
    } 
}