XMPP: Let xmpp users see xmpp messages from other xmpp users.

This commit is contained in:
snowleo 2011-08-08 16:30:32 +02:00
parent 8185b05b5d
commit fbd9ee9453
3 changed files with 27 additions and 9 deletions

View file

@ -1,6 +1,5 @@
package com.earth2me.essentials.xmpp; package com.earth2me.essentials.xmpp;
import com.earth2me.essentials.Essentials;
import com.earth2me.essentials.IEssentials; import com.earth2me.essentials.IEssentials;
import com.earth2me.essentials.Util; import com.earth2me.essentials.Util;
import java.util.List; import java.util.List;
@ -121,4 +120,21 @@ public class EssentialsXMPP extends JavaPlugin implements IEssentialsXMPP
{ {
return instance.users.getSpyUsers(); return instance.users.getSpyUsers();
} }
@Override
public void broadcastMessage(final String name, final String message)
{
ess.broadcastMessage(name, message);
try
{
for (String address : EssentialsXMPP.getInstance().getSpyUsers())
{
EssentialsXMPP.getInstance().sendMessage(address, message);
}
}
catch (Exception ex)
{
// Ignore exceptions
}
}
} }

View file

@ -2,11 +2,11 @@ package com.earth2me.essentials.xmpp;
import java.util.List; import java.util.List;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.plugin.Plugin;
public interface IEssentialsXMPP public interface IEssentialsXMPP extends Plugin
{ {
String getAddress(final Player user); String getAddress(final Player user);
String getAddress(final String name); String getAddress(final String name);
@ -23,4 +23,5 @@ public interface IEssentialsXMPP
boolean toggleSpy(final Player user); boolean toggleSpy(final Player user);
void broadcastMessage(final String name, final String message);
} }

View file

@ -38,14 +38,14 @@ public class XMPPManager extends Handler implements MessageListener, ChatManager
private transient ChatManager chatManager; private transient ChatManager chatManager;
private final transient Map<String, Chat> chats = Collections.synchronizedMap(new HashMap<String, Chat>()); private final transient Map<String, Chat> chats = Collections.synchronizedMap(new HashMap<String, Chat>());
private final transient Set<LogRecord> logrecords = Collections.synchronizedSet(new HashSet<LogRecord>()); private final transient Set<LogRecord> logrecords = Collections.synchronizedSet(new HashSet<LogRecord>());
private final transient JavaPlugin parent; private final transient IEssentialsXMPP parent;
private transient List<String> logUsers; private transient List<String> logUsers;
private transient Level logLevel; private transient Level logLevel;
private transient boolean ignoreLagMessages = true; private transient boolean ignoreLagMessages = true;
private transient Thread loggerThread; private transient Thread loggerThread;
private transient boolean threadrunning = true; private transient boolean threadrunning = true;
public XMPPManager(final JavaPlugin parent) public XMPPManager(final IEssentialsXMPP parent)
{ {
super(); super();
this.parent = parent; this.parent = parent;
@ -101,7 +101,8 @@ public class XMPPManager extends Handler implements MessageListener, ChatManager
sendCommand(chat, message); sendCommand(chat, message);
break; break;
default: default:
parent.getServer().broadcastMessage("<X:" + EssentialsXMPP.getInstance().getUserByAddress(StringUtils.parseBareAddress(chat.getParticipant())) + "> " + message); final String name = parent.getUserByAddress(StringUtils.parseBareAddress(chat.getParticipant()));
parent.broadcastMessage(name, "="+name+": "+ message);
} }
} }
} }
@ -350,7 +351,7 @@ public class XMPPManager extends Handler implements MessageListener, ChatManager
} }
else else
{ {
final String from = "[X:" + EssentialsXMPP.getInstance().getUserByAddress(StringUtils.parseBareAddress(chat.getParticipant())) + ">"; final String from = "[" + parent.getUserByAddress(StringUtils.parseBareAddress(chat.getParticipant())) + ">";
for (Player p : matches) for (Player p : matches)
{ {
p.sendMessage(from + p.getDisplayName() + "] " + message); p.sendMessage(from + p.getDisplayName() + "] " + message);