From ee0312f3ed97b6b21d83ee32ff4eec3e9e279f26 Mon Sep 17 00:00:00 2001 From: Simon Chuu Date: Sat, 11 Aug 2018 00:57:20 -0400 Subject: [PATCH] Optimise player leave code --- .../com/simonorj/mc/phantomsmp/PhantomSMP.java | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/simonorj/mc/phantomsmp/PhantomSMP.java b/src/main/java/com/simonorj/mc/phantomsmp/PhantomSMP.java index 5a6e9d0..67d02f6 100644 --- a/src/main/java/com/simonorj/mc/phantomsmp/PhantomSMP.java +++ b/src/main/java/com/simonorj/mc/phantomsmp/PhantomSMP.java @@ -5,7 +5,6 @@ import org.bukkit.World; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Entity; -import org.bukkit.entity.Mob; import org.bukkit.entity.Phantom; import org.bukkit.entity.Player; import org.bukkit.event.Cancellable; @@ -22,7 +21,10 @@ import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.event.world.ChunkLoadEvent; import org.bukkit.plugin.java.JavaPlugin; -import java.util.*; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedHashSet; +import java.util.Map; public class PhantomSMP extends JavaPlugin { private Map> playerPhantomMap = null; @@ -138,12 +140,11 @@ public class PhantomSMP extends JavaPlugin { @EventHandler public void playerLeave(PlayerQuitEvent e) { Player p = e.getPlayer(); - Iterator> i = phantomPlayerMap.entrySet().iterator(); - while (i.hasNext()) { - Map.Entry entry = i.next(); - if (entry.getValue() == p) { - i.remove(); - entry.getKey().setTarget(null); + + for (Phantom phantom : playerPhantomMap.get(p)) { + if (phantom.getTarget() == p) { + phantom.setTarget(null); + phantomPlayerMap.remove(phantom); } } }