mirror of
https://github.com/EssentialsX/Essentials.git
synced 2025-02-07 07:51:55 +01:00
Thread safety for XMPP
This commit is contained in:
parent
af73c11638
commit
bf93bb2026
@ -2,6 +2,7 @@ package com.earth2me.essentials.xmpp;
|
||||
|
||||
import com.earth2me.essentials.IEssentials;
|
||||
import com.earth2me.essentials.User;
|
||||
import java.util.List;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
@ -20,21 +21,21 @@ class EssentialsXMPPPlayerListener implements Listener
|
||||
this.ess = ess;
|
||||
}
|
||||
|
||||
@EventHandler(priority= EventPriority.MONITOR)
|
||||
@EventHandler(priority = EventPriority.MONITOR)
|
||||
public void onPlayerJoin(final PlayerJoinEvent event)
|
||||
{
|
||||
final User user = ess.getUser(event.getPlayer());
|
||||
sendMessageToSpyUsers("Player " + user.getDisplayName() + " joined the game");
|
||||
}
|
||||
|
||||
@EventHandler(priority= EventPriority.MONITOR)
|
||||
@EventHandler(priority = EventPriority.MONITOR)
|
||||
public void onPlayerChat(final AsyncPlayerChatEvent event)
|
||||
{
|
||||
final User user = ess.getUser(event.getPlayer());
|
||||
sendMessageToSpyUsers(String.format(event.getFormat(), user.getDisplayName(), event.getMessage()));
|
||||
}
|
||||
|
||||
@EventHandler(priority= EventPriority.MONITOR)
|
||||
@EventHandler(priority = EventPriority.MONITOR)
|
||||
public void onPlayerQuit(final PlayerQuitEvent event)
|
||||
{
|
||||
final User user = ess.getUser(event.getPlayer());
|
||||
@ -45,9 +46,13 @@ class EssentialsXMPPPlayerListener implements Listener
|
||||
{
|
||||
try
|
||||
{
|
||||
for (String address : EssentialsXMPP.getInstance().getSpyUsers())
|
||||
List<String> users = EssentialsXMPP.getInstance().getSpyUsers();
|
||||
synchronized (users)
|
||||
{
|
||||
EssentialsXMPP.getInstance().sendMessage(address, message);
|
||||
for (String address : users)
|
||||
{
|
||||
EssentialsXMPP.getInstance().sendMessage(address, message);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
@ -9,7 +9,7 @@ import java.util.*;
|
||||
public class UserManager implements IConf
|
||||
{
|
||||
private final transient EssentialsConf users;
|
||||
private final transient List<String> spyusers = new ArrayList<String>();
|
||||
private final transient List<String> spyusers = Collections.synchronizedList(new ArrayList<String>());
|
||||
private final static String ADDRESS = "address";
|
||||
private final static String SPY = "spy";
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user