From 16d0b5c228dd8d981a0d79944c70248ea813d63b Mon Sep 17 00:00:00 2001 From: ementalo Date: Wed, 27 Jun 2012 13:35:39 +0100 Subject: package name change to net.ess3 --- EssentialsXMPP/src/net/ess3/xmpp/UserManager.java | 100 ++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 EssentialsXMPP/src/net/ess3/xmpp/UserManager.java (limited to 'EssentialsXMPP/src/net/ess3/xmpp/UserManager.java') diff --git a/EssentialsXMPP/src/net/ess3/xmpp/UserManager.java b/EssentialsXMPP/src/net/ess3/xmpp/UserManager.java new file mode 100644 index 000000000..a2018c006 --- /dev/null +++ b/EssentialsXMPP/src/net/ess3/xmpp/UserManager.java @@ -0,0 +1,100 @@ +package net.ess3.xmpp; + +import net.ess3.api.IReload; +import java.io.File; +import java.io.IOException; +import java.util.*; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.bukkit.configuration.file.YamlConfiguration; + + +public class UserManager implements IReload +{ + private transient YamlConfiguration users; + private final transient File folder; + private final transient List spyusers = new ArrayList(); + private final static String ADDRESS = "address"; + private final static String SPY = "spy"; + + public UserManager(final File folder) + { + this.folder = folder; + onReload(); + } + + public final boolean isSpy(final String username) + { + return users.getBoolean(username.toLowerCase(Locale.ENGLISH) + "." + SPY, false); + } + + public void setSpy(final String username, final boolean spy) + { + setUser(username.toLowerCase(Locale.ENGLISH), getAddress(username), spy); + } + + public final String getAddress(final String username) + { + return users.getString(username.toLowerCase(Locale.ENGLISH) + "." + ADDRESS, null); + } + + public final String getUserByAddress(final String search) + { + final Set usernames = users.getKeys(false); + for (String username : usernames) + { + final String address = users.getString(username + "." + ADDRESS, null); + if (address != null && search.equalsIgnoreCase(address)) + { + return username; + } + } + return null; + } + + public void setAddress(final String username, final String address) + { + setUser(username.toLowerCase(Locale.ENGLISH), address, isSpy(username)); + } + + public List getSpyUsers() + { + return spyusers; + } + + private void setUser(final String username, final String address, final boolean spy) + { + final Map userdata = new HashMap(); + userdata.put(ADDRESS, address); + userdata.put(SPY, spy); + users.set(username, userdata); + try + { + users.save(new File(folder, "users.yml")); + } + catch (IOException ex) + { + Logger.getLogger(UserManager.class.getName()).log(Level.SEVERE, null, ex); + } + onReload(); + } + + @Override + public final void onReload() + { + users = YamlConfiguration.loadConfiguration(new File(folder, "users.yml")); + spyusers.clear(); + final Set keys = users.getKeys(false); + for (String key : keys) + { + if (isSpy(key)) + { + final String address = getAddress(key); + if (address != null) + { + spyusers.add(address); + } + } + } + } +} -- cgit v1.2.3