Minecraft bukkit 玩家用弓射击了另一名玩家

Minecraft bukkit player shot another player with a bow

我如何检测一个玩家是否用弓射中了另一个玩家? 我想获得球员的姓名。 那我该怎么做呢?

使用 bukkit events,特别是 EntityDamageByEntityEvent。然后简单地查看玩家是谁:

@EventHandler
public void onEntityDamageByEntity(EntityDamageByEntityEvent event) {

   Entity damager = event.getDamager();

   if(damager instanceof Arrow) { // check if the damager is an arrow

       Arrow arrow = (Arrow) damager;
       if(arrow.getShooter() instanceof Player) {
            // the arrow.getShooter() here is the player who fired the arrow
       }

       Entity entityHit = event.getEntity();
       if(entityHit instanceof Player) {
           Player playerHit = (Player) entityHit;
           // playerHit here is the player who got hit
       }

}

这基本上就是你获得球员的方式,现在你只需要使用这些信息在聊天或任何你想做的事情中打印出来。祝你好运!