private void loadObject(SWGObject obj) { obj.setOwner(null); // if player is not a player if (!(obj instanceof CreatureObject && ((CreatureObject) obj).hasSlot("ghost"))) objectAwareness.add(obj); if (obj instanceof CreatureObject && ((CreatureObject) obj).getPlayerObject() != null) { if (!obj.hasSlot("bank")) { SWGObject missing = createObject(obj, "object/tangible/bank/shared_character_bank.iff", false); missing.setContainerPermissions(ContainerPermissions.INVENTORY); } if (!obj.hasSlot("mission_bag")) { SWGObject missing = createObject(obj, "object/tangible/mission_bag/shared_mission_bag.iff", false); missing.setContainerPermissions(ContainerPermissions.INVENTORY); } if (!obj.hasSlot("appearance_inventory")) { SWGObject missing = createObject(obj, "object/tangible/inventory/shared_appearance_inventory.iff", false); missing.setContainerPermissions(ContainerPermissions.INVENTORY); } } objectMap.put(obj.getObjectId(), obj); updateBuildoutParent(obj); addChildrenObjects(obj); }
public SWGObject deleteObject(long objId) { synchronized (objectMap) { SWGObject obj = objectMap.remove(objId); database.remove(objId); if (obj == null) return null; obj.clearAware(); objectAwareness.remove(obj); Log.i("ObjectManager", "Deleted object %d [%s]", obj.getObjectId(), obj.getTemplate()); return obj; } }
private void zoneInCharacter( PlayerManager playerManager, String galaxy, long netId, long characterId) { Player player = playerManager.getPlayerFromNetworkId(netId); if (player == null) { Log.e("ObjectManager", "Unable to zone in null player '%d'", netId); return; } SWGObject creatureObj = objectMap.get(characterId); if (creatureObj == null) { System.err.println( "ObjectManager: Failed to start zone - CreatureObject could not be fetched from database [Character: " + characterId + " User: "******"]"); Log.e( "ObjectManager", "Failed to start zone - CreatureObject could not be fetched from database [Character: %d User: %s]", characterId, player.getUsername()); sendClientFatal( player, "Failed to zone", "You were not found in the database\nTry relogging to fix this problem", 10, TimeUnit.SECONDS); return; } if (!(creatureObj instanceof CreatureObject)) { System.err.println( "ObjectManager: Failed to start zone - Object is not a CreatureObject for ID " + characterId); Log.e( "ObjectManager", "Failed to start zone - Object is not a CreatureObject [Character: %d User: %s]", characterId, player.getUsername()); sendClientFatal( player, "Failed to zone", "There has been an internal server error: Not a Creature.\nPlease delete your character and create a new one", 10, TimeUnit.SECONDS); return; } if (((CreatureObject) creatureObj).getPlayerObject() == null) { System.err.println( "ObjectManager: Failed to start zone - " + player.getUsername() + "'s CreatureObject has a null ghost!"); Log.e( "ObjectManager", "Failed to start zone - CreatureObject doesn't have a ghost [Character: %d User: %s", characterId, player.getUsername()); sendClientFatal( player, "Failed to zone", "There has been an internal server error: Null Ghost.\nPlease delete your character and create a new one", 10, TimeUnit.SECONDS); return; } if (creatureObj.getParent() != null) { objectAwareness.update(creatureObj); Log.d( "ObjectManager", "Zoning in to %s/%s - %s", creatureObj.getParent(), creatureObj.getTerrain(), creatureObj.getLocation().getPosition()); } else { objectAwareness.remove(creatureObj); objectAwareness.add(creatureObj); Log.d( "ObjectManager", "Zoning in to %s - %s", creatureObj.getTerrain(), creatureObj.getLocation().getPosition()); } new RequestZoneInIntent(player, (CreatureObject) creatureObj, galaxy).broadcast(); }