add canJoinFull method
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user