Fixed PositionChangeEvent being called when a player's position didn't change

This commit is contained in:
ajgeiss0702
2023-06-10 09:41:42 -07:00
parent 49a3812867
commit fa9f594830
2 changed files with 9 additions and 1 deletions
@@ -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
@@ -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));
}
})
);
}