Browse Source

fixed memory leak player -> uuid (issue #8)

mastercake10 8 years ago
parent
commit
c2b2d08829
2 changed files with 15 additions and 16 deletions
  1. 14 15
      TimeIsMoney2/src/de/Linus122/TimeIsMoney/Main.java
  2. 1 1
      TimeIsMoney2/src/plugin.yml

+ 14 - 15
TimeIsMoney2/src/de/Linus122/TimeIsMoney/Main.java

@@ -19,17 +19,16 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Random;
+import java.util.UUID;
 
 import org.bukkit.Bukkit;
 import org.bukkit.Location;
 import org.bukkit.command.Command;
-import org.bukkit.command.CommandSender;
 import org.bukkit.command.ConsoleCommandSender;
 import org.bukkit.command.PluginCommand;
 import org.bukkit.command.SimpleCommandMap;
 import org.bukkit.configuration.file.YamlConfiguration;
 import org.bukkit.entity.Player;
-import org.bukkit.plugin.InvalidDescriptionException;
 import org.bukkit.plugin.Plugin;
 import org.bukkit.plugin.PluginManager;
 import org.bukkit.plugin.RegisteredServiceProvider;
@@ -45,9 +44,9 @@ public class Main extends JavaPlugin{
 	List<Payout> payouts = new ArrayList<Payout>();
 	HashMap<String, Double> payedMoney = new HashMap<String, Double>();
 	
-	HashMap<Player, Integer> onlineSeconds = new HashMap<Player, Integer>();
+	HashMap<UUID, Integer> onlineSeconds = new HashMap<UUID, Integer>();
 	
-	HashMap<Player, Location> lastLocation = new HashMap<Player, Location>();
+	HashMap<UUID, Location> lastLocation = new HashMap<UUID, Location>();
 	
 	public static Economy economy = null;
 	public static Utils utils = null;
@@ -65,7 +64,7 @@ public class Main extends JavaPlugin{
 	boolean use18Features = true;
 	
 	public static List<String> disabledWorlds;
-	public static HashMap<String, Player> boundIPs = new HashMap<String, Player>();
+	public static HashMap<String, UUID> boundIPs = new HashMap<String, UUID>();
 	
 	@SuppressWarnings({ "deprecation", "unchecked" })
 	@Override
@@ -106,17 +105,17 @@ public class Main extends JavaPlugin{
 				for(Player p : Bukkit.getOnlinePlayers()){
 					if(disabledWorlds.contains(p.getWorld().getName())) continue;
 					if(!boundIPs.containsKey(p.getAddress().getHostName())){
-						boundIPs.put(p.getAddress().getHostName(), p);
+						boundIPs.put(p.getAddress().getHostName(), p.getUniqueId());
 					}
-					if(onlineSeconds.containsKey(p)){
+					if(onlineSeconds.containsKey(p.getUniqueId())){
 						
-						onlineSeconds.put(p, onlineSeconds.get(p) + 1);
+						onlineSeconds.put(p.getUniqueId(), onlineSeconds.get(p.getUniqueId()) + 1);
 					}else{
-						onlineSeconds.put(p, 1);
+						onlineSeconds.put(p.getUniqueId(), 1);
 					}
-					if(onlineSeconds.get(p) > seconds){
+					if(onlineSeconds.get(p.getUniqueId()) > seconds){
 						pay(p);
-						onlineSeconds.remove(p);
+						onlineSeconds.remove(p.getUniqueId());
 					}
 				}
 			}
@@ -300,7 +299,7 @@ public class Main extends JavaPlugin{
 		
 		if(!finalconfig.getBoolean("allow-multiple-accounts")){
 			if(boundIPs.containsKey(p.getAddress().getHostName())){
-				if(boundIPs.get(p.getAddress().getHostName()) != p){
+				if(!boundIPs.get(p.getAddress().getHostName()).equals(p.getUniqueId())){
 					sendMessage(p, finalconfig.getString("message_multiple_ips"));
 					return;
 				}
@@ -324,8 +323,8 @@ public class Main extends JavaPlugin{
 			    }
 			}else
 			//PLUGIN_AFK_FEATURE
-			if(lastLocation.containsKey(p)){ //AntiAFK
-				if(lastLocation.get(p).getX() == p.getLocation().getX() && lastLocation.get(p).getY() == p.getLocation().getY() && lastLocation.get(p).getZ() == p.getLocation().getZ() || lastLocation.get(p).getYaw() == p.getLocation().getYaw()){
+			if(lastLocation.containsKey(p.getUniqueId())){ //AntiAFK
+				if(lastLocation.get(p.getUniqueId()).getX() == p.getLocation().getX() && lastLocation.get(p.getUniqueId()).getY() == p.getLocation().getY() && lastLocation.get(p.getUniqueId()).getZ() == p.getLocation().getZ() || lastLocation.get(p.getUniqueId()).getYaw() == p.getLocation().getYaw()){
 					//AFK
 					if(finalconfig.getBoolean("display-messages-in-chat")){
 						sendMessage(p, finalconfig.getString("message_afk"));	
@@ -368,7 +367,7 @@ public class Main extends JavaPlugin{
 			payedMoney.put(p.getName(), payout.payout_amount);
 		}
 
-		lastLocation.put(p, p.getLocation());
+		lastLocation.put(p.getUniqueId(), p.getLocation());
 	
 	}
 	@SuppressWarnings("deprecation")

+ 1 - 1
TimeIsMoney2/src/plugin.yml

@@ -3,7 +3,7 @@ depends: [Vault]
 soft-depends: [Essentials]
 author: Linus122
 main: de.Linus122.TimeIsMoney.Main
-version: 1946
+version: 1947
 description: Gives money for online time
 commands:
    timeismoney: