@@ -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