2016-04-08 2 views

Antwort

1

Sie können PlayerInteractEvent abhören und prüfen, ob der Spieler ein Schwert hält.

if (p.getInventory().getItemInMainHand().getType() == Material.DIAMOND_SWORD) 

Für 1,8 und unten kann man einfach nutzen:

Achten Sie darauf, zu prüfen, ob die Aktion LeftClickBlock oder LeftClickAir ist (Offensiv) player.getItemInHand().getType():

Dieses Beispiel für 1.9 verwendet werden if (e.getAction() == Action.LEFT_CLICK_AIR && e.getAction() == Action.LEFT_CLICK_BLOCK)

1

Sie können EntityDamageByEntityEvent auch verwenden, wenn Sie speziell wissen müssen, wenn der Spieler etwas angreift.

@EventHandler 
public void onEntityDamage(EntityDamageByEntityEvent event) 
{ 
    if (event.getDamager() instanceof Player){ 
     //player is attacking someone 
     ....... 
    } 
} 
0

Um speziell überprüfen, ob ein Spieler von jemandem mit einem Diamanten Schwert beschädigt wurde, können Sie

 @EventHandler 
     public void onEntityDamage(EntityDamageByEntityEvent event) { 

     if (event.getDamager() instanceof Player && event.getEntity() instanceof Player) { 

     Player attacker = (Player) event.getDamager(); 

     if (attacker.getInventory().getItemInMainHand().getType() == Material.DIAMOND_SWORD) { 

      Player victim = (Player) event.getEntity(); 
      //Do something 
      Bukkit.broadcastMessage(attacker.getName() + " hit " + victim.getName() + " with a diamond sword!"); 

     } 

     } 

     } 

Dies würde überprüfen, ob ein Spieler von jemandem anderem Schwert mit einem Diamanten angegriffen wurde verwenden können. Falls Sie nur feststellen wollen, ob jemand eine Entität mit einem Diamantschwert trifft, lassen Sie den "Opfer" Teil/checkt aus.

Verwandte Themen