Add option to allow re-queueing for groups
This commit is contained in:
@@ -188,11 +188,13 @@ public class QueueManagerImpl implements QueueManager {
|
||||
}
|
||||
}
|
||||
|
||||
List<AdaptedServer> notInServers = new ArrayList<>(server.getServers());
|
||||
notInServers.removeIf(adaptedServer -> !adaptedServer.getName().equals(player.getServerName()));
|
||||
if(notInServers.size() > 0) {
|
||||
player.sendMessage(msgs.getComponent("errors.already-connected", "SERVER:"+server.getAlias()));
|
||||
return false;
|
||||
if(!server.isGroup() || !main.getConfig().getBoolean("allow-group-requeue")) {
|
||||
List<AdaptedServer> notInServers = new ArrayList<>(server.getServers());
|
||||
notInServers.removeIf(adaptedServer -> !adaptedServer.getName().equals(player.getServerName()));
|
||||
if(notInServers.size() > 0) {
|
||||
player.sendMessage(msgs.getComponent("errors.already-connected", "SERVER:"+server.getAlias()));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
ImmutableList<QueueServer> beforeQueues = getPlayerQueues(player);
|
||||
@@ -438,7 +440,7 @@ public class QueueManagerImpl implements QueueManager {
|
||||
"TIME:"+ TimeUtils.timeString(time, msgs.getString("format.time.mins"), msgs.getString("format.time.secs"))
|
||||
);
|
||||
|
||||
Title title = Title.title(titleMessage, subTitleMessage, Title.Times.of(Duration.ZERO, Duration.ofSeconds(2L), Duration.ZERO));
|
||||
Title title = Title.title(titleMessage, subTitleMessage, Title.Times.times(Duration.ZERO, Duration.ofSeconds(2L), Duration.ZERO));
|
||||
player.showTitle(title);
|
||||
}
|
||||
}
|
||||
@@ -688,7 +690,7 @@ public class QueueManagerImpl implements QueueManager {
|
||||
"title.sending-now.subtitle",
|
||||
"SERVER:"+server.getAlias()
|
||||
),
|
||||
Title.Times.of(Duration.ZERO, Duration.ofSeconds(2L), Duration.ZERO)
|
||||
Title.Times.times(Duration.ZERO, Duration.ofSeconds(2L), Duration.ZERO)
|
||||
));
|
||||
}
|
||||
sendingNowAntiSpam.put(nextPlayer, System.currentTimeMillis());
|
||||
|
||||
@@ -1,15 +1,13 @@
|
||||
package us.ajg0702.queue.common.queues.balancers;
|
||||
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import us.ajg0702.queue.api.players.AdaptedPlayer;
|
||||
import us.ajg0702.queue.api.queues.Balancer;
|
||||
import us.ajg0702.queue.api.queues.QueueServer;
|
||||
import us.ajg0702.queue.api.server.AdaptedServer;
|
||||
import us.ajg0702.queue.api.server.AdaptedServerPing;
|
||||
import us.ajg0702.queue.common.QueueMain;
|
||||
import us.ajg0702.queue.common.utils.Debug;
|
||||
import us.ajg0702.utils.common.GenUtils;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
public class DefaultBalancer implements Balancer {
|
||||
@@ -22,7 +20,13 @@ public class DefaultBalancer implements Balancer {
|
||||
}
|
||||
|
||||
@Override
|
||||
public AdaptedServer getIdealServer(AdaptedPlayer player) {
|
||||
public AdaptedServer getIdealServer(@Nullable AdaptedPlayer player) {
|
||||
AdaptedServer alreadyConnected;
|
||||
if(player == null) {
|
||||
alreadyConnected = null;
|
||||
} else {
|
||||
alreadyConnected = player.getCurrentServer();
|
||||
}
|
||||
List<AdaptedServer> servers = server.getServers();
|
||||
AdaptedServer selected = null;
|
||||
int selectednum = 0;
|
||||
@@ -31,6 +35,7 @@ public class DefaultBalancer implements Balancer {
|
||||
} else {
|
||||
for(AdaptedServer sv : servers) {
|
||||
if(!sv.isOnline()) continue;
|
||||
if(sv.equals(alreadyConnected)) continue;
|
||||
int online = sv.getPlayerCount();
|
||||
if(selected == null) {
|
||||
selected = sv;
|
||||
|
||||
+12
-3
@@ -1,13 +1,15 @@
|
||||
package us.ajg0702.queue.common.queues.balancers;
|
||||
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import us.ajg0702.queue.api.players.AdaptedPlayer;
|
||||
import us.ajg0702.queue.api.queues.Balancer;
|
||||
import us.ajg0702.queue.api.queues.QueueServer;
|
||||
import us.ajg0702.queue.api.server.AdaptedServer;
|
||||
import us.ajg0702.queue.api.server.AdaptedServerPing;
|
||||
import us.ajg0702.queue.common.QueueMain;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
|
||||
public class MinigameBalancer implements Balancer {
|
||||
|
||||
@@ -19,7 +21,13 @@ public class MinigameBalancer implements Balancer {
|
||||
}
|
||||
|
||||
@Override
|
||||
public AdaptedServer getIdealServer(AdaptedPlayer player) {
|
||||
public AdaptedServer getIdealServer(@Nullable AdaptedPlayer player) {
|
||||
AdaptedServer alreadyConnected;
|
||||
if(player == null) {
|
||||
alreadyConnected = null;
|
||||
} else {
|
||||
alreadyConnected = player.getCurrentServer();
|
||||
}
|
||||
List<AdaptedServer> servers = server.getServers();
|
||||
if(servers.size() == 1) {
|
||||
return servers.get(0);
|
||||
@@ -30,6 +38,7 @@ public class MinigameBalancer implements Balancer {
|
||||
|
||||
for(AdaptedServer si : svs) {
|
||||
if(!si.isOnline()) continue;
|
||||
if(si.equals(alreadyConnected)) continue;
|
||||
int online = si.getPlayerCount();
|
||||
int max = si.getMaxPlayers();
|
||||
if(online < max && si.isJoinable(player)) {
|
||||
|
||||
@@ -108,6 +108,12 @@ server-groups:
|
||||
balancer-types:
|
||||
- "bedwars:minigame"
|
||||
|
||||
# If a player is in a server that is in a group and they re-queue for that group, should we allow it?
|
||||
# false - prevent player from re-queueing; say "already connected" message
|
||||
# true - let player re-queue; will send them to a server other than the one they're connected to
|
||||
# Default: false
|
||||
allow-group-requeue: false
|
||||
|
||||
|
||||
# What priority should we give whitelisted players priority when the server is whitelisted?
|
||||
# This will have no effect if the server isn't whitelisted
|
||||
@@ -371,4 +377,4 @@ debug: false
|
||||
|
||||
|
||||
# Don't touch this number please
|
||||
config-version: 37
|
||||
config-version: 38
|
||||
|
||||
Reference in New Issue
Block a user