From 8eb4a54e6eae09bec6a2676fb0ad5d0c79fa8736 Mon Sep 17 00:00:00 2001 From: Aurora Lahtela <24460436+AuroraLS3@users.noreply.github.com> Date: Fri, 6 Oct 2023 08:39:24 +0300 Subject: [PATCH] Disable database player clean on game servers when proxy is installed Affects issues: - Close #3241 --- .../plan/storage/upkeep/DBCleanTask.java | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) 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) {