diff --git a/src/main/java/us/ajg0702/queue/Main.java b/src/main/java/us/ajg0702/queue/Main.java index 76307c1..527d662 100644 --- a/src/main/java/us/ajg0702/queue/Main.java +++ b/src/main/java/us/ajg0702/queue/Main.java @@ -110,6 +110,8 @@ public class Main extends Plugin implements Listener { d.put("commands.pause.paused.true", "&epaused"); d.put("commands.pause.paused.false", "&aun-paused"); + d.put("max-tries-reached", "&cUnable to connect to {SERVER}. Max retries reached."); + msgs = BungeeMessages.getInstance(this, d); aliases = new AliasManager(this); @@ -173,6 +175,7 @@ public class Main extends Plugin implements Listener { int pos = queue.indexOf(p); if((pos == 0 && ser.getInfos().contains(p.getServer().getInfo())) || config.getBoolean("remove-player-on-server-switch")) { queue.remove(p); + Manager.getInstance().sendingAttempts.remove(p); } } diff --git a/src/main/java/us/ajg0702/queue/Manager.java b/src/main/java/us/ajg0702/queue/Manager.java index 644d145..da86b01 100644 --- a/src/main/java/us/ajg0702/queue/Manager.java +++ b/src/main/java/us/ajg0702/queue/Manager.java @@ -460,6 +460,7 @@ public class Manager { } HashMap sendingNowAntiSpam = new HashMap<>(); + HashMap sendingAttempts = new HashMap<>(); /** * Attempts to send the first player in this queue @@ -537,6 +538,17 @@ public class Manager { if(s.getQueue().size() <= 0) continue; if(s.isFull() && !nextplayer.hasPermission("ajqueue.joinfull")) continue; + int tries = sendingAttempts.get(nextplayer) == null ? 0 : sendingAttempts.get(nextplayer); + int maxTries = pl.config.getInt("max-tries"); + if(tries >= maxTries && maxTries > 0) { + s.getQueue().remove(nextplayer); + sendingAttempts.remove(nextplayer); + nextplayer.sendMessage(msgs.getBC("max-tries-reached", "SERVER:"+pl.aliases.getAlias(s.getName()))); + continue; + } + tries++; + pl.getLogger().info(tries+" tries"); + sendingAttempts.put(nextplayer, tries); if(!sendingNowAntiSpam.containsKey(nextplayer)) { sendingNowAntiSpam.put(nextplayer, (long) 0); diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 3134164..3bd2ffd 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -1,5 +1,5 @@ # Dont touch this number please -config-version: 16 +config-version: 17 # The time the server will wait between sending people in the queue # Default: 5 @@ -137,3 +137,8 @@ send-instantly: # Default: false send-fail-debug: false +# After how many (unsuccessfull) attempts of sending the player should we remove them from the queue? +# Set to -1 to disable +# Default: -1 +max-tries: -1 +