Disable database player clean on game servers when proxy is installed

Affects issues:
- Close #3241
This commit is contained in:
Aurora Lahtela 2023-10-06 08:39:24 +03:00
parent ee1f337eff
commit 8eb4a54e6e

View File

@ -161,6 +161,8 @@ public class DBCleanTask extends TaskSystem.Task {
// VisibleForTesting
public int cleanOldPlayers(Database database) {
// Only clean if this is a proxy server or no proxy servers are installed.
if (serverInfo.getServer().isProxy() || database.query(ServerQueries.fetchProxyServers()).isEmpty()) {
long now = System.currentTimeMillis();
long keepActiveAfter = now - config.get(TimeSettings.DELETE_INACTIVE_PLAYERS_AFTER);
@ -172,6 +174,10 @@ public class DBCleanTask extends TaskSystem.Task {
return inactivePlayers.size();
}
// Skip cleaning on game servers if proxy server is installed.
return 0;
}
private Query<List<UUID>> fetchInactivePlayerUUIDs(long keepActiveAfter) {
String selectLastSeen = SELECT + "MAX(" + SessionsTable.SESSION_END + ") as last_seen, " +
SessionsTable.USER_ID +