diff --git a/src/com/projectkorra/projectkorra/player/BendingPlayerManager.java b/src/com/projectkorra/projectkorra/player/BendingPlayerManager.java index b698a399..92e772c0 100644 --- a/src/com/projectkorra/projectkorra/player/BendingPlayerManager.java +++ b/src/com/projectkorra/projectkorra/player/BendingPlayerManager.java @@ -11,13 +11,18 @@ import org.bukkit.event.player.PlayerQuitEvent; import java.sql.SQLException; import java.util.HashMap; +import java.util.HashSet; import java.util.Map; +import java.util.Set; import java.util.UUID; public class BendingPlayerManager extends DatabaseModule { private final Map _players = new HashMap<>(); + private final Set _disconnected = new HashSet<>(); + private final long _databaseSyncInterval = 20 * 30; + private BendingPlayerManager() { super("Bending Player", new BendingPlayerRepository()); @@ -38,11 +43,22 @@ public class BendingPlayerManager extends DatabaseModule + { + _disconnected.forEach(_players::remove); + _disconnected.clear(); + }, _databaseSyncInterval, _databaseSyncInterval); } @EventHandler(priority = EventPriority.LOWEST) public void onLogin(PlayerLoginEvent event) { + if (_disconnected.remove(event.getPlayer().getUniqueId())) + { + return; + } + runAsync(() -> { loadBendingPlayer(event.getPlayer()); @@ -52,8 +68,7 @@ public class BendingPlayerManager extends DatabaseModule