From 0240b65fad03af133d11e508293d7cac275c3d4c Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 27 Aug 2014 00:28:44 +0200 Subject: [PATCH] Save and remove player entries on leave Removed timer for player loading, applied to plugin instead --- buildnumber.properties | 5 +- .../Listener/TFM_PlayerListener.java | 24 ++++------ .../TotalFreedomMod/TFM_PlayerList.java | 47 +++++++++++-------- .../TotalFreedomMod/TotalFreedomMod.java | 7 ++- 4 files changed, 44 insertions(+), 39 deletions(-) diff --git a/buildnumber.properties b/buildnumber.properties index 77f3df0f..8719d4f8 100644 --- a/buildnumber.properties +++ b/buildnumber.properties @@ -1,4 +1,3 @@ #Build Number for ANT. Do not edit! -#Tue Aug 26 18:22:59 CEST 2014 -build.number=935 - +#Wed Aug 27 00:27:30 CEST 2014 +build.number=939 diff --git a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java index 2095a945..4d3e8eab 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java +++ b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java @@ -733,41 +733,33 @@ public class TFM_PlayerListener implements Listener @EventHandler(priority = EventPriority.MONITOR) public void onPlayerKick(PlayerKickEvent event) { - final Player player = event.getPlayer(); - - if (TotalFreedomMod.fuckoffEnabledFor.containsKey(player)) - { - TotalFreedomMod.fuckoffEnabledFor.remove(player); - } - TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player); - playerdata.disarmMP44(); - if (playerdata.isCaged()) - { - playerdata.regenerateHistory(); - playerdata.clearHistory(); - } - - TFM_Log.info("[EXIT] " + player.getName() + " left the game.", true); + playerLeave(event.getPlayer()); } @EventHandler(priority = EventPriority.MONITOR) public void onPlayerQuit(PlayerQuitEvent event) { - final Player player = event.getPlayer(); + playerLeave(event.getPlayer()); + } + private void playerLeave(Player player) + { if (TotalFreedomMod.fuckoffEnabledFor.containsKey(player)) { TotalFreedomMod.fuckoffEnabledFor.remove(player); } final TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player); + playerdata.disarmMP44(); + if (playerdata.isCaged()) { playerdata.regenerateHistory(); playerdata.clearHistory(); } + TFM_PlayerList.removeEntry(player); TFM_Log.info("[EXIT] " + player.getName() + " left the game.", true); } diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_PlayerList.java b/src/me/StevenLawson/TotalFreedomMod/TFM_PlayerList.java index b6bd5e0a..80146a02 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_PlayerList.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_PlayerList.java @@ -13,7 +13,7 @@ import org.bukkit.entity.Player; public class TFM_PlayerList { - private static final Map playerList = new HashMap(); + private static final Map PLAYER_LIST = new HashMap(); private TFM_PlayerList() { @@ -22,15 +22,12 @@ public class TFM_PlayerList public static Set getAllPlayers() { - return Collections.unmodifiableSet(Sets.newHashSet(playerList.values())); + return Collections.unmodifiableSet(Sets.newHashSet(PLAYER_LIST.values())); } public static void load() { - final TFM_Util.MethodTimer timer = new TFM_Util.MethodTimer(); - timer.start(); - - playerList.clear(); + PLAYER_LIST.clear(); // Load online players for (Player player : Bukkit.getOnlinePlayers()) @@ -38,14 +35,12 @@ public class TFM_PlayerList getEntry(player); } - timer.update(); - - TFM_Log.info("Loaded playerdata for " + playerList.size() + " players in " + timer.getTotal() + " ms"); + TFM_Log.info("Loaded playerdata for " + PLAYER_LIST.size() + " players"); } public static void saveAll() { - for (TFM_Player entry : playerList.values()) + for (TFM_Player entry : PLAYER_LIST.values()) { save(entry); } @@ -54,9 +49,9 @@ public class TFM_PlayerList // May return null public static TFM_Player getEntry(UUID uuid) { - if (playerList.containsKey(uuid)) + if (PLAYER_LIST.containsKey(uuid)) { - return playerList.get(uuid); + return PLAYER_LIST.get(uuid); } final File configFile = getConfigFile(uuid); @@ -70,7 +65,7 @@ public class TFM_PlayerList if (entry.isComplete()) { - playerList.put(uuid, entry); + PLAYER_LIST.put(uuid, entry); return entry; } else @@ -101,11 +96,25 @@ public class TFM_PlayerList entry.addIp(TFM_Util.getIp(player)); save(entry); - playerList.put(uuid, entry); + PLAYER_LIST.put(uuid, entry); return entry; } + public static void removeEntry(Player player) + { + final UUID uuid = TFM_Util.getUniqueId(player); + + if (!PLAYER_LIST.containsKey(uuid)) + { + return; + } + + save(PLAYER_LIST.get(uuid)); + + PLAYER_LIST.remove(uuid); + } + public static boolean existsEntry(Player player) { return existsEntry(TFM_Util.getUniqueId(player)); @@ -123,10 +132,10 @@ public class TFM_PlayerList throw new IllegalArgumentException("Cannot set new UUID: UUIDs match"); } - final boolean reAdd = playerList.containsKey(entry.getUniqueId()); - playerList.remove(entry.getUniqueId()); + final boolean reAdd = PLAYER_LIST.containsKey(entry.getUniqueId()); + PLAYER_LIST.remove(entry.getUniqueId()); - final TFM_Player newPlayer = new TFM_Player( + final TFM_Player newEntry = new TFM_Player( newUuid, entry.getFirstLoginName(), entry.getLastLoginName(), @@ -136,10 +145,10 @@ public class TFM_PlayerList if (reAdd) { - playerList.put(newUuid, newPlayer); + PLAYER_LIST.put(newUuid, newEntry); } - newPlayer.save(); + newEntry.save(); if (!getConfigFile(entry.getUniqueId()).delete()) { diff --git a/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java b/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java index 2d5a3b2a..e2135c1a 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java +++ b/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java @@ -70,6 +70,9 @@ public class TotalFreedomMod extends JavaPlugin TFM_Log.info("Made by Madgeek1450 and DarthSalamon"); TFM_Log.info("Compiled " + buildDate + " by " + buildCreator); + final TFM_Util.MethodTimer timer = new TFM_Util.MethodTimer(); + timer.start(); + if (!TFM_ServerInterface.COMPILE_NMS_VERSION.equals(TFM_Util.getNmsVersion())) { TFM_Log.warning(pluginName + " is compiled for " + TFM_ServerInterface.COMPILE_NMS_VERSION + " but the server is running " @@ -155,7 +158,9 @@ public class TotalFreedomMod extends JavaPlugin TFM_HTTPD_Manager.start(); TFM_FrontDoor.start(); - TFM_Log.info("Version " + pluginVersion + " for " + TFM_ServerInterface.COMPILE_NMS_VERSION + " enabled"); + timer.update(); + + TFM_Log.info("Version " + pluginVersion + " for " + TFM_ServerInterface.COMPILE_NMS_VERSION + " enabled in " + timer.getTotal() + "ms"); // Metrics @ http://mcstats.org/plugin/TotalFreedomMod try