From a3e84aceb5fb86fa512859db999044e79dc99108 Mon Sep 17 00:00:00 2001 From: Andrew Williams Date: Sat, 30 Apr 2011 00:57:14 +0100 Subject: [PATCH] XMPP join/parts are now replicated to MC. --- .../BukkitParticipantStatusListener.java | 34 +++++++++++++++++++ .../pleaseignore/BukkitXMPP/BukkitXMPP.java | 2 ++ 2 files changed, 36 insertions(+) create mode 100644 src/com/pleaseignore/BukkitXMPP/BukkitParticipantStatusListener.java diff --git a/src/com/pleaseignore/BukkitXMPP/BukkitParticipantStatusListener.java b/src/com/pleaseignore/BukkitXMPP/BukkitParticipantStatusListener.java new file mode 100644 index 0000000..12f5c40 --- /dev/null +++ b/src/com/pleaseignore/BukkitXMPP/BukkitParticipantStatusListener.java @@ -0,0 +1,34 @@ +package com.pleaseignore.BukkitXMPP; + +import org.bukkit.ChatColor; +import org.jivesoftware.smack.util.StringUtils; +import org.jivesoftware.smackx.muc.DefaultParticipantStatusListener; + +public class BukkitParticipantStatusListener extends DefaultParticipantStatusListener { + + private final BukkitXMPP plugin; + + public BukkitParticipantStatusListener(BukkitXMPP instance) { + plugin = instance; + } + + @Override + public void joined(String participant) { + plugin.sendMCMessage(ChatColor.GRAY + "[" + ChatColor.DARK_GREEN + "XMPP" + ChatColor.GRAY + "] " + ChatColor.WHITE + StringUtils.parseResource(participant) + " has joined the channel"); + } + + @Override + public void left(String participant) { + plugin.sendMCMessage(ChatColor.GRAY + "[" + ChatColor.DARK_GREEN + "XMPP" + ChatColor.GRAY + "] " + ChatColor.WHITE + StringUtils.parseResource(participant) + " has left the channel"); + } + + @Override + public void kicked(String participant, String actor, String reason) { + left(participant); + } + + @Override + public void banned(String participant, String actor, String reason) { + left(participant); + } +} diff --git a/src/com/pleaseignore/BukkitXMPP/BukkitXMPP.java b/src/com/pleaseignore/BukkitXMPP/BukkitXMPP.java index 78c26df..120023f 100644 --- a/src/com/pleaseignore/BukkitXMPP/BukkitXMPP.java +++ b/src/com/pleaseignore/BukkitXMPP/BukkitXMPP.java @@ -27,6 +27,7 @@ import org.jivesoftware.smackx.muc.MultiUserChat; */ public class BukkitXMPP extends JavaPlugin implements PacketListener { private final BukkitXMPPPlayerListener playerListener = new BukkitXMPPPlayerListener(this); + private final BukkitParticipantStatusListener participantListener = new BukkitParticipantStatusListener(this); private Logger log; @@ -75,6 +76,7 @@ public class BukkitXMPP extends JavaPlugin implements PacketListener { muc.join(nickname, "", history, 2000); muc.addMessageListener(this); + muc.addParticipantStatusListener(participantListener); } catch (Exception e) { log.warning("Error connecting to XMPP server " + server); }