Add Bypass permission

This commit is contained in:
B3CKDOOR committed 2025-12-20 11:07:43 +01:00
1 parent 00d6e7a440
commit 3ad858fc86
1 file changed
+27 -4
@@ -109,7 +109,13 @@ public class Queue {
public void onPostLogin(PostLoginEvent event) {
Player player = event.getPlayer();
// Check if player is admin - they bypass everything
// bypass permission skips queue entirely
if (player.hasPermission("queue.bypass")) {
connectToMainServer(player, true, true);
return;
}
// Existing admin bypass – kept for compatibility
if (player.hasPermission("queue.admin")) {
connectToMainServer(player, true, true);
return;
@@ -147,6 +153,16 @@ public class Queue {
if (serverName.equals(queueServerName)) {
server.getScheduler()
.buildTask(this, () -> {
// Bypass players go to front of queue if server is down
if (player.hasPermission("queue.bypass")) {
if (!mainServerOnline) {
addToQueueFront(player);
} else {
connectToMainServer(player, true, true);
}
return;
}
// Admins go to front of queue if server is down
if (player.hasPermission("queue.admin")) {
if (!mainServerOnline) {
@@ -344,9 +360,16 @@ public class Queue {
Optional<Player> nextPlayer = server.getPlayer(nextPlayerId);
if (nextPlayer.isPresent()) {
// Check if player is admin
boolean isAdmin = nextPlayer.get().hasPermission("queue.admin");
connectToMainServer(nextPlayer.get(), false, isAdmin);
boolean isAdmin = nextPlayer.get().hasPermission("queue.admin");
boolean isBypass = nextPlayer.get().hasPermission("queue.bypass");
connectToMainServer(
nextPlayer.get(),
false, // not a priority pull
isAdmin, // true only for real admins
isBypass // true only for queue.bypass holders
);
if (!isAdmin) {
currentPlayers++;
}