From c67b9013e8bd3456e884d18cb10d6edbff6f9936 Mon Sep 17 00:00:00 2001 From: ajgeiss0702 Date: Tue, 28 Sep 2021 08:32:08 -0700 Subject: [PATCH] fixed sendingNowAntispam not properly being cleaned when player leaves --- .../queue/api/players/AdaptedPlayer.java | 4 ++++ .../ajg0702/queue/common/QueueManagerImpl.java | 18 ++++++++---------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/api/src/main/java/us/ajg0702/queue/api/players/AdaptedPlayer.java b/api/src/main/java/us/ajg0702/queue/api/players/AdaptedPlayer.java index 2f63a0d..5d3ad20 100644 --- a/api/src/main/java/us/ajg0702/queue/api/players/AdaptedPlayer.java +++ b/api/src/main/java/us/ajg0702/queue/api/players/AdaptedPlayer.java @@ -79,4 +79,8 @@ public interface AdaptedPlayer extends Handle, Audience { String getName(); List getPermissions(); + + default boolean equals(AdaptedPlayer other) { + return this.getUniqueId().equals(other.getUniqueId()); + } } diff --git a/common/src/main/java/us/ajg0702/queue/common/QueueManagerImpl.java b/common/src/main/java/us/ajg0702/queue/common/QueueManagerImpl.java index df6350f..703105e 100644 --- a/common/src/main/java/us/ajg0702/queue/common/QueueManagerImpl.java +++ b/common/src/main/java/us/ajg0702/queue/common/QueueManagerImpl.java @@ -14,14 +14,8 @@ import us.ajg0702.utils.common.Messages; import us.ajg0702.utils.common.TimeUtils; import java.time.Duration; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.concurrent.CopyOnWriteArrayList; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.ThreadPoolExecutor; -import java.util.concurrent.TimeUnit; +import java.util.*; +import java.util.concurrent.*; public class QueueManagerImpl implements QueueManager { @@ -506,7 +500,8 @@ public class QueueManagerImpl implements QueueManager { sendPlayers(null); } - final HashMap sendingNowAntiSpam = new HashMap<>(); + + final ConcurrentHashMap sendingNowAntiSpam = new ConcurrentHashMap<>(); final HashMap sendingAttempts = new HashMap<>(); @Override @@ -640,6 +635,9 @@ public class QueueManagerImpl implements QueueManager { @Override public void clear(AdaptedPlayer player) { - sendingNowAntiSpam.remove(player); + for (AdaptedPlayer next : sendingNowAntiSpam.keySet()) { + if(!next.equals(player)) continue; + sendingNowAntiSpam.remove(next); + } } }