diff options
-rw-r--r-- | Essentials/src/com/earth2me/essentials/IUser.java | 10 | ||||
-rw-r--r-- | Essentials/src/com/earth2me/essentials/UserData.java | 54 |
2 files changed, 64 insertions, 0 deletions
diff --git a/Essentials/src/com/earth2me/essentials/IUser.java b/Essentials/src/com/earth2me/essentials/IUser.java index 972165a39..00c4f328f 100644 --- a/Essentials/src/com/earth2me/essentials/IUser.java +++ b/Essentials/src/com/earth2me/essentials/IUser.java @@ -1,6 +1,8 @@ package com.earth2me.essentials; import com.earth2me.essentials.commands.IEssentialsCommand; +import java.util.Map; +import java.util.Set; import org.bukkit.Location; import org.bukkit.entity.Player; @@ -52,4 +54,12 @@ public interface IUser extends Player void setLogoutLocation(); Location getLogoutLocation(); + + void setConfigProperty(String node, Object object); + + Set<String> getConfigKeys(); + + Map<String, Object> getConfigMap(); + + Map<String, Object> getConfigMap(String node); } diff --git a/Essentials/src/com/earth2me/essentials/UserData.java b/Essentials/src/com/earth2me/essentials/UserData.java index 023214a13..13a8a9eb5 100644 --- a/Essentials/src/com/earth2me/essentials/UserData.java +++ b/Essentials/src/com/earth2me/essentials/UserData.java @@ -867,6 +867,60 @@ public abstract class UserData extends PlayerExtension implements IConf config.save(); } + public void setConfigProperty(String node, Object object) + { + final String prefix = "info."; + node = prefix+node; + if (object instanceof Map) + { + config.setProperty(node, (Map) object); + } + else if (object instanceof List) + { + config.setProperty(node, (List<String>) object); + } + else if (object instanceof Location) + { + config.setProperty(node, (Location) object); + } + else if (object instanceof ItemStack) + { + config.setProperty(node, (ItemStack) object); + } + else + { + config.setProperty(node, object); + } + config.save(); + } + + public Set<String> getConfigKeys() + { + if (config.isConfigurationSection("info")) + { + return config.getConfigurationSection("info").getKeys(true); + } + return new HashSet<String>(); + } + + public Map<String, Object> getConfigMap() + { + if (config.isConfigurationSection("info")) + { + return config.getConfigurationSection("info").getValues(true); + } + return new HashMap<String, Object>(); + } + + public Map<String, Object> getConfigMap(String node) + { + if (config.isConfigurationSection("info."+node)) + { + return config.getConfigurationSection("info."+node).getValues(true); + } + return new HashMap<String, Object>(); + } + public void save() { config.save(); |