summaryrefslogtreecommitdiffstats
path: root/EssentialsXMPP/src/com/earth2me/essentials/xmpp/UserManager.java
diff options
context:
space:
mode:
authorsnowleo <snowleo@e251c2fe-e539-e718-e476-b85c1f46cddb>2011-06-02 13:24:26 +0000
committersnowleo <snowleo@e251c2fe-e539-e718-e476-b85c1f46cddb>2011-06-02 13:24:26 +0000
commit2d038579badae3bea197d1a7fa7801e8a74e6e97 (patch)
treed02679b01badc46357c4b69bf52bc08e1479bb1f /EssentialsXMPP/src/com/earth2me/essentials/xmpp/UserManager.java
parentba86a338c2578044ee451138192de2b525260944 (diff)
downloadEssentials-2d038579badae3bea197d1a7fa7801e8a74e6e97.tar
Essentials-2d038579badae3bea197d1a7fa7801e8a74e6e97.tar.gz
Essentials-2d038579badae3bea197d1a7fa7801e8a74e6e97.tar.lz
Essentials-2d038579badae3bea197d1a7fa7801e8a74e6e97.tar.xz
Essentials-2d038579badae3bea197d1a7fa7801e8a74e6e97.zip
Added EssentialsXMPP from newplugins branch.
Updated to work with trunk. git-svn-id: https://svn.java.net/svn/essentials~svn/trunk@1564 e251c2fe-e539-e718-e476-b85c1f46cddb
Diffstat (limited to 'EssentialsXMPP/src/com/earth2me/essentials/xmpp/UserManager.java')
-rw-r--r--EssentialsXMPP/src/com/earth2me/essentials/xmpp/UserManager.java78
1 files changed, 78 insertions, 0 deletions
diff --git a/EssentialsXMPP/src/com/earth2me/essentials/xmpp/UserManager.java b/EssentialsXMPP/src/com/earth2me/essentials/xmpp/UserManager.java
new file mode 100644
index 000000000..878a6b28e
--- /dev/null
+++ b/EssentialsXMPP/src/com/earth2me/essentials/xmpp/UserManager.java
@@ -0,0 +1,78 @@
+package com.earth2me.essentials.xmpp;
+
+import com.earth2me.essentials.EssentialsConf;
+import com.earth2me.essentials.IConf;
+import java.io.File;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+
+public class UserManager implements IConf
+{
+ private final transient EssentialsConf users;
+ private final transient List<String> spyusers = new ArrayList<String>();
+ private final static String ADDRESS = "address";
+ private final static String SPY = "spy";
+
+ public UserManager(final File folder)
+ {
+ users = new EssentialsConf(new File(folder, "users.yml"));
+ reloadConfig();
+ }
+
+ public final boolean isSpy(final String username)
+ {
+ return users.getBoolean(username.toLowerCase() + "." + SPY, false);
+ }
+
+ public void setSpy(final String username, boolean spy) throws Exception
+ {
+ setUser(username.toLowerCase(), getAddress(username), spy);
+ }
+
+ public final String getAddress(final String username)
+ {
+ return users.getString(username.toLowerCase() + "." + ADDRESS, null);
+ }
+
+ public void setAddress(final String username, final String address) throws Exception
+ {
+ setUser(username.toLowerCase(), address, isSpy(username));
+ }
+
+ public List<String> getSpyUsers()
+ {
+ return spyusers;
+ }
+
+ private void setUser(String username, String address, boolean spy) throws Exception
+ {
+ final Map<String, Object> userdata = new HashMap<String, Object>();
+ userdata.put(ADDRESS, address);
+ userdata.put(SPY, spy);
+ users.setProperty(username, userdata);
+ users.save();
+ reloadConfig();
+ }
+
+ @Override
+ public final void reloadConfig()
+ {
+ users.load();
+ spyusers.clear();
+ final List<String> keys = users.getKeys(null);
+ for (String key : keys)
+ {
+ if (isSpy(key))
+ {
+ final String address = getAddress(key);
+ if (address != null)
+ {
+ spyusers.add(address);
+ }
+ }
+ }
+ }
+}