コード例 #1
0
ファイル: ObjectManager.java プロジェクト: servernge/holocore
  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);
  }
コード例 #2
0
ファイル: ObjectManager.java プロジェクト: servernge/holocore
 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;
   }
 }
コード例 #3
0
ファイル: ObjectManager.java プロジェクト: servernge/holocore
 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();
 }