diff --git a/shared/src/main/java/net/pistonmaster/pistonqueue/shared/PistonQueuePlugin.java b/shared/src/main/java/net/pistonmaster/pistonqueue/shared/PistonQueuePlugin.java index 224cd7c..6b542e0 100644 --- a/shared/src/main/java/net/pistonmaster/pistonqueue/shared/PistonQueuePlugin.java +++ b/shared/src/main/java/net/pistonmaster/pistonqueue/shared/PistonQueuePlugin.java @@ -187,11 +187,14 @@ default void initializeReservationSlots() { for (PlayerWrapper player : targetServer.get().getConnectedPlayers()) { QueueType playerType = QueueType.getQueueType(player::hasPermission); - if (map.containsKey(playerType)) { - map.get(playerType).incrementAndGet(); - } else { - map.put(playerType, new AtomicInteger(1)); - } + map.compute(playerType, (queueType, integer) -> { + if (integer == null) { + return new AtomicInteger(1); + } else { + integer.incrementAndGet(); + return integer; + } + }); } map.forEach((type, count) -> type.getPlayersWithTypeInTarget().set(count.get())); diff --git a/shared/src/main/java/net/pistonmaster/pistonqueue/shared/QueueListenerShared.java b/shared/src/main/java/net/pistonmaster/pistonqueue/shared/QueueListenerShared.java index db4f85f..b5e97a3 100644 --- a/shared/src/main/java/net/pistonmaster/pistonqueue/shared/QueueListenerShared.java +++ b/shared/src/main/java/net/pistonmaster/pistonqueue/shared/QueueListenerShared.java @@ -136,14 +136,14 @@ private boolean isServerFull(QueueType type) { return isTargetFull(type) || isAnyoneQueuedOfType(type); } - private int getFreeSlots(QueueType type) { - return type.getReservedSlots() - type.getPlayersWithTypeInTarget().get(); - } - private boolean isTargetFull(QueueType type) { return getFreeSlots(type) <= 0; } + private int getFreeSlots(QueueType type) { + return type.getReservedSlots() - type.getPlayersWithTypeInTarget().get(); + } + private boolean isAnyoneQueuedOfType(QueueType type) { return !type.getQueueMap().isEmpty(); }