|  |  |  | @ -125,37 +125,18 @@ public class NPC extends AbstractCharacter {@@ -125,37 +125,18 @@ public class NPC extends AbstractCharacter { | 
			
		
	
		
			
				
					|  |  |  |  |             this.dbID = rs.getInt(1); | 
			
		
	
		
			
				
					|  |  |  |  |             this.currentID = this.dbID; | 
			
		
	
		
			
				
					|  |  |  |  |             this.setObjectTypeMask(MBServerStatics.MASK_NPC); | 
			
		
	
		
			
				
					|  |  |  |  |             int contractID = rs.getInt("npc_contractID"); | 
			
		
	
		
			
				
					|  |  |  |  |             this.contract = DbManager.ContractQueries.GET_CONTRACT(contractID); | 
			
		
	
		
			
				
					|  |  |  |  |             this.contractUUID = rs.getInt("npc_contractID"); | 
			
		
	
		
			
				
					|  |  |  |  |             this.parentZoneID = rs.getInt("parent"); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             this.gridObjectType = GridObjectType.STATIC; | 
			
		
	
		
			
				
					|  |  |  |  |             this.equipmentSetID = rs.getInt("equipmentSet"); | 
			
		
	
		
			
				
					|  |  |  |  |             this.runeSetID = rs.getInt("runeSet"); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             if (this.equipmentSetID == 0 && this.contract != null) | 
			
		
	
		
			
				
					|  |  |  |  |                 this.equipmentSetID = this.contract.equipmentSet; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             this.loadID = rs.getInt("npc_raceID"); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             // Default to contract load ID
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             if (loadID == 0) { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                 if (this.contract != null) | 
			
		
	
		
			
				
					|  |  |  |  |                     loadID = this.contract.getMobbaseID(); | 
			
		
	
		
			
				
					|  |  |  |  |                 else { | 
			
		
	
		
			
				
					|  |  |  |  |                     Logger.error("Invalid contract for NPC: " + this.getObjectUUID()); | 
			
		
	
		
			
				
					|  |  |  |  |                     loadID = 2100; // Default human male
 | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             this.mobBase = MobBase.getMobBase(this.loadID); | 
			
		
	
		
			
				
					|  |  |  |  |             this.level = rs.getByte("npc_level"); | 
			
		
	
		
			
				
					|  |  |  |  |             this.isMob = false; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             int buildingID = rs.getInt("npc_buildingID"); | 
			
		
	
		
			
				
					|  |  |  |  |             this.building = BuildingManager.getBuilding(buildingID); | 
			
		
	
		
			
				
					|  |  |  |  |             buildingUUID = rs.getInt("npc_buildingID"); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             // Most objects from the cache have a default buy
 | 
			
		
	
		
			
				
					|  |  |  |  |             // percentage of 100% which was a dupe source due
 | 
			
		
	
	
		
			
				
					|  |  |  | @ -172,20 +153,7 @@ public class NPC extends AbstractCharacter {@@ -172,20 +153,7 @@ public class NPC extends AbstractCharacter { | 
			
		
	
		
			
				
					|  |  |  |  |             this.statAlt = rs.getFloat("npc_spawnY"); | 
			
		
	
		
			
				
					|  |  |  |  |             this.statLon = rs.getFloat("npc_spawnZ"); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             int guildID = rs.getInt("npc_guildID"); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             if (this.building != null) | 
			
		
	
		
			
				
					|  |  |  |  |                 this.guild = this.building.getGuild(); | 
			
		
	
		
			
				
					|  |  |  |  |             else | 
			
		
	
		
			
				
					|  |  |  |  |                 this.guild = Guild.getGuild(guildID); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             if (guildID != 0 && (this.guild == null || this.guild.isEmptyGuild())) | 
			
		
	
		
			
				
					|  |  |  |  |                 NPC.Oprhans.add(currentID); | 
			
		
	
		
			
				
					|  |  |  |  |             else if (this.building == null && buildingID > 0) | 
			
		
	
		
			
				
					|  |  |  |  |                 NPC.Oprhans.add(currentID); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             if (this.guild == null) | 
			
		
	
		
			
				
					|  |  |  |  |                 this.guild = Guild.getErrantGuild(); | 
			
		
	
		
			
				
					|  |  |  |  |             this.guildUUID = rs.getInt("npc_guildID"); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             // Set upgrade date JodaTime DateTime object
 | 
			
		
	
		
			
				
					|  |  |  |  |             // if one exists in the database.
 | 
			
		
	
	
		
			
				
					|  |  |  | @ -1054,6 +1022,40 @@ public class NPC extends AbstractCharacter {@@ -1054,6 +1022,40 @@ public class NPC extends AbstractCharacter { | 
			
		
	
		
			
				
					|  |  |  |  |         if (ConfigManager.serverType.equals(ServerType.LOGINSERVER)) | 
			
		
	
		
			
				
					|  |  |  |  |             return; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         this.contract = DbManager.ContractQueries.GET_CONTRACT(this.contractUUID); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         if (this.equipmentSetID == 0 && this.contract != null) | 
			
		
	
		
			
				
					|  |  |  |  |             this.equipmentSetID = this.contract.equipmentSet; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         // Default to contract load ID
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         if (loadID == 0) { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             if (this.contract != null) | 
			
		
	
		
			
				
					|  |  |  |  |                 loadID = this.contract.getMobbaseID(); | 
			
		
	
		
			
				
					|  |  |  |  |             else { | 
			
		
	
		
			
				
					|  |  |  |  |                 Logger.error("Invalid contract for NPC: " + this.getObjectUUID()); | 
			
		
	
		
			
				
					|  |  |  |  |                 loadID = 2100; // Default human male
 | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         this.mobBase = MobBase.getMobBase(this.loadID); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         this.building = BuildingManager.getBuilding(this.buildingUUID); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         if (this.building != null) | 
			
		
	
		
			
				
					|  |  |  |  |             this.guild = this.building.getGuild(); | 
			
		
	
		
			
				
					|  |  |  |  |         else | 
			
		
	
		
			
				
					|  |  |  |  |             this.guild = Guild.getGuild(this.guildUUID); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         if (this.guildUUID != 0 && (this.guild == null || this.guild.isEmptyGuild())) | 
			
		
	
		
			
				
					|  |  |  |  |             NPC.Oprhans.add(currentID); | 
			
		
	
		
			
				
					|  |  |  |  |         else if (this.building == null && this.buildingUUID > 0) | 
			
		
	
		
			
				
					|  |  |  |  |             NPC.Oprhans.add(currentID); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         if (this.guild == null) | 
			
		
	
		
			
				
					|  |  |  |  |             this.guild = Guild.getErrantGuild(); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         if (this.contract == null) | 
			
		
	
		
			
				
					|  |  |  |  |             return; // Early exit for npc guild owners
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  |  | 
 |