mirror of
https://github.com/essentials/Essentials.git
synced 2025-08-15 11:04:29 +02:00
Thread safety for XMPP
This commit is contained in:
@@ -2,6 +2,7 @@ package com.earth2me.essentials.xmpp;
|
|||||||
|
|
||||||
import com.earth2me.essentials.IEssentials;
|
import com.earth2me.essentials.IEssentials;
|
||||||
import com.earth2me.essentials.User;
|
import com.earth2me.essentials.User;
|
||||||
|
import java.util.List;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
@@ -45,11 +46,15 @@ class EssentialsXMPPPlayerListener implements Listener
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
for (String address : EssentialsXMPP.getInstance().getSpyUsers())
|
List<String> users = EssentialsXMPP.getInstance().getSpyUsers();
|
||||||
|
synchronized (users)
|
||||||
|
{
|
||||||
|
for (String address : users)
|
||||||
{
|
{
|
||||||
EssentialsXMPP.getInstance().sendMessage(address, message);
|
EssentialsXMPP.getInstance().sendMessage(address, message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
// Ignore exceptions
|
// Ignore exceptions
|
||||||
|
@@ -9,7 +9,7 @@ import java.util.*;
|
|||||||
public class UserManager implements IConf
|
public class UserManager implements IConf
|
||||||
{
|
{
|
||||||
private final transient EssentialsConf users;
|
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 ADDRESS = "address";
|
||||||
private final static String SPY = "spy";
|
private final static String SPY = "spy";
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user