diff --git a/src/resources/objects/SWGObject.java b/src/resources/objects/SWGObject.java index c626ccad9..206878f9e 100644 --- a/src/resources/objects/SWGObject.java +++ b/src/resources/objects/SWGObject.java @@ -64,7 +64,6 @@ import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.Hashtable; -import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -82,7 +81,7 @@ public abstract class SWGObject extends BaselineObject implements Comparable dataAttributes; private ContainerPermissions containerPermissions; private transient Set objectsAware; - private transient Set customObservers; + private transient Set customAware; private transient BuildoutArea buildoutArea; private transient Player owner; private List > arrangement; @@ -112,7 +111,7 @@ public abstract class SWGObject extends BaselineObject implements Comparable(); - this.customObservers = new HashSet<>(); + this.customAware = new HashSet<>(); this.slots = new HashMap<>(); this.containedObjects = Collections.synchronizedMap(new HashMap()); this.attributes = new LinkedHashMap<>(); @@ -124,7 +123,7 @@ public abstract class SWGObject extends BaselineObject implements Comparable(); - customObservers = new HashSet<>(); + customAware = new HashSet<>(); buildoutArea = null; owner = null; } @@ -757,6 +756,9 @@ public abstract class SWGObject extends BaselineObject implements Comparable(objectsAware); } + synchronized (customAware) { + aware.addAll(customAware); + } if (parent != null) { aware.addAll(parent.getObjectsAware()); aware.add(getSuperParent()); @@ -771,44 +773,27 @@ public abstract class SWGObject extends BaselineObject implements Comparable getCustomObservers() { - Set custom; - if (parent != null) - custom = parent.getCustomObservers(); - else - custom = new HashSet<>(); - synchronized (customObservers) { - Iterator observerIter = customObservers.iterator(); - while (observerIter.hasNext()) { - SWGObject observer = observerIter.next(); - if (observer.getOwner() == null) - observerIter.remove(); - else - custom.add(observer); - } - } - return custom; - } - public Set getObservers() { Player owner = getOwner(); SWGObject parent = getParent(); @@ -826,7 +811,6 @@ public abstract class SWGObject extends BaselineObject implements Comparable observers = new HashSet<>(); for (SWGObject aware : nearby) {