2016-04-08 10 views

答えて

1

PlayerInteractEventを聞いて、そのプレイヤーが剣を持っているかどうかを確認できます。

この例では1.9のために使用することができます。

1.8の場合
if (p.getInventory().getItemInMainHand().getType() == Material.DIAMOND_SWORD) 

、あなたが簡単に使用することができます以下:player.getItemInHand().getType()

アクションがLeftClickBlockまたはLeftClickAir(攻撃)であるかどうかをチェックするようにしてください: if (e.getAction() == Action.LEFT_CLICK_AIR && e.getAction() == Action.LEFT_CLICK_BLOCK)

1

プレイヤーがいつ何かを攻撃しているかを具体的に知る必要がある場合は、EntityDamageByEntityEventも使用できます。

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

プレイヤーはダイヤモンドの剣を使用して、他の誰かに襲われた場合、プレイヤーはダイヤモンドの剣を使用して誰かによってダメージを受けた場合には、特に確認するには、あなたが

 @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!"); 

     } 

     } 

     } 

を使用することができますこれはチェックします。場合は、誰かがダイヤモンドの剣でいくつかのエンティティに当っているかどうかを検出したい場合は、 "犠牲者"の部分を残す/チェックアウト。

関連する問題