From 12bf4e9dcf3c44c68a76a65afdf4a89fa5df3dd0 Mon Sep 17 00:00:00 2001 From: patjense Date: Sun, 13 Oct 2013 12:55:10 -0700 Subject: add update for global presence handler --- .../earth2me/essentials/xmpp/EssentialsXMPP.java | 259 +++++++++++---------- 1 file changed, 133 insertions(+), 126 deletions(-) (limited to 'EssentialsXMPP/src') diff --git a/EssentialsXMPP/src/com/earth2me/essentials/xmpp/EssentialsXMPP.java b/EssentialsXMPP/src/com/earth2me/essentials/xmpp/EssentialsXMPP.java index b9b4fddbc..bdfb3557d 100644 --- a/EssentialsXMPP/src/com/earth2me/essentials/xmpp/EssentialsXMPP.java +++ b/EssentialsXMPP/src/com/earth2me/essentials/xmpp/EssentialsXMPP.java @@ -16,130 +16,137 @@ import org.bukkit.plugin.java.JavaPlugin; public class EssentialsXMPP extends JavaPlugin implements IEssentialsXMPP { - private static final Logger LOGGER = Logger.getLogger("Minecraft"); - private static EssentialsXMPP instance = null; - private transient UserManager users; - private transient XMPPManager xmpp; - private transient IEssentials ess; - - public static IEssentialsXMPP getInstance() - { - return instance; - } - - @Override - public void onEnable() - { - instance = this; - - final PluginManager pluginManager = getServer().getPluginManager(); - ess = (IEssentials)pluginManager.getPlugin("Essentials"); - if (!this.getDescription().getVersion().equals(ess.getDescription().getVersion())) - { - LOGGER.log(Level.WARNING, _("versionMismatchAll")); - } - if (!ess.isEnabled()) - { - this.setEnabled(false); - return; - } - - final EssentialsXMPPPlayerListener playerListener = new EssentialsXMPPPlayerListener(ess); - pluginManager.registerEvents(playerListener, this); - - users = new UserManager(this.getDataFolder()); - xmpp = new XMPPManager(this); - - ess.addReloadListener(users); - ess.addReloadListener(xmpp); - } - - @Override - public void onDisable() - { - if (xmpp != null) - { - xmpp.disconnect(); - } - instance = null; - } - - @Override - public boolean onCommand(final CommandSender sender, final Command command, final String commandLabel, final String[] args) - { - return ess.onCommandEssentials(sender, command, commandLabel, args, EssentialsXMPP.class.getClassLoader(), "com.earth2me.essentials.xmpp.Command", "essentials.", null); - } - - @Override - public void setAddress(final Player user, final String address) - { - final String username = user.getName().toLowerCase(Locale.ENGLISH); - instance.users.setAddress(username, address); - } - - @Override - public String getAddress(final String name) - { - return instance.users.getAddress(name); - } - - @Override - public IUser getUserByAddress(final String address) - { - String username = instance.users.getUserByAddress(address); - return username == null ? null : ess.getUser(username); - } - - @Override - public boolean toggleSpy(final Player user) - { - final String username = user.getName().toLowerCase(Locale.ENGLISH); - final boolean spy = !instance.users.isSpy(username); - instance.users.setSpy(username, spy); - return spy; - } - - @Override - public String getAddress(final Player user) - { - return instance.users.getAddress(user.getName()); - } - - @Override - public boolean sendMessage(final Player user, final String message) - { - return instance.xmpp.sendMessage(instance.users.getAddress(user.getName()), message); - } - - @Override - public boolean sendMessage(final String address, final String message) - { - return instance.xmpp.sendMessage(address, message); - } - - @Override - public List getSpyUsers() - { - return instance.users.getSpyUsers(); - } - - @Override - public void broadcastMessage(final IUser sender, final String message, final String xmppAddress) - { - ess.broadcastMessage(sender, message); - try - { - for (String address : getSpyUsers()) - { - if (!address.equalsIgnoreCase(xmppAddress)) - { - sendMessage(address, message); - } - } - } - catch (Exception ex) - { - // Ignore exceptions - } - } + private static final Logger LOGGER = Logger.getLogger("Minecraft"); + private static EssentialsXMPP instance = null; + private transient UserManager users; + private transient XMPPManager xmpp; + private transient IEssentials ess; + + public static IEssentialsXMPP getInstance() + { + return instance; + } + + @Override + public void onEnable() + { + instance = this; + + final PluginManager pluginManager = getServer().getPluginManager(); + ess = (IEssentials)pluginManager.getPlugin("Essentials"); + if (!this.getDescription().getVersion().equals(ess.getDescription().getVersion())) + { + LOGGER.log(Level.WARNING, _("versionMismatchAll")); + } + if (!ess.isEnabled()) + { + this.setEnabled(false); + return; + } + + final EssentialsXMPPPlayerListener playerListener = new EssentialsXMPPPlayerListener(ess); + pluginManager.registerEvents(playerListener, this); + + users = new UserManager(this.getDataFolder()); + xmpp = new XMPPManager(this); + + ess.addReloadListener(users); + ess.addReloadListener(xmpp); + } + + @Override + public void onDisable() + { + if (xmpp != null) + { + xmpp.disconnect(); + } + instance = null; + } + + @Override + public boolean onCommand(final CommandSender sender, final Command command, final String commandLabel, final String[] args) + { + return ess.onCommandEssentials(sender, command, commandLabel, args, EssentialsXMPP.class.getClassLoader(), "com.earth2me.essentials.xmpp.Command", "essentials.", null); + } + + @Override + public void setAddress(final Player user, final String address) + { + final String username = user.getName().toLowerCase(Locale.ENGLISH); + instance.users.setAddress(username, address); + } + + @Override + public String getAddress(final String name) + { + return instance.users.getAddress(name); + } + + @Override + public IUser getUserByAddress(final String address) + { + String username = instance.users.getUserByAddress(address); + return username == null ? null : ess.getUser(username); + } + + @Override + public boolean toggleSpy(final Player user) + { + final String username = user.getName().toLowerCase(Locale.ENGLISH); + final boolean spy = !instance.users.isSpy(username); + instance.users.setSpy(username, spy); + return spy; + } + + @Override + public String getAddress(final Player user) + { + return instance.users.getAddress(user.getName()); + } + + @Override + public boolean sendMessage(final Player user, final String message) + { + return instance.xmpp.sendMessage(instance.users.getAddress(user.getName()), message); + } + + @Override + public boolean sendMessage(final String address, final String message) + { + return instance.xmpp.sendMessage(address, message); + } + + // @Override + public static boolean updatePresence() + { + instance.xmpp.updatePresence(); + return true; + } + + @Override + public List getSpyUsers() + { + return instance.users.getSpyUsers(); + } + + @Override + public void broadcastMessage(final IUser sender, final String message, final String xmppAddress) + { + ess.broadcastMessage(sender, message); + try + { + for (String address : getSpyUsers()) + { + if (!address.equalsIgnoreCase(xmppAddress)) + { + sendMessage(address, message); + } + } + } + catch (Exception ex) + { + // Ignore exceptions + } + } } -- cgit v1.2.3