diff --git a/src/resources/objects/SWGObject.java b/src/resources/objects/SWGObject.java index e59c030c6..5c34ffc5f 100644 --- a/src/resources/objects/SWGObject.java +++ b/src/resources/objects/SWGObject.java @@ -659,7 +659,9 @@ public abstract class SWGObject implements Serializable, Comparable { } private boolean isValidPlayer(Player player) { - if (player == null) + if (player == null || player == getOwner()) + return false; + if (getOwner() == null) return false; if (player.equals(getOwner())) return false; @@ -667,6 +669,11 @@ public abstract class SWGObject implements Serializable, Comparable { return false; if (player.getCreatureObject().getPlayerObject() == null) return false; + SWGObject creature = getOwner().getCreatureObject(); + if (creature == null) + return false; + if (player.getCreatureObject().equals(creature)) + return false; return true; } diff --git a/src/resources/player/Player.java b/src/resources/player/Player.java index bb06a83cd..401c4d0cf 100644 --- a/src/resources/player/Player.java +++ b/src/resources/player/Player.java @@ -203,11 +203,14 @@ public class Player implements Serializable, Comparable { return false; if (!(o instanceof Player)) return false; + if (this == o) + return true; if (creatureObject == null) - return this == o; - if (((Player)o).getCreatureObject() == null) - return this == o; - return creatureObject.equals(((Player)o).getCreatureObject()); + return false; + CreatureObject oCreature = ((Player) o).getCreatureObject(); + if (oCreature == null) + return false; + return creatureObject.equals(oCreature); } @Override