我有以下代码。我想在受到攻击时制作发送攻击者的玩家名字的插件。发芽它不起作用..任何解决方案?
@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 :(得分:0)
您是否曾与朋友或破解帐户一起尝试过?
首先你使用了错误的事件。 EntityDamageEvent
表示实体(例如玩家)造成损害。只需使用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());
}
}
}