Fixed cell issue where players sometimes couldn't see others in cells

This commit is contained in:
Obique PSWG
2015-07-24 07:41:55 -05:00
parent 45791c0fc7
commit 9a0950220f
2 changed files with 15 additions and 2 deletions
+14 -2
View File
@@ -634,7 +634,7 @@ public abstract class SWGObject implements Serializable, Comparable<SWGObject> {
synchronized (objectsAware) {
for (SWGObject obj : objectsAware) {
Player p = obj.getOwner();
if (p != null && !p.equals(childObject.getOwner()))
if (isValidPlayer(p))
observers.add(obj);
else
childObject.getChildrenObservers(observers, obj);
@@ -650,13 +650,25 @@ public abstract class SWGObject implements Serializable, Comparable<SWGObject> {
private void getChildrenObservers(Set<SWGObject> observers, SWGObject obj) {
for (SWGObject child : obj.getContainedObjects()) {
Player p = child.getOwner();
if (p != null && !p.equals(getOwner())) {
if (isValidPlayer(p)) {
observers.add(child);
} else {
getChildrenObservers(observers, child);
}
}
}
private boolean isValidPlayer(Player player) {
if (player == null)
return false;
if (player.equals(getOwner()))
return false;
if (player.getCreatureObject() == null)
return false;
if (player.getCreatureObject().getPlayerObject() == null)
return false;
return true;
}
public void sendObserversAndSelf(Packet ... packets) {
sendSelf(packets);