From 76b4aa1ce93af3f64e2357d256587c11d4d97187 Mon Sep 17 00:00:00 2001 From: ajgeiss0702 Date: Sat, 10 Jun 2023 09:41:42 -0700 Subject: [PATCH] Fixed PositionChangeEvent being called when a player's position didn't change --- .../us/ajg0702/queue/common/players/QueuePlayerImpl.java | 4 ++++ .../us/ajg0702/queue/common/queues/QueueServerImpl.java | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/common/src/main/java/us/ajg0702/queue/common/players/QueuePlayerImpl.java b/common/src/main/java/us/ajg0702/queue/common/players/QueuePlayerImpl.java index 5c1b619..379e7f6 100644 --- a/common/src/main/java/us/ajg0702/queue/common/players/QueuePlayerImpl.java +++ b/common/src/main/java/us/ajg0702/queue/common/players/QueuePlayerImpl.java @@ -21,6 +21,8 @@ public class QueuePlayerImpl implements QueuePlayer { private final int maxOfflineTime; + public int lastPosition; + public QueuePlayerImpl(UUID uuid, String name, QueueServer server, int highestPriority, int maxOfflineTime) { this(null, name, uuid, server, highestPriority, maxOfflineTime); } @@ -39,6 +41,8 @@ public class QueuePlayerImpl implements QueuePlayer { this.name = name; this.maxOfflineTime = maxOfflineTime; + + lastPosition = getPosition(); } @Override 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 50a0e89..988d8be 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 @@ -321,7 +321,11 @@ public class QueueServerImpl implements QueueServer { private void positionChange() { main.getTaskManager().runNow( - () -> queue.forEach(queuePlayer -> main.call(new PositionChangeEvent(queuePlayer))) + () -> queue.forEach(queuePlayer -> { + if(((QueuePlayerImpl) queuePlayer).lastPosition != queuePlayer.getPosition()) { + main.call(new PositionChangeEvent(queuePlayer)); + } + }) ); }