diff --git a/api/src/main/java/us/ajg0702/queue/api/QueueManager.java b/api/src/main/java/us/ajg0702/queue/api/QueueManager.java index c4fbc9a..ccc3062 100644 --- a/api/src/main/java/us/ajg0702/queue/api/QueueManager.java +++ b/api/src/main/java/us/ajg0702/queue/api/QueueManager.java @@ -5,7 +5,7 @@ import us.ajg0702.queue.api.players.AdaptedPlayer; import us.ajg0702.queue.api.players.QueuePlayer; import us.ajg0702.queue.api.queues.QueueServer; -import java.util.HashMap; +import java.util.Map; public interface QueueManager { @@ -133,5 +133,5 @@ public interface QueueManager { void clear(AdaptedPlayer player); - HashMap getSendingAttempts(); + Map getSendingAttempts(); } 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 e5f3191..b9089a3 100644 --- a/common/src/main/java/us/ajg0702/queue/common/QueueManagerImpl.java +++ b/common/src/main/java/us/ajg0702/queue/common/QueueManagerImpl.java @@ -522,7 +522,7 @@ public class QueueManagerImpl implements QueueManager { final ConcurrentHashMap sendingNowAntiSpam = new ConcurrentHashMap<>(); - final HashMap sendingAttempts = new HashMap<>(); + final Map sendingAttempts = new WeakHashMap<>(); @Override public void sendPlayers(QueueServer queueServer) { @@ -600,7 +600,7 @@ public class QueueManagerImpl implements QueueManager { if(server.isPaused() && !nextPlayer.hasPermission("ajqueue.bypasspaused")) continue; } else if(server.isPaused()) { continue; } - int tries = sendingAttempts.get(nextQueuePlayer) == null ? 0 : sendingAttempts.get(nextQueuePlayer); + int tries = sendingAttempts.getOrDefault(nextQueuePlayer, 0); int maxTries = main.getConfig().getInt("max-tries"); if(tries >= maxTries && maxTries > 0) { server.removePlayer(nextQueuePlayer); @@ -678,7 +678,7 @@ public class QueueManagerImpl implements QueueManager { } @Override - public HashMap getSendingAttempts() { + public Map getSendingAttempts() { return sendingAttempts; } } diff --git a/common/src/main/java/us/ajg0702/queue/common/queues/QueueServerImpl.java b/common/src/main/java/us/ajg0702/queue/common/queues/QueueServerImpl.java index 6be7637..0362452 100644 --- a/common/src/main/java/us/ajg0702/queue/common/queues/QueueServerImpl.java +++ b/common/src/main/java/us/ajg0702/queue/common/queues/QueueServerImpl.java @@ -329,6 +329,7 @@ public class QueueServerImpl implements QueueServer { @Override public synchronized void removePlayer(QueuePlayer player) { + main.getQueueManager().getSendingAttempts().remove(player); queue.remove(player); }