Skip to content

Commit 39d794a

Browse files
Make alwaysqueue false more reliable
1 parent 1d0a716 commit 39d794a

1 file changed

Lines changed: 14 additions & 2 deletions

File tree

src/main/java/net/pistonmaster/pistonqueue/bungee/listeners/QueueListener.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,12 +70,15 @@ public void onSend(ServerConnectEvent event) {
7070
if (Config.ALWAYSQUEUE)
7171
return;
7272

73+
if (isAnyoneQueued())
74+
return;
75+
7376
if (!isMainFull() && event.getTarget().equals(plugin.getProxy().getServerInfo(Config.QUEUESERVER)))
7477
event.setTarget(plugin.getProxy().getServerInfo(Config.MAINSERVER));
7578
} else {
7679
if (event.getPlayer().getServer() == null) {
7780
if (!Config.KICKWHENDOWN || (mainOnline && queueOnline && authOnline)) { // authOnline is always true if auth is not enabled
78-
if (Config.ALWAYSQUEUE || isMainFull() || (!mainOnline && !Config.KICKWHENDOWN)) {
81+
if (Config.ALWAYSQUEUE || (isMainFull() || isAnyoneQueued()) || (!mainOnline && !Config.KICKWHENDOWN)) {
7982
if (player.hasPermission(Config.QUEUEBYPASSPERMISSION)) {
8083
event.setTarget(plugin.getProxy().getServerInfo(Config.MAINSERVER));
8184
} else {
@@ -215,7 +218,7 @@ private void connectPlayer(QueueType type) {
215218
}
216219

217220
player.connect(plugin.getProxy().getServerInfo(entry.getValue()), (result, error) -> {
218-
if (!Boolean.TRUE.equals(result)) {
221+
if (Config.RECOVERY && !Boolean.TRUE.equals(result)) {
219222
player.sendMessage(ChatMessageType.CHAT, ChatUtils.parseToComponent(Config.RECOVERYMESSAGE));
220223
type.getQueueMap().put(entry.getKey(), entry.getValue());
221224
}
@@ -276,4 +279,13 @@ private boolean isMainFull() {
276279
private boolean isAuthToQueue(ServerSwitchEvent event) {
277280
return event.getFrom() != null && event.getFrom().equals(plugin.getProxy().getServerInfo(Config.AUTHSERVER)) && event.getPlayer().getServer().getInfo().equals(plugin.getProxy().getServerInfo(Config.QUEUESERVER));
278281
}
282+
283+
private boolean isAnyoneQueued() {
284+
for (QueueType type :QueueType.values()) {
285+
if (!type.getQueueMap().isEmpty())
286+
return true;
287+
}
288+
289+
return false;
290+
}
279291
}

0 commit comments

Comments
 (0)