diff --git a/src/main/java/noppes/npcs/NoppesUtilServer.java b/src/main/java/noppes/npcs/NoppesUtilServer.java index 2f94ff001..76f552ba0 100644 --- a/src/main/java/noppes/npcs/NoppesUtilServer.java +++ b/src/main/java/noppes/npcs/NoppesUtilServer.java @@ -1,5 +1,6 @@ package noppes.npcs; +import foxz.utils.Utils; import io.netty.buffer.ByteBuf; import net.minecraft.command.server.CommandBlockLogic; import net.minecraft.entity.Entity; @@ -380,10 +381,12 @@ public class NoppesUtilServer { Map map = new HashMap(); if(type == EnumPlayerData.Players){ - File loc = PlayerDataController.instance.getSaveDir(); - for(String username : PlayerDataController.instance.getUsernameData().keySet()){ - map.put(username, 0); - } + for(String username : PlayerDataController.instance.nameUUIDs.keySet()){ + map.put(username, 0); + } + for(String username : MinecraftServer.getServer().getConfigurationManager().getAllUsernames()){ + map.put(username, 0); + } } else{ PlayerData playerdata = PlayerDataController.instance.getDataFromUsername(name); @@ -470,6 +473,9 @@ public class NoppesUtilServer { playerdata.savePlayerDataOnFile(); return; } + else { + PlayerDataController.instance.nameUUIDs.remove(name); + } } if(type == EnumPlayerData.Quest){ PlayerQuestData data = playerdata.questData; diff --git a/src/main/java/noppes/npcs/controllers/PlayerDataController.java b/src/main/java/noppes/npcs/controllers/PlayerDataController.java index 7403292fa..b886f7546 100644 --- a/src/main/java/noppes/npcs/controllers/PlayerDataController.java +++ b/src/main/java/noppes/npcs/controllers/PlayerDataController.java @@ -26,9 +26,29 @@ import java.util.concurrent.Executors; public class PlayerDataController { public static PlayerDataController instance; + public Map nameUUIDs; public PlayerDataController(){ instance = this; + File dir = getSaveDir(); + if(dir != null){ + Map map = new HashMap(); + if(dir.listFiles() != null){ + for(File file : dir.listFiles()){ + if(file.isDirectory() || !file.getName().endsWith(".json")) + continue; + try { + NBTTagCompound compound = NBTJsonUtil.LoadFile(file); + if(compound.hasKey("PlayerName")){ + map.put(compound.getString("PlayerName"), file.getName().substring(0, file.getName().length() - 5)); + } + } catch (Exception e) { + LogWriter.error("Error loading: " + file.getAbsolutePath(), e); + } + } + nameUUIDs = map; + } + } } public File getSaveDir(){ try{ @@ -133,7 +153,7 @@ public class PlayerDataController { return data; } public String hasPlayer(String username) { - for(String name : getUsernameData().keySet()){ + for(String name : nameUUIDs.keySet()){ if(name.equalsIgnoreCase(username)) return name; } @@ -145,17 +165,16 @@ public class PlayerDataController { EntityPlayer player = MinecraftServer.getServer().getConfigurationManager().func_152612_a(username); PlayerData data = null; if(player == null){ - Map map = getUsernameData(); - for(String name : map.keySet()){ + for(String name : nameUUIDs.keySet()){ if(name.equalsIgnoreCase(username)){ data = new PlayerData(); - data.setNBT(map.get(name)); + data.setNBT(PlayerData.loadPlayerData(nameUUIDs.get(name))); break; } } } else - data = getPlayerData(player); + data = PlayerData.get(player); return data; } @@ -169,23 +188,6 @@ public class PlayerDataController { savePlayerData(data); } - public Map getUsernameData(){ - Map map = new HashMap(); - for(File file : getSaveDir().listFiles()){ - if(file.isDirectory() || !file.getName().endsWith(".json")) - continue; - try { - NBTTagCompound compound = NBTJsonUtil.LoadFile(file); - if(compound.hasKey("PlayerName")){ - map.put(compound.getString("PlayerName"), compound); - } - } catch (Exception e) { - LogWriter.error("Error loading: " + file.getAbsolutePath(), e); - } - } - return map; - } - public List getPlayersData(ICommandSender sender, String username){ ArrayList list = new ArrayList(); EntityPlayerMP[] players = PlayerSelector.matchPlayers(sender, username);