summaryrefslogtreecommitdiffstats
path: root/EssentialsXMPP/src/com/earth2me/essentials/xmpp/XMPPManager.java
diff options
context:
space:
mode:
Diffstat (limited to 'EssentialsXMPP/src/com/earth2me/essentials/xmpp/XMPPManager.java')
-rw-r--r--EssentialsXMPP/src/com/earth2me/essentials/xmpp/XMPPManager.java43
1 files changed, 24 insertions, 19 deletions
diff --git a/EssentialsXMPP/src/com/earth2me/essentials/xmpp/XMPPManager.java b/EssentialsXMPP/src/com/earth2me/essentials/xmpp/XMPPManager.java
index e9da61440..c92365c44 100644
--- a/EssentialsXMPP/src/com/earth2me/essentials/xmpp/XMPPManager.java
+++ b/EssentialsXMPP/src/com/earth2me/essentials/xmpp/XMPPManager.java
@@ -51,28 +51,20 @@ public class XMPPManager extends Handler implements MessageListener, ChatManager
public void sendMessage(final String address, final String message)
{
- Chat chat = null;
- try
+ if (address != null && !address.isEmpty())
{
- if (address == null || address.isEmpty())
- {
- return;
- }
- startChat(address);
- chat = chats.get(address);
- if (chat == null)
+ try
{
- return;
+ startChat(address);
+ final Chat chat = chats.get(address);
+ if (chat != null)
+ {
+ chat.sendMessage(message.replaceAll("§[0-9a-f]", ""));
+ }
}
- chat.sendMessage(message.replaceAll("§[0-9a-f]", ""));
- }
- catch (XMPPException ex)
- {
- if (chat != null)
+ catch (XMPPException ex)
{
- chat.removeMessageListener(this);
- chats.remove(address);
- LOGGER.log(Level.WARNING, "Failed to send xmpp message.", ex);
+ disableChat(address, ex);
}
}
}
@@ -260,7 +252,9 @@ public class XMPPManager extends Handler implements MessageListener, ChatManager
{
LOGGER.log(Level.WARNING, "Failed to send xmpp message.", ex);
}
- } else {
+ }
+ else
+ {
for (Player p : matches)
{
p.sendMessage("[" + chat.getParticipant() + ">" + p.getDisplayName() + "] " + message);
@@ -280,4 +274,15 @@ public class XMPPManager extends Handler implements MessageListener, ChatManager
}
}
}
+
+ private void disableChat(final String address, final XMPPException exception)
+ {
+ final Chat chat = chats.get(address);
+ if (chat != null)
+ {
+ chat.removeMessageListener(this);
+ chats.remove(address);
+ LOGGER.log(Level.WARNING, "Failed to send xmpp message.", exception);
+ }
+ }
}