diff --git a/src/main/java/emu/nebula/Config.java b/src/main/java/emu/nebula/Config.java index 9a89d35..b5021f1 100644 --- a/src/main/java/emu/nebula/Config.java +++ b/src/main/java/emu/nebula/Config.java @@ -102,6 +102,7 @@ public class Config { public boolean autoCreateAccount = true; public boolean skipIntro = false; public boolean unlockInstances = true; + public int sessionTimeout = 600; // How long to wait (in seconds) after the last http request from a session before removing it from the server public int dailyResetHour = 0; public int leaderboardRefreshTime = 60; // Leaderboard refresh time in seconds public WelcomeMail welcomeMail = new WelcomeMail(); diff --git a/src/main/java/emu/nebula/game/GameContext.java b/src/main/java/emu/nebula/game/GameContext.java index aee75eb..5b189e6 100644 --- a/src/main/java/emu/nebula/game/GameContext.java +++ b/src/main/java/emu/nebula/game/GameContext.java @@ -77,7 +77,9 @@ public class GameContext implements Runnable { // TODO add timeout to config public synchronized void cleanupInactiveSessions() { var it = this.getSessions().entrySet().iterator(); - long timeout = System.currentTimeMillis() - TimeUnit.SECONDS.toMillis(600); // 10 minutes + + int time = Nebula.getConfig().getServerOptions().sessionTimeout; + long timeout = System.currentTimeMillis() - TimeUnit.SECONDS.toMillis(time); while (it.hasNext()) { var session = it.next().getValue();