diff --git a/api/src/main/java/us/ajg0702/queue/api/server/AdaptedServer.java b/api/src/main/java/us/ajg0702/queue/api/server/AdaptedServer.java index 80ee926..50e5c26 100644 --- a/api/src/main/java/us/ajg0702/queue/api/server/AdaptedServer.java +++ b/api/src/main/java/us/ajg0702/queue/api/server/AdaptedServer.java @@ -89,14 +89,16 @@ public interface AdaptedServer extends Handle { } /** - * Gets if the last ping was successfull + * Gets if the last ping was successful * (which almost always means the server is online) * @return If the server is determined to be online or not */ default boolean isOnline() { - return getLastPing().isPresent(); + return getLastPing().isPresent() && !shouldWaitAfterOnline(); } + boolean shouldWaitAfterOnline(); + /** * Gets the number of players currently online * @return The number of players online diff --git a/platforms/bungeecord/src/main/java/us/ajg0702/queue/platforms/bungeecord/server/BungeeServer.java b/platforms/bungeecord/src/main/java/us/ajg0702/queue/platforms/bungeecord/server/BungeeServer.java index 55bb3f2..84b6d0b 100644 --- a/platforms/bungeecord/src/main/java/us/ajg0702/queue/platforms/bungeecord/server/BungeeServer.java +++ b/platforms/bungeecord/src/main/java/us/ajg0702/queue/platforms/bungeecord/server/BungeeServer.java @@ -112,6 +112,11 @@ public class BungeeServer implements AdaptedServer { return System.currentTimeMillis()-lastOffline <= (AjQueueAPI.getInstance().getConfig().getDouble("wait-time") * 2 * 1000) && isOnline(); } + @Override + public boolean shouldWaitAfterOnline() { + return System.currentTimeMillis()-lastOffline <= (AjQueueAPI.getInstance().getConfig().getDouble("wait-after-online") * 2 * 1000) && getLastPing().isPresent(); + } + @Override public ServerInfo getHandle() { return handle; diff --git a/platforms/velocity/src/main/java/us/ajg0702/queue/platforms/velocity/server/VelocityServer.java b/platforms/velocity/src/main/java/us/ajg0702/queue/platforms/velocity/server/VelocityServer.java index 4630a7c..2ae6563 100644 --- a/platforms/velocity/src/main/java/us/ajg0702/queue/platforms/velocity/server/VelocityServer.java +++ b/platforms/velocity/src/main/java/us/ajg0702/queue/platforms/velocity/server/VelocityServer.java @@ -117,6 +117,11 @@ public class VelocityServer implements AdaptedServer { return System.currentTimeMillis()-lastOffline <= (AjQueueAPI.getInstance().getConfig().getDouble("wait-time") * 2 * 1000) && isOnline(); } + @Override + public boolean shouldWaitAfterOnline() { + return System.currentTimeMillis()-lastOffline <= (AjQueueAPI.getInstance().getConfig().getDouble("wait-after-online") * 2 * 1000) && getLastPing().isPresent(); + } + @Override public RegisteredServer getHandle() { return handle;