mirror of
https://github.com/ProjectSWGCore/Holocore.git
synced 2026-10-07 22:13:40 -04:00
Fixed cell issue where players sometimes couldn't see others in cells
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user