diff --git a/Plan/common/src/main/java/com/djrapitops/plan/storage/upkeep/DBCleanTask.java b/Plan/common/src/main/java/com/djrapitops/plan/storage/upkeep/DBCleanTask.java index fd0cefd0b..715fbd591 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/storage/upkeep/DBCleanTask.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/storage/upkeep/DBCleanTask.java @@ -161,15 +161,21 @@ public class DBCleanTask extends TaskSystem.Task { // VisibleForTesting public int cleanOldPlayers(Database database) { - long now = System.currentTimeMillis(); - long keepActiveAfter = now - config.get(TimeSettings.DELETE_INACTIVE_PLAYERS_AFTER); + // 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); - List inactivePlayers = database.query(fetchInactivePlayerUUIDs(keepActiveAfter)); - for (UUID playerUUID : inactivePlayers) { - queryService.playerRemoved(playerUUID); - database.executeTransaction(new RemovePlayerTransaction(playerUUID)); + List inactivePlayers = database.query(fetchInactivePlayerUUIDs(keepActiveAfter)); + for (UUID playerUUID : inactivePlayers) { + queryService.playerRemoved(playerUUID); + database.executeTransaction(new RemovePlayerTransaction(playerUUID)); + } + return inactivePlayers.size(); } - return inactivePlayers.size(); + + // Skip cleaning on game servers if proxy server is installed. + return 0; } private Query> fetchInactivePlayerUUIDs(long keepActiveAfter) {