From 857dfe32ca67cc0a41068ba4cbb0b69b060fb2f2 Mon Sep 17 00:00:00 2001 From: Minenash Date: Mon, 7 Jan 2019 21:05:14 -0500 Subject: [PATCH] [Teleport] Fixed exceptions when a player quits --- .../redstoner/modules/teleport/Teleport.java | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/redstoner/modules/teleport/Teleport.java b/src/main/java/com/redstoner/modules/teleport/Teleport.java index b43d820..7475fcc 100644 --- a/src/main/java/com/redstoner/modules/teleport/Teleport.java +++ b/src/main/java/com/redstoner/modules/teleport/Teleport.java @@ -1,6 +1,7 @@ package com.redstoner.modules.teleport; import java.util.HashMap; +import java.util.Iterator; import java.util.Map; import java.util.Stack; @@ -461,27 +462,35 @@ public class Teleport implements Module, Listener last_request.remove(p); last_request_got.remove(p); - for (Player fl : pending_requests.keySet()) { + Iterator pr_iterator = pending_requests.keySet().iterator(); + while (pr_iterator.hasNext()) { + Player fl = pr_iterator.next(); Map m = pending_requests.get(fl); m.remove(p); if (m.isEmpty()) - pending_requests.remove(fl); + pr_iterator.remove(); else pending_requests.put(fl, m); } - for (Player fl : last_request.keySet()) { + + Iterator lr_iterator = last_request.keySet().iterator(); + while (lr_iterator.hasNext()) { + Player fl = lr_iterator.next(); Stack s = last_request.get(fl); s.remove(p); if (s.isEmpty()) - last_request.remove(fl); + lr_iterator.remove(); else last_request.put(fl, s); } - for (Player fl : last_request_got.keySet()) { + + Iterator lrg_iterator = last_request_got.keySet().iterator(); + while (lrg_iterator.hasNext()) { + Player fl = lrg_iterator.next(); Stack s = last_request_got.get(fl); s.remove(p); if (s.isEmpty()) - last_request_got.remove(fl); + lrg_iterator.remove(); else last_request_got.put(fl, s); }