fix: only allow FakePlayer to get killed once

This commit is contained in:
Simon Giesel 2020-05-07 20:18:21 +02:00
parent 7e194171e8
commit ed0a66c7cd

View file

@ -51,6 +51,7 @@ public class NPCManager {
private final Varo plugin;
private final ArrayList<EntityPlayer> npcs = new ArrayList<EntityPlayer>();
private final ArrayList<Integer> isDying = new ArrayList<Integer>();
private final HashMap<UUID, PlayerInventory> inventories = new HashMap<UUID, PlayerInventory>();
private final Scoreboard scoreboard;
private Team afkTeam;
@ -175,6 +176,10 @@ public class NPCManager {
if (isCritical)
world.playSound(loc, Sound.ENTITY_PLAYER_ATTACK_CRIT, 1.0F, 1.0F);
} else {
if (this.isDying.contains(npc.getId())) {
return;
}
this.isDying.add(npc.getId());
// Send Death Animation Packet
for (final Player connectionPlayer : Bukkit.getOnlinePlayers()) {
final PlayerConnection connection = ((CraftPlayer) connectionPlayer)
@ -225,6 +230,7 @@ public class NPCManager {
connection.sendPacket(new PacketPlayOutEntityDestroy(npc.getId()));
}
this.npcs.remove(npc);
this.isDying.remove(npc.getId());
}
}
}