diff --git a/src/main/java/us/ajg0702/queue/Main.java b/src/main/java/us/ajg0702/queue/Main.java index 39a3fa5..84c72b1 100644 --- a/src/main/java/us/ajg0702/queue/Main.java +++ b/src/main/java/us/ajg0702/queue/Main.java @@ -181,6 +181,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); + ser.setLastSentTime(System.currentTimeMillis()); 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 c597d02..7698e3e 100644 --- a/src/main/java/us/ajg0702/queue/Manager.java +++ b/src/main/java/us/ajg0702/queue/Manager.java @@ -657,8 +657,15 @@ public class Manager { } int pos = list.indexOf(p)+1; int len = list.size(); - boolean sendInstant = pl.config.getStringList("send-instantly").indexOf(server.getName()) != -1; - if((list.size() <= 1 || sendInstant) && server.canAccess(p)) { + + + boolean sendInstant = pl.config.getStringList("send-instantly").indexOf(server.getName()) != -1 && server.canAccess(p); + boolean sendInstantp = list.size() <= 1 && server.canAccess(p); + boolean timeGood = pl.config.getBoolean("check-last-player-sent-time") ? + System.currentTimeMillis() - server.getLastSentTime() > Math.floor(pl.getConfig().getDouble("wait-time")*1000) + : true; + + if(sendInstant || (sendInstantp && timeGood)) { sendPlayers(s); BaseComponent[] m = msgs.getBC("status.now-in-empty-queue", "POS:"+pos, "LEN:"+len, "SERVER:"+pl.aliases.getAlias(s)); if(TextComponent.toPlainText(m).length() > 0) { diff --git a/src/main/java/us/ajg0702/queue/QueueServer.java b/src/main/java/us/ajg0702/queue/QueueServer.java index 2b1004c..49025cf 100644 --- a/src/main/java/us/ajg0702/queue/QueueServer.java +++ b/src/main/java/us/ajg0702/queue/QueueServer.java @@ -166,6 +166,15 @@ public class QueueServer { } + long lastSent = 0; + public long getLastSentTime() { + return lastSent; + } + public void setLastSentTime(long newLastSent) { + lastSent = newLastSent; + } + + boolean whitelisted = false; List whitelistedplayers = new ArrayList<>(); public void setWhitelisted(boolean b) { diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 9473593..358baf7 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -1,5 +1,5 @@ # Dont touch this number please -config-version: 19 +config-version: 20 # The time the server will wait between sending people in the queue # Default: 5 @@ -146,3 +146,10 @@ max-tries: 10 # If enabled, anyone with the permission ajqueue.bypasspaused will be able to join paused servers # Default: false enable-bypasspaused-permission: false + + +# Should we check to make sure that people dont get sent quicker than wait-time? +# Default: true +check-last-player-sent-time: true + +