From ef7016d576c8f0e65140153150a34c1b7b19747a Mon Sep 17 00:00:00 2001 From: YouHaveTrouble Date: Thu, 25 Feb 2021 03:03:04 +0100 Subject: [PATCH] only set login timestamp on login --- .../listeners/player/PlayerJoinAndLeaveListener.java | 12 ++++-------- .../eu/endermite/togglepvp/players/PlayerData.java | 5 ++--- .../eu/endermite/togglepvp/players/SmartCache.java | 4 ++-- .../eu/endermite/togglepvp/util/DatabaseSQLite.java | 2 +- 4 files changed, 9 insertions(+), 14 deletions(-) diff --git a/src/main/java/eu/endermite/togglepvp/listeners/player/PlayerJoinAndLeaveListener.java b/src/main/java/eu/endermite/togglepvp/listeners/player/PlayerJoinAndLeaveListener.java index eebe4da..ca8db11 100644 --- a/src/main/java/eu/endermite/togglepvp/listeners/player/PlayerJoinAndLeaveListener.java +++ b/src/main/java/eu/endermite/togglepvp/listeners/player/PlayerJoinAndLeaveListener.java @@ -17,14 +17,11 @@ public class PlayerJoinAndLeaveListener implements Listener { @EventHandler(ignoreCancelled = true) public void onPlayerJoin(org.bukkit.event.player.PlayerJoinEvent event) { Player player = event.getPlayer(); - - PlayerData playerData = TogglePvp.getPlugin().getSqLite().getPlayerInfo(player.getUniqueId()); - - TogglePvp.getPlugin().getPlayerManager().addPlayer(player.getUniqueId(), playerData); + PlayerData playerData = TogglePvp.getPlugin().getPlayerManager().getPlayer(player.getUniqueId()); playerData.setLoginTimestamp(Instant.now().getEpochSecond()); } /** - * This event is here to dump player's saved options from memory + * This event is here to save player's data to database * Also punishes players who log out during combat */ @EventHandler @@ -38,12 +35,11 @@ public class PlayerJoinAndLeaveListener implements Listener { if (combatTime > now) { player.setHealth(0); - if (TogglePvp.getPlugin().getConfigCache().isPunish_for_combat_logout_announce()) { + if (TogglePvp.getPlugin().getConfigCache().isPunish_for_combat_logout_announce()) PluginMessages.broadcastMessage(player, TogglePvp.getPlugin().getConfigCache().getPunish_for_combat_logout_message()); - } + PlayerData playerData = TogglePvp.getPlugin().getPlayerManager().getPlayer(player.getUniqueId()); playerData.setCombattime(now-1); - } } } diff --git a/src/main/java/eu/endermite/togglepvp/players/PlayerData.java b/src/main/java/eu/endermite/togglepvp/players/PlayerData.java index 00d41a5..a5d1bd6 100644 --- a/src/main/java/eu/endermite/togglepvp/players/PlayerData.java +++ b/src/main/java/eu/endermite/togglepvp/players/PlayerData.java @@ -11,11 +11,10 @@ public class PlayerData { private boolean lastCombatCheck; private long loginTimestamp; - public PlayerData(boolean pvpEnabled, long loginTimestamp) { + public PlayerData(boolean pvpEnabled) { this.pvpEnabled = pvpEnabled; this.combattime = Instant.now().getEpochSecond()-1; - this.loginTimestamp = loginTimestamp; - + this.loginTimestamp = Instant.now().getEpochSecond()-1; refreshCachetime(); } diff --git a/src/main/java/eu/endermite/togglepvp/players/SmartCache.java b/src/main/java/eu/endermite/togglepvp/players/SmartCache.java index 3ae4e6d..ad9e7aa 100644 --- a/src/main/java/eu/endermite/togglepvp/players/SmartCache.java +++ b/src/main/java/eu/endermite/togglepvp/players/SmartCache.java @@ -42,7 +42,7 @@ public class SmartCache { return playerData; } catch (NullPointerException ex) { // Return false if database call fails - return new PlayerData(false, 0); + return new PlayerData(false); } } } @@ -53,7 +53,7 @@ public class SmartCache { TogglePvp.getPlugin().getPlayerManager().getPlayer(uuid).setPvpEnabled(state); } // Update the database aswell - TogglePvp.getPlugin().getSqLite().updatePlayerInfo(uuid, new PlayerData(state, 0)); + TogglePvp.getPlugin().getSqLite().updatePlayerInfo(uuid, new PlayerData(state)); } diff --git a/src/main/java/eu/endermite/togglepvp/util/DatabaseSQLite.java b/src/main/java/eu/endermite/togglepvp/util/DatabaseSQLite.java index 0ed50ea..87e0c14 100644 --- a/src/main/java/eu/endermite/togglepvp/util/DatabaseSQLite.java +++ b/src/main/java/eu/endermite/togglepvp/util/DatabaseSQLite.java @@ -70,7 +70,7 @@ public class DatabaseSQLite { ResultSet result = statement.getResultSet(); boolean state = result.getBoolean("pvpenabled"); conn.close(); - return new PlayerData(state, 0); + return new PlayerData(state); } catch (SQLException throwables) { throwables.printStackTrace(); }