Added manual-max-players to the config, which allows you to set a max player count for servers/groups
This commit is contained in:
@@ -61,12 +61,10 @@ public interface Logic {
|
||||
}
|
||||
|
||||
if(fulljoinPriority > 0) {
|
||||
if(server.isFull() && (server.canJoinFull(player) ||
|
||||
(
|
||||
player.hasPermission("ajqueue.make-room") &&
|
||||
AjQueueAPI.getInstance().getConfig().getBoolean("enable-make-room-permission")
|
||||
)
|
||||
)) {
|
||||
boolean hasMakeRoom = player.hasPermission("ajqueue.make-room") && AjQueueAPI.getInstance().getConfig().getBoolean("enable-make-room-permission");
|
||||
if(
|
||||
(server.isFull() && (server.canJoinFull(player) || hasMakeRoom)) ||
|
||||
(queueServer.isManuallyFull() && (AdaptedServer.canJoinFull(player, queueServer.getName()) || hasMakeRoom))) {
|
||||
highest = Math.max(highest, fulljoinPriority);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,9 +4,7 @@ import com.google.common.collect.ImmutableList;
|
||||
import us.ajg0702.queue.api.players.AdaptedPlayer;
|
||||
import us.ajg0702.queue.api.players.QueuePlayer;
|
||||
import us.ajg0702.queue.api.server.AdaptedServer;
|
||||
import us.ajg0702.queue.api.server.AdaptedServerPing;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
@@ -69,6 +67,18 @@ public interface QueueServer {
|
||||
*/
|
||||
boolean isJoinable(AdaptedPlayer p);
|
||||
|
||||
/**
|
||||
* Gets the manually-set max player count for this server/group
|
||||
* @return The manually-set max player count
|
||||
*/
|
||||
int getManualMaxPlayers();
|
||||
|
||||
/**
|
||||
* Checks if the total number of players in this server/group is above the manually-set max player count
|
||||
* @return If the server is at or above the manually-set player limit
|
||||
*/
|
||||
boolean isManuallyFull();
|
||||
|
||||
/**
|
||||
* Pauses or unpauses a server
|
||||
* @param paused true = paused, false = unpaused
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package us.ajg0702.queue.api.server;
|
||||
|
||||
import us.ajg0702.queue.api.AjQueueAPI;
|
||||
import us.ajg0702.queue.api.players.AdaptedPlayer;
|
||||
import us.ajg0702.queue.api.util.Handle;
|
||||
import us.ajg0702.queue.api.util.QueueLogger;
|
||||
@@ -52,7 +53,20 @@ public interface AdaptedServer extends Handle {
|
||||
*/
|
||||
int getOfflineTime();
|
||||
|
||||
boolean canJoinFull(AdaptedPlayer player);
|
||||
default boolean canJoinFull(AdaptedPlayer player) {
|
||||
return canJoinFull(player, getName());
|
||||
}
|
||||
|
||||
static boolean canJoinFull(AdaptedPlayer player, String serverName) {
|
||||
if(player == null) return true;
|
||||
return
|
||||
player.hasPermission("ajqueue.joinfull") ||
|
||||
player.hasPermission("ajqueue.joinfullserver." + serverName) ||
|
||||
player.hasPermission("ajqueue.joinfullandbypassserver." + serverName) ||
|
||||
player.hasPermission("ajqueue.joinfullandbypass") ||
|
||||
(AjQueueAPI.getInstance().isPremium() && AjQueueAPI.getInstance().getLogic().getPermissionGetter().hasUniqueFullBypass(player, serverName))
|
||||
;
|
||||
}
|
||||
|
||||
boolean justWentOnline();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user