diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java index d7eea51ced..23a4ba5352 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java @@ -459,7 +459,7 @@ public class CeremonyOfChaosEvent extends AbstractEvent } } - getMembers().clear(); + clearMembers(); _instance.destroy(); } diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java index 5b6dfccd27..569e883943 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java @@ -17,7 +17,9 @@ package org.l2jmobius.gameserver.model.eventengine; import java.nio.file.Path; +import java.util.HashMap; import java.util.Map; +import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -35,12 +37,25 @@ public abstract class AbstractEvent>extends Abs public Map getMembers() { - return _members; + final Map members = new HashMap<>(); + for (Entry entry : _members.entrySet()) + { + final T member = entry.getValue(); + if (member != null) + { + final PlayerInstance player = member.getPlayer(); + if ((player != null) && player.isOnline() && !player.isInOfflineMode()) + { + members.putIfAbsent(entry.getKey(), member); + } + } + } + return members; } public T getMember(int objectId) { - return _members.get(objectId); + return getMembers().get(objectId); } public void addMember(T member) @@ -48,6 +63,11 @@ public abstract class AbstractEvent>extends Abs _members.put(member.getObjectId(), member); } + public void clearMembers() + { + _members.clear(); + } + public void broadcastPacket(IClientOutgoingPacket... packets) { _members.values().forEach(member -> member.sendPacket(packets)); diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java index fd8be430b0..383739dc5f 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java @@ -51,7 +51,7 @@ public abstract class AbstractEventMember> public void sendPacket(IClientOutgoingPacket... packets) { final PlayerInstance player = getPlayer(); - if (player != null) + if ((player != null) && player.isOnline() && !player.isInOfflineMode()) { for (IClientOutgoingPacket packet : packets) { diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java index 5213c85c3e..296f56f789 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java @@ -493,7 +493,7 @@ public class CeremonyOfChaosEvent extends AbstractEvent } } - getMembers().clear(); + clearMembers(); _instance.destroy(); } diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java index 5b6dfccd27..569e883943 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java @@ -17,7 +17,9 @@ package org.l2jmobius.gameserver.model.eventengine; import java.nio.file.Path; +import java.util.HashMap; import java.util.Map; +import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -35,12 +37,25 @@ public abstract class AbstractEvent>extends Abs public Map getMembers() { - return _members; + final Map members = new HashMap<>(); + for (Entry entry : _members.entrySet()) + { + final T member = entry.getValue(); + if (member != null) + { + final PlayerInstance player = member.getPlayer(); + if ((player != null) && player.isOnline() && !player.isInOfflineMode()) + { + members.putIfAbsent(entry.getKey(), member); + } + } + } + return members; } public T getMember(int objectId) { - return _members.get(objectId); + return getMembers().get(objectId); } public void addMember(T member) @@ -48,6 +63,11 @@ public abstract class AbstractEvent>extends Abs _members.put(member.getObjectId(), member); } + public void clearMembers() + { + _members.clear(); + } + public void broadcastPacket(IClientOutgoingPacket... packets) { _members.values().forEach(member -> member.sendPacket(packets)); diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java index fd8be430b0..383739dc5f 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java @@ -51,7 +51,7 @@ public abstract class AbstractEventMember> public void sendPacket(IClientOutgoingPacket... packets) { final PlayerInstance player = getPlayer(); - if (player != null) + if ((player != null) && player.isOnline() && !player.isInOfflineMode()) { for (IClientOutgoingPacket packet : packets) { diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java index 5213c85c3e..296f56f789 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java @@ -493,7 +493,7 @@ public class CeremonyOfChaosEvent extends AbstractEvent } } - getMembers().clear(); + clearMembers(); _instance.destroy(); } diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java index 5b6dfccd27..569e883943 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java @@ -17,7 +17,9 @@ package org.l2jmobius.gameserver.model.eventengine; import java.nio.file.Path; +import java.util.HashMap; import java.util.Map; +import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -35,12 +37,25 @@ public abstract class AbstractEvent>extends Abs public Map getMembers() { - return _members; + final Map members = new HashMap<>(); + for (Entry entry : _members.entrySet()) + { + final T member = entry.getValue(); + if (member != null) + { + final PlayerInstance player = member.getPlayer(); + if ((player != null) && player.isOnline() && !player.isInOfflineMode()) + { + members.putIfAbsent(entry.getKey(), member); + } + } + } + return members; } public T getMember(int objectId) { - return _members.get(objectId); + return getMembers().get(objectId); } public void addMember(T member) @@ -48,6 +63,11 @@ public abstract class AbstractEvent>extends Abs _members.put(member.getObjectId(), member); } + public void clearMembers() + { + _members.clear(); + } + public void broadcastPacket(IClientOutgoingPacket... packets) { _members.values().forEach(member -> member.sendPacket(packets)); diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java index fd8be430b0..383739dc5f 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java @@ -51,7 +51,7 @@ public abstract class AbstractEventMember> public void sendPacket(IClientOutgoingPacket... packets) { final PlayerInstance player = getPlayer(); - if (player != null) + if ((player != null) && player.isOnline() && !player.isInOfflineMode()) { for (IClientOutgoingPacket packet : packets) { diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java index 5213c85c3e..296f56f789 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java @@ -493,7 +493,7 @@ public class CeremonyOfChaosEvent extends AbstractEvent } } - getMembers().clear(); + clearMembers(); _instance.destroy(); } diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java index 5b6dfccd27..569e883943 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java @@ -17,7 +17,9 @@ package org.l2jmobius.gameserver.model.eventengine; import java.nio.file.Path; +import java.util.HashMap; import java.util.Map; +import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -35,12 +37,25 @@ public abstract class AbstractEvent>extends Abs public Map getMembers() { - return _members; + final Map members = new HashMap<>(); + for (Entry entry : _members.entrySet()) + { + final T member = entry.getValue(); + if (member != null) + { + final PlayerInstance player = member.getPlayer(); + if ((player != null) && player.isOnline() && !player.isInOfflineMode()) + { + members.putIfAbsent(entry.getKey(), member); + } + } + } + return members; } public T getMember(int objectId) { - return _members.get(objectId); + return getMembers().get(objectId); } public void addMember(T member) @@ -48,6 +63,11 @@ public abstract class AbstractEvent>extends Abs _members.put(member.getObjectId(), member); } + public void clearMembers() + { + _members.clear(); + } + public void broadcastPacket(IClientOutgoingPacket... packets) { _members.values().forEach(member -> member.sendPacket(packets)); diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java index fd8be430b0..383739dc5f 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java @@ -51,7 +51,7 @@ public abstract class AbstractEventMember> public void sendPacket(IClientOutgoingPacket... packets) { final PlayerInstance player = getPlayer(); - if (player != null) + if ((player != null) && player.isOnline() && !player.isInOfflineMode()) { for (IClientOutgoingPacket packet : packets) { diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java index db780697d6..53f38bb019 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java @@ -493,7 +493,7 @@ public class CeremonyOfChaosEvent extends AbstractEvent } } - getMembers().clear(); + clearMembers(); _instance.destroy(); } diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java index 5b6dfccd27..569e883943 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java @@ -17,7 +17,9 @@ package org.l2jmobius.gameserver.model.eventengine; import java.nio.file.Path; +import java.util.HashMap; import java.util.Map; +import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -35,12 +37,25 @@ public abstract class AbstractEvent>extends Abs public Map getMembers() { - return _members; + final Map members = new HashMap<>(); + for (Entry entry : _members.entrySet()) + { + final T member = entry.getValue(); + if (member != null) + { + final PlayerInstance player = member.getPlayer(); + if ((player != null) && player.isOnline() && !player.isInOfflineMode()) + { + members.putIfAbsent(entry.getKey(), member); + } + } + } + return members; } public T getMember(int objectId) { - return _members.get(objectId); + return getMembers().get(objectId); } public void addMember(T member) @@ -48,6 +63,11 @@ public abstract class AbstractEvent>extends Abs _members.put(member.getObjectId(), member); } + public void clearMembers() + { + _members.clear(); + } + public void broadcastPacket(IClientOutgoingPacket... packets) { _members.values().forEach(member -> member.sendPacket(packets)); diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java index fd8be430b0..383739dc5f 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java @@ -51,7 +51,7 @@ public abstract class AbstractEventMember> public void sendPacket(IClientOutgoingPacket... packets) { final PlayerInstance player = getPlayer(); - if (player != null) + if ((player != null) && player.isOnline() && !player.isInOfflineMode()) { for (IClientOutgoingPacket packet : packets) { diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java index 5213c85c3e..296f56f789 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java @@ -493,7 +493,7 @@ public class CeremonyOfChaosEvent extends AbstractEvent } } - getMembers().clear(); + clearMembers(); _instance.destroy(); } diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java index 5b6dfccd27..569e883943 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java @@ -17,7 +17,9 @@ package org.l2jmobius.gameserver.model.eventengine; import java.nio.file.Path; +import java.util.HashMap; import java.util.Map; +import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -35,12 +37,25 @@ public abstract class AbstractEvent>extends Abs public Map getMembers() { - return _members; + final Map members = new HashMap<>(); + for (Entry entry : _members.entrySet()) + { + final T member = entry.getValue(); + if (member != null) + { + final PlayerInstance player = member.getPlayer(); + if ((player != null) && player.isOnline() && !player.isInOfflineMode()) + { + members.putIfAbsent(entry.getKey(), member); + } + } + } + return members; } public T getMember(int objectId) { - return _members.get(objectId); + return getMembers().get(objectId); } public void addMember(T member) @@ -48,6 +63,11 @@ public abstract class AbstractEvent>extends Abs _members.put(member.getObjectId(), member); } + public void clearMembers() + { + _members.clear(); + } + public void broadcastPacket(IClientOutgoingPacket... packets) { _members.values().forEach(member -> member.sendPacket(packets)); diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java index fd8be430b0..383739dc5f 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java @@ -51,7 +51,7 @@ public abstract class AbstractEventMember> public void sendPacket(IClientOutgoingPacket... packets) { final PlayerInstance player = getPlayer(); - if (player != null) + if ((player != null) && player.isOnline() && !player.isInOfflineMode()) { for (IClientOutgoingPacket packet : packets) { diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java index 5213c85c3e..296f56f789 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java @@ -493,7 +493,7 @@ public class CeremonyOfChaosEvent extends AbstractEvent } } - getMembers().clear(); + clearMembers(); _instance.destroy(); } diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java index 5b6dfccd27..569e883943 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java @@ -17,7 +17,9 @@ package org.l2jmobius.gameserver.model.eventengine; import java.nio.file.Path; +import java.util.HashMap; import java.util.Map; +import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -35,12 +37,25 @@ public abstract class AbstractEvent>extends Abs public Map getMembers() { - return _members; + final Map members = new HashMap<>(); + for (Entry entry : _members.entrySet()) + { + final T member = entry.getValue(); + if (member != null) + { + final PlayerInstance player = member.getPlayer(); + if ((player != null) && player.isOnline() && !player.isInOfflineMode()) + { + members.putIfAbsent(entry.getKey(), member); + } + } + } + return members; } public T getMember(int objectId) { - return _members.get(objectId); + return getMembers().get(objectId); } public void addMember(T member) @@ -48,6 +63,11 @@ public abstract class AbstractEvent>extends Abs _members.put(member.getObjectId(), member); } + public void clearMembers() + { + _members.clear(); + } + public void broadcastPacket(IClientOutgoingPacket... packets) { _members.values().forEach(member -> member.sendPacket(packets)); diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java index fd8be430b0..383739dc5f 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java @@ -51,7 +51,7 @@ public abstract class AbstractEventMember> public void sendPacket(IClientOutgoingPacket... packets) { final PlayerInstance player = getPlayer(); - if (player != null) + if ((player != null) && player.isOnline() && !player.isInOfflineMode()) { for (IClientOutgoingPacket packet : packets) { diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java index 0ae3a492e1..1cb00b078a 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java @@ -503,7 +503,7 @@ public class CeremonyOfChaosEvent extends AbstractEvent } } - getMembers().clear(); + clearMembers(); _instance.destroy(); } diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java index 5b6dfccd27..569e883943 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java @@ -17,7 +17,9 @@ package org.l2jmobius.gameserver.model.eventengine; import java.nio.file.Path; +import java.util.HashMap; import java.util.Map; +import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -35,12 +37,25 @@ public abstract class AbstractEvent>extends Abs public Map getMembers() { - return _members; + final Map members = new HashMap<>(); + for (Entry entry : _members.entrySet()) + { + final T member = entry.getValue(); + if (member != null) + { + final PlayerInstance player = member.getPlayer(); + if ((player != null) && player.isOnline() && !player.isInOfflineMode()) + { + members.putIfAbsent(entry.getKey(), member); + } + } + } + return members; } public T getMember(int objectId) { - return _members.get(objectId); + return getMembers().get(objectId); } public void addMember(T member) @@ -48,6 +63,11 @@ public abstract class AbstractEvent>extends Abs _members.put(member.getObjectId(), member); } + public void clearMembers() + { + _members.clear(); + } + public void broadcastPacket(IClientOutgoingPacket... packets) { _members.values().forEach(member -> member.sendPacket(packets)); diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java index fd8be430b0..383739dc5f 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java @@ -51,7 +51,7 @@ public abstract class AbstractEventMember> public void sendPacket(IClientOutgoingPacket... packets) { final PlayerInstance player = getPlayer(); - if (player != null) + if ((player != null) && player.isOnline() && !player.isInOfflineMode()) { for (IClientOutgoingPacket packet : packets) { diff --git a/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java b/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java index d7eea51ced..23a4ba5352 100644 --- a/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java +++ b/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java @@ -459,7 +459,7 @@ public class CeremonyOfChaosEvent extends AbstractEvent } } - getMembers().clear(); + clearMembers(); _instance.destroy(); } diff --git a/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java b/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java index 5b6dfccd27..569e883943 100644 --- a/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java +++ b/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java @@ -17,7 +17,9 @@ package org.l2jmobius.gameserver.model.eventengine; import java.nio.file.Path; +import java.util.HashMap; import java.util.Map; +import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -35,12 +37,25 @@ public abstract class AbstractEvent>extends Abs public Map getMembers() { - return _members; + final Map members = new HashMap<>(); + for (Entry entry : _members.entrySet()) + { + final T member = entry.getValue(); + if (member != null) + { + final PlayerInstance player = member.getPlayer(); + if ((player != null) && player.isOnline() && !player.isInOfflineMode()) + { + members.putIfAbsent(entry.getKey(), member); + } + } + } + return members; } public T getMember(int objectId) { - return _members.get(objectId); + return getMembers().get(objectId); } public void addMember(T member) @@ -48,6 +63,11 @@ public abstract class AbstractEvent>extends Abs _members.put(member.getObjectId(), member); } + public void clearMembers() + { + _members.clear(); + } + public void broadcastPacket(IClientOutgoingPacket... packets) { _members.values().forEach(member -> member.sendPacket(packets)); diff --git a/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java b/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java index fd8be430b0..383739dc5f 100644 --- a/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java +++ b/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java @@ -51,7 +51,7 @@ public abstract class AbstractEventMember> public void sendPacket(IClientOutgoingPacket... packets) { final PlayerInstance player = getPlayer(); - if (player != null) + if ((player != null) && player.isOnline() && !player.isInOfflineMode()) { for (IClientOutgoingPacket packet : packets) { diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java index d6440737f3..df8c2c0c2e 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java @@ -453,7 +453,7 @@ public class CeremonyOfChaosEvent extends AbstractEvent } } - getMembers().clear(); + clearMembers(); _instance.destroy(); } diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java index 5b6dfccd27..569e883943 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java @@ -17,7 +17,9 @@ package org.l2jmobius.gameserver.model.eventengine; import java.nio.file.Path; +import java.util.HashMap; import java.util.Map; +import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -35,12 +37,25 @@ public abstract class AbstractEvent>extends Abs public Map getMembers() { - return _members; + final Map members = new HashMap<>(); + for (Entry entry : _members.entrySet()) + { + final T member = entry.getValue(); + if (member != null) + { + final PlayerInstance player = member.getPlayer(); + if ((player != null) && player.isOnline() && !player.isInOfflineMode()) + { + members.putIfAbsent(entry.getKey(), member); + } + } + } + return members; } public T getMember(int objectId) { - return _members.get(objectId); + return getMembers().get(objectId); } public void addMember(T member) @@ -48,6 +63,11 @@ public abstract class AbstractEvent>extends Abs _members.put(member.getObjectId(), member); } + public void clearMembers() + { + _members.clear(); + } + public void broadcastPacket(IClientOutgoingPacket... packets) { _members.values().forEach(member -> member.sendPacket(packets)); diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java index fd8be430b0..383739dc5f 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java @@ -51,7 +51,7 @@ public abstract class AbstractEventMember> public void sendPacket(IClientOutgoingPacket... packets) { final PlayerInstance player = getPlayer(); - if (player != null) + if ((player != null) && player.isOnline() && !player.isInOfflineMode()) { for (IClientOutgoingPacket packet : packets) { diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java index d6440737f3..df8c2c0c2e 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java @@ -453,7 +453,7 @@ public class CeremonyOfChaosEvent extends AbstractEvent } } - getMembers().clear(); + clearMembers(); _instance.destroy(); } diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java index 5b6dfccd27..569e883943 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java @@ -17,7 +17,9 @@ package org.l2jmobius.gameserver.model.eventengine; import java.nio.file.Path; +import java.util.HashMap; import java.util.Map; +import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -35,12 +37,25 @@ public abstract class AbstractEvent>extends Abs public Map getMembers() { - return _members; + final Map members = new HashMap<>(); + for (Entry entry : _members.entrySet()) + { + final T member = entry.getValue(); + if (member != null) + { + final PlayerInstance player = member.getPlayer(); + if ((player != null) && player.isOnline() && !player.isInOfflineMode()) + { + members.putIfAbsent(entry.getKey(), member); + } + } + } + return members; } public T getMember(int objectId) { - return _members.get(objectId); + return getMembers().get(objectId); } public void addMember(T member) @@ -48,6 +63,11 @@ public abstract class AbstractEvent>extends Abs _members.put(member.getObjectId(), member); } + public void clearMembers() + { + _members.clear(); + } + public void broadcastPacket(IClientOutgoingPacket... packets) { _members.values().forEach(member -> member.sendPacket(packets)); diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java index fd8be430b0..383739dc5f 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java @@ -51,7 +51,7 @@ public abstract class AbstractEventMember> public void sendPacket(IClientOutgoingPacket... packets) { final PlayerInstance player = getPlayer(); - if (player != null) + if ((player != null) && player.isOnline() && !player.isInOfflineMode()) { for (IClientOutgoingPacket packet : packets) { diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java index d6440737f3..df8c2c0c2e 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java @@ -453,7 +453,7 @@ public class CeremonyOfChaosEvent extends AbstractEvent } } - getMembers().clear(); + clearMembers(); _instance.destroy(); } diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java index 5b6dfccd27..569e883943 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java @@ -17,7 +17,9 @@ package org.l2jmobius.gameserver.model.eventengine; import java.nio.file.Path; +import java.util.HashMap; import java.util.Map; +import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -35,12 +37,25 @@ public abstract class AbstractEvent>extends Abs public Map getMembers() { - return _members; + final Map members = new HashMap<>(); + for (Entry entry : _members.entrySet()) + { + final T member = entry.getValue(); + if (member != null) + { + final PlayerInstance player = member.getPlayer(); + if ((player != null) && player.isOnline() && !player.isInOfflineMode()) + { + members.putIfAbsent(entry.getKey(), member); + } + } + } + return members; } public T getMember(int objectId) { - return _members.get(objectId); + return getMembers().get(objectId); } public void addMember(T member) @@ -48,6 +63,11 @@ public abstract class AbstractEvent>extends Abs _members.put(member.getObjectId(), member); } + public void clearMembers() + { + _members.clear(); + } + public void broadcastPacket(IClientOutgoingPacket... packets) { _members.values().forEach(member -> member.sendPacket(packets)); diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java index fd8be430b0..383739dc5f 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java @@ -51,7 +51,7 @@ public abstract class AbstractEventMember> public void sendPacket(IClientOutgoingPacket... packets) { final PlayerInstance player = getPlayer(); - if (player != null) + if ((player != null) && player.isOnline() && !player.isInOfflineMode()) { for (IClientOutgoingPacket packet : packets) { diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java index d6440737f3..df8c2c0c2e 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java @@ -453,7 +453,7 @@ public class CeremonyOfChaosEvent extends AbstractEvent } } - getMembers().clear(); + clearMembers(); _instance.destroy(); } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java index 5b6dfccd27..569e883943 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java @@ -17,7 +17,9 @@ package org.l2jmobius.gameserver.model.eventengine; import java.nio.file.Path; +import java.util.HashMap; import java.util.Map; +import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -35,12 +37,25 @@ public abstract class AbstractEvent>extends Abs public Map getMembers() { - return _members; + final Map members = new HashMap<>(); + for (Entry entry : _members.entrySet()) + { + final T member = entry.getValue(); + if (member != null) + { + final PlayerInstance player = member.getPlayer(); + if ((player != null) && player.isOnline() && !player.isInOfflineMode()) + { + members.putIfAbsent(entry.getKey(), member); + } + } + } + return members; } public T getMember(int objectId) { - return _members.get(objectId); + return getMembers().get(objectId); } public void addMember(T member) @@ -48,6 +63,11 @@ public abstract class AbstractEvent>extends Abs _members.put(member.getObjectId(), member); } + public void clearMembers() + { + _members.clear(); + } + public void broadcastPacket(IClientOutgoingPacket... packets) { _members.values().forEach(member -> member.sendPacket(packets)); diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java index fd8be430b0..383739dc5f 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java @@ -51,7 +51,7 @@ public abstract class AbstractEventMember> public void sendPacket(IClientOutgoingPacket... packets) { final PlayerInstance player = getPlayer(); - if (player != null) + if ((player != null) && player.isOnline() && !player.isInOfflineMode()) { for (IClientOutgoingPacket packet : packets) { diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java index d6440737f3..df8c2c0c2e 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java @@ -453,7 +453,7 @@ public class CeremonyOfChaosEvent extends AbstractEvent } } - getMembers().clear(); + clearMembers(); _instance.destroy(); } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java index 5b6dfccd27..569e883943 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java @@ -17,7 +17,9 @@ package org.l2jmobius.gameserver.model.eventengine; import java.nio.file.Path; +import java.util.HashMap; import java.util.Map; +import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -35,12 +37,25 @@ public abstract class AbstractEvent>extends Abs public Map getMembers() { - return _members; + final Map members = new HashMap<>(); + for (Entry entry : _members.entrySet()) + { + final T member = entry.getValue(); + if (member != null) + { + final PlayerInstance player = member.getPlayer(); + if ((player != null) && player.isOnline() && !player.isInOfflineMode()) + { + members.putIfAbsent(entry.getKey(), member); + } + } + } + return members; } public T getMember(int objectId) { - return _members.get(objectId); + return getMembers().get(objectId); } public void addMember(T member) @@ -48,6 +63,11 @@ public abstract class AbstractEvent>extends Abs _members.put(member.getObjectId(), member); } + public void clearMembers() + { + _members.clear(); + } + public void broadcastPacket(IClientOutgoingPacket... packets) { _members.values().forEach(member -> member.sendPacket(packets)); diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java index fd8be430b0..383739dc5f 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java @@ -51,7 +51,7 @@ public abstract class AbstractEventMember> public void sendPacket(IClientOutgoingPacket... packets) { final PlayerInstance player = getPlayer(); - if (player != null) + if ((player != null) && player.isOnline() && !player.isInOfflineMode()) { for (IClientOutgoingPacket packet : packets) { diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java index d6440737f3..df8c2c0c2e 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java @@ -453,7 +453,7 @@ public class CeremonyOfChaosEvent extends AbstractEvent } } - getMembers().clear(); + clearMembers(); _instance.destroy(); } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java index 5b6dfccd27..569e883943 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java @@ -17,7 +17,9 @@ package org.l2jmobius.gameserver.model.eventengine; import java.nio.file.Path; +import java.util.HashMap; import java.util.Map; +import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -35,12 +37,25 @@ public abstract class AbstractEvent>extends Abs public Map getMembers() { - return _members; + final Map members = new HashMap<>(); + for (Entry entry : _members.entrySet()) + { + final T member = entry.getValue(); + if (member != null) + { + final PlayerInstance player = member.getPlayer(); + if ((player != null) && player.isOnline() && !player.isInOfflineMode()) + { + members.putIfAbsent(entry.getKey(), member); + } + } + } + return members; } public T getMember(int objectId) { - return _members.get(objectId); + return getMembers().get(objectId); } public void addMember(T member) @@ -48,6 +63,11 @@ public abstract class AbstractEvent>extends Abs _members.put(member.getObjectId(), member); } + public void clearMembers() + { + _members.clear(); + } + public void broadcastPacket(IClientOutgoingPacket... packets) { _members.values().forEach(member -> member.sendPacket(packets)); diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java index fd8be430b0..383739dc5f 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java @@ -51,7 +51,7 @@ public abstract class AbstractEventMember> public void sendPacket(IClientOutgoingPacket... packets) { final PlayerInstance player = getPlayer(); - if (player != null) + if ((player != null) && player.isOnline() && !player.isInOfflineMode()) { for (IClientOutgoingPacket packet : packets) { diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java index d6440737f3..df8c2c0c2e 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java @@ -453,7 +453,7 @@ public class CeremonyOfChaosEvent extends AbstractEvent } } - getMembers().clear(); + clearMembers(); _instance.destroy(); } diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java index 5b6dfccd27..569e883943 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java @@ -17,7 +17,9 @@ package org.l2jmobius.gameserver.model.eventengine; import java.nio.file.Path; +import java.util.HashMap; import java.util.Map; +import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -35,12 +37,25 @@ public abstract class AbstractEvent>extends Abs public Map getMembers() { - return _members; + final Map members = new HashMap<>(); + for (Entry entry : _members.entrySet()) + { + final T member = entry.getValue(); + if (member != null) + { + final PlayerInstance player = member.getPlayer(); + if ((player != null) && player.isOnline() && !player.isInOfflineMode()) + { + members.putIfAbsent(entry.getKey(), member); + } + } + } + return members; } public T getMember(int objectId) { - return _members.get(objectId); + return getMembers().get(objectId); } public void addMember(T member) @@ -48,6 +63,11 @@ public abstract class AbstractEvent>extends Abs _members.put(member.getObjectId(), member); } + public void clearMembers() + { + _members.clear(); + } + public void broadcastPacket(IClientOutgoingPacket... packets) { _members.values().forEach(member -> member.sendPacket(packets)); diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java index fd8be430b0..383739dc5f 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java @@ -51,7 +51,7 @@ public abstract class AbstractEventMember> public void sendPacket(IClientOutgoingPacket... packets) { final PlayerInstance player = getPlayer(); - if (player != null) + if ((player != null) && player.isOnline() && !player.isInOfflineMode()) { for (IClientOutgoingPacket packet : packets) { diff --git a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java index 1516f27d2f..413d8812e4 100644 --- a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java +++ b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/ceremonyofchaos/CeremonyOfChaosEvent.java @@ -453,7 +453,7 @@ public class CeremonyOfChaosEvent extends AbstractEvent } } - getMembers().clear(); + clearMembers(); _instance.destroy(); } diff --git a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java index 5b6dfccd27..569e883943 100644 --- a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java +++ b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/eventengine/AbstractEvent.java @@ -17,7 +17,9 @@ package org.l2jmobius.gameserver.model.eventengine; import java.nio.file.Path; +import java.util.HashMap; import java.util.Map; +import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -35,12 +37,25 @@ public abstract class AbstractEvent>extends Abs public Map getMembers() { - return _members; + final Map members = new HashMap<>(); + for (Entry entry : _members.entrySet()) + { + final T member = entry.getValue(); + if (member != null) + { + final PlayerInstance player = member.getPlayer(); + if ((player != null) && player.isOnline() && !player.isInOfflineMode()) + { + members.putIfAbsent(entry.getKey(), member); + } + } + } + return members; } public T getMember(int objectId) { - return _members.get(objectId); + return getMembers().get(objectId); } public void addMember(T member) @@ -48,6 +63,11 @@ public abstract class AbstractEvent>extends Abs _members.put(member.getObjectId(), member); } + public void clearMembers() + { + _members.clear(); + } + public void broadcastPacket(IClientOutgoingPacket... packets) { _members.values().forEach(member -> member.sendPacket(packets)); diff --git a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java index fd8be430b0..383739dc5f 100644 --- a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java +++ b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/eventengine/AbstractEventMember.java @@ -51,7 +51,7 @@ public abstract class AbstractEventMember> public void sendPacket(IClientOutgoingPacket... packets) { final PlayerInstance player = getPlayer(); - if (player != null) + if ((player != null) && player.isOnline() && !player.isInOfflineMode()) { for (IClientOutgoingPacket packet : packets) {