add canJoinFull method

This commit is contained in:
ajgeiss0702
2021-10-08 14:58:41 -07:00
parent 4d91663e20
commit 74ee9fcf0e
5 changed files with 17 additions and 7 deletions
@@ -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();
@@ -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<Integer> 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
@@ -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"));
@@ -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;
@@ -428,4 +428,9 @@ public class QueueServerImpl implements QueueServer {
public void setSupportedProtocols(List<Integer> list) {
supportedProtocols = new ArrayList<>(list);
}
@Override
public boolean canJoinFull(AdaptedPlayer player) {
return player.hasPermission("ajqueue.joinfull") || player.hasPermission("ajqueue.joinfullserver."+name);
}
}