From 74ee9fcf0e1d682141e798b26e3c7fda9d2a8ca5 Mon Sep 17 00:00:00 2001 From: ajgeiss0702 Date: Fri, 8 Oct 2021 14:58:41 -0700 Subject: [PATCH] add canJoinFull method --- .../us/ajg0702/queue/api/commands/ICommandSender.java | 1 + .../java/us/ajg0702/queue/api/queues/QueueServer.java | 9 ++++++++- .../main/java/us/ajg0702/queue/commands/BaseCommand.java | 1 + .../java/us/ajg0702/queue/common/QueueManagerImpl.java | 8 ++------ .../us/ajg0702/queue/common/queues/QueueServerImpl.java | 5 +++++ 5 files changed, 17 insertions(+), 7 deletions(-) diff --git a/api/src/main/java/us/ajg0702/queue/api/commands/ICommandSender.java b/api/src/main/java/us/ajg0702/queue/api/commands/ICommandSender.java index 9bc925a..041aa1d 100644 --- a/api/src/main/java/us/ajg0702/queue/api/commands/ICommandSender.java +++ b/api/src/main/java/us/ajg0702/queue/api/commands/ICommandSender.java @@ -3,6 +3,7 @@ package us.ajg0702.queue.api.commands; import net.kyori.adventure.audience.Audience; import us.ajg0702.queue.api.util.Handle; +@SuppressWarnings("BooleanMethodIsAlwaysInverted") public interface ICommandSender extends Handle, Audience { boolean hasPermission(String permission); boolean isPlayer(); diff --git a/api/src/main/java/us/ajg0702/queue/api/queues/QueueServer.java b/api/src/main/java/us/ajg0702/queue/api/queues/QueueServer.java index d860358..14f558d 100644 --- a/api/src/main/java/us/ajg0702/queue/api/queues/QueueServer.java +++ b/api/src/main/java/us/ajg0702/queue/api/queues/QueueServer.java @@ -13,7 +13,7 @@ import java.util.UUID; /** * Represents a server or a group that can be queued for */ -@SuppressWarnings("unused") +@SuppressWarnings({"unused", "BooleanMethodIsAlwaysInverted"}) public interface QueueServer { /** @@ -232,6 +232,13 @@ public interface QueueServer { */ void setSupportedProtocols(List list); + /** + * Checks if the player can join this server even if its full + * @param player The player + * @return If the player can join this server if its full + */ + boolean canJoinFull(AdaptedPlayer player); + /** * elliot is bad diff --git a/common/src/main/java/us/ajg0702/queue/commands/BaseCommand.java b/common/src/main/java/us/ajg0702/queue/commands/BaseCommand.java index 6125c07..dcb0be2 100644 --- a/common/src/main/java/us/ajg0702/queue/commands/BaseCommand.java +++ b/common/src/main/java/us/ajg0702/queue/commands/BaseCommand.java @@ -54,6 +54,7 @@ public class BaseCommand implements IBaseCommand { sender.sendMessage(Component.text("Unimplemented command")); } + @SuppressWarnings("BooleanMethodIsAlwaysInverted") public boolean checkPermission(ICommandSender sender) { if(getPermission() != null && !sender.hasPermission(getPermission())) { sender.sendMessage(getMessages().getComponent("noperm")); 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 ff68ca4..2dff0d1 100644 --- a/common/src/main/java/us/ajg0702/queue/common/QueueManagerImpl.java +++ b/common/src/main/java/us/ajg0702/queue/common/QueueManagerImpl.java @@ -528,11 +528,7 @@ public class QueueManagerImpl implements QueueManager { AdaptedPlayer player = p.getPlayer(); if(player == null) continue; - boolean bypassFull = - p.getPlayer().hasPermission("ajqueue.joinfull") || - p.getPlayer().hasPermission("ajqueue.joinfullserver."+server.getName()); - - if(server.isFull() && !bypassFull) continue; + if(server.isFull() && !server.canJoinFull(p.getPlayer())) continue; AdaptedServer selected = server.getIdealServer(player); if(selected == null) { @@ -578,7 +574,7 @@ public class QueueManagerImpl implements QueueManager { if(!server.canAccess(nextPlayer)) continue; - if(server.isFull() && !nextPlayer.hasPermission("ajqueue.joinfull")) continue; + if(server.isFull() && !server.canJoinFull(nextPlayer)) continue; if(main.getConfig().getBoolean("enable-bypasspaused-permission")) { if(server.isPaused() && !nextPlayer.hasPermission("ajqueue.bypasspaused")) continue; 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 0047a6c..7b515c4 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 @@ -428,4 +428,9 @@ public class QueueServerImpl implements QueueServer { public void setSupportedProtocols(List list) { supportedProtocols = new ArrayList<>(list); } + + @Override + public boolean canJoinFull(AdaptedPlayer player) { + return player.hasPermission("ajqueue.joinfull") || player.hasPermission("ajqueue.joinfullserver."+name); + } }