Index: C:/Development/l2j/eclipse/workspace/L2_GameserverSVN/java/net/sf/l2j/gameserver/util/KnownList.java =================================================================== --- C:/Development/l2j/eclipse/workspace/L2_GameserverSVN/java/net/sf/l2j/gameserver/util/KnownList.java (revision 1863) +++ C:/Development/l2j/eclipse/workspace/L2_GameserverSVN/java/net/sf/l2j/gameserver/util/KnownList.java (working copy) @@ -29,11 +29,13 @@ package net.sf.l2j.gameserver.util; import java.util.Collection; +import java.util.Iterator; import javolution.util.FastCollection; import javolution.util.FastList; import javolution.util.FastSet; import javolution.util.FastCollection.Record; + import net.sf.l2j.gameserver.model.L2Character; import net.sf.l2j.gameserver.model.L2MonsterInstance; import net.sf.l2j.gameserver.model.L2NpcInstance; @@ -201,10 +203,10 @@ { FastList allObjects = new FastList(); - if (getKnownPlayers().size() > 0) allObjects.addAll(getKnownPlayers()); - if (getKnownMonsters().size() > 0) allObjects.addAll(getKnownMonsters()); - if (getKnownNpcs().size() > 0) allObjects.addAll(getKnownNpcs()); - if (getKnownCharacters().size() > 0) allObjects.addAll(getKnownCharacters()); + allObjects.addAll(addAllL2Character(getKnownPlayers())); + allObjects.addAll(addAllL2Character(getKnownMonsters())); + allObjects.addAll(addAllL2Character(getKnownNpcs())); + allObjects.addAll(addAllL2Character(getKnownCharacters())); return allObjects; } @@ -228,11 +230,11 @@ { FastList allObjects = new FastList(); - if (getKnownPlayers().size() > 0) allObjects.addAll(getKnownPlayers()); - if (getKnownMonsters().size() > 0) allObjects.addAll(getKnownMonsters()); - if (getKnownNpcs().size() > 0) allObjects.addAll(getKnownNpcs()); - if (getOtherKnownObjects().size() > 0) allObjects.addAll(getOtherKnownObjects()); - if (getKnownCharacters().size() > 0) allObjects.addAll(getKnownCharacters()); + allObjects.addAll(addAllL2Object(getKnownPlayers())); + allObjects.addAll(addAllL2Object(getKnownMonsters())); + allObjects.addAll(addAllL2Object(getKnownNpcs())); + allObjects.addAll(addAllL2Object(getOtherKnownObjects())); + allObjects.addAll(addAllL2Object(getKnownCharacters())); return allObjects; } @@ -315,4 +317,42 @@ } public abstract void updateKnownObjects(); + + private Collection addAllL2Character(Collection col) + { + Collection newCol = new FastList(); + + if (col != null && col instanceof FastCollection && col.size() > 0) + { + Iterator itr = col.iterator(); + int pos = col.size(); + L2Character obj; + while (--pos >= 0) + { + obj = itr.next(); + if (obj != null) newCol.add(obj); + } + } + + return newCol; + } + + private Collection addAllL2Object(Collection col) + { + Collection newCol = new FastList(); + + if (col != null && col instanceof FastCollection && col.size() > 0) + { + Iterator itr = col.iterator(); + int pos = col.size(); + L2Object obj; + while (--pos >= 0) + { + obj = itr.next(); + if (obj != null) newCol.add(obj); + } + } + + return newCol; + } }