@ -14,6 +14,7 @@ import engine.InterestManagement.WorldGrid;
				@@ -14,6 +14,7 @@ import engine.InterestManagement.WorldGrid;
					 
			
		
	
		
			
				
					import  engine.job.JobContainer ;  
			
		
	
		
			
				
					import  engine.job.JobScheduler ;  
			
		
	
		
			
				
					import  engine.jobs.UpgradeBuildingJob ;  
			
		
	
		
			
				
					import  engine.loot.WorkOrder ;  
			
		
	
		
			
				
					import  engine.math.Bounds ;  
			
		
	
		
			
				
					import  engine.math.Vector3fImmutable ;  
			
		
	
		
			
				
					import  engine.mbEnums ;  
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -49,8 +50,7 @@ public enum BuildingManager {
				@@ -49,8 +50,7 @@ public enum BuildingManager {
					 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        // Some meshes might not have slot locations assigned.
   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        if  ( slotLocations  = =  null  | |   
			
		
	
		
			
				
					                slotLocations . isEmpty ( ) )   
			
		
	
		
			
				
					        if  ( slotLocations  = =  null  | |  slotLocations . isEmpty ( ) )   
			
		
	
		
			
				
					            return  - 1 ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        int  numOfSlots  =  _slotLocations . get ( building . meshUUID ) . size ( ) ;   
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -69,8 +69,7 @@ public enum BuildingManager {
				@@ -69,8 +69,7 @@ public enum BuildingManager {
					 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        // Some meshes might not have slot locations assigned.
   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        if  ( slotLocations  = =  null  | |   
			
		
	
		
			
				
					                slotLocations . isEmpty ( ) )   
			
		
	
		
			
				
					        if  ( slotLocations  = =  null  | |  slotLocations . isEmpty ( ) )   
			
		
	
		
			
				
					            return  - 1 ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        int  numOfSlots  =  _slotLocations . get ( building . meshUUID ) . size ( ) ;   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -127,22 +126,16 @@ public enum BuildingManager {
				@@ -127,22 +126,16 @@ public enum BuildingManager {
					 
			
		
	
		
			
				
					        if  ( building . getGuild ( ) . isGuildLeader ( player . getObjectUUID ( ) ) )   
			
		
	
		
			
				
					            return  true ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        if  ( building . getFriends ( ) . get ( player . getGuild ( ) . getObjectUUID ( ) )  ! =  null   
			
		
	
		
			
				
					                & &  building . getFriends ( ) . get ( player . getGuild ( ) . getObjectUUID ( ) ) . friendType  = =  8 )   
			
		
	
		
			
				
					        if  ( building . getFriends ( ) . get ( player . getGuild ( ) . getObjectUUID ( ) )  ! =  null  & &  building . getFriends ( ) . get ( player . getGuild ( ) . getObjectUUID ( ) ) . friendType  = =  8 )   
			
		
	
		
			
				
					            return  true ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        if  ( building . getFriends ( ) . get ( player . getGuild ( ) . getObjectUUID ( ) )  ! =  null   
			
		
	
		
			
				
					                & &  building . getFriends ( ) . get ( player . getGuild ( ) . getObjectUUID ( ) ) . friendType  = =  9   
			
		
	
		
			
				
					                & &  GuildStatusController . isInnerCouncil ( player . getGuildStatus ( ) ) )   
			
		
	
		
			
				
					        if  ( building . getFriends ( ) . get ( player . getGuild ( ) . getObjectUUID ( ) )  ! =  null  & &  building . getFriends ( ) . get ( player . getGuild ( ) . getObjectUUID ( ) ) . friendType  = =  9  & &  GuildStatusController . isInnerCouncil ( player . getGuildStatus ( ) ) )   
			
		
	
		
			
				
					            return  true ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        if  ( Guild . sameGuild ( building . getGuild ( ) ,  player . getGuild ( ) )  & &  GuildStatusController . isInnerCouncil ( player . getGuildStatus ( ) ) )   
			
		
	
		
			
				
					            return  true ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        if  ( Guild . sameGuild ( building . getGuild ( ) ,  player . getGuild ( ) )  & &  GuildStatusController . isGuildLeader ( player . getGuildStatus ( ) ) )   
			
		
	
		
			
				
					            return  true ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        return  false ;   
			
		
	
		
			
				
					        return  Guild . sameGuild ( building . getGuild ( ) ,  player . getGuild ( ) )  & &  GuildStatusController . isGuildLeader ( player . getGuildStatus ( ) ) ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        //TODO test friends list once added
   
			
		
	
		
			
				
					        //does not meet above criteria. Cannot access.
   
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -168,7 +161,7 @@ public enum BuildingManager {
				@@ -168,7 +161,7 @@ public enum BuildingManager {
					 
			
		
	
		
			
				
					        //Somehow guild leader check fails? lets check if Player is true Guild GL.
   
			
		
	
		
			
				
					        if  ( building . getGuild ( )  ! =  null  & &  building . getGuild ( ) . isGuildLeader ( player . getObjectUUID ( ) ) )   
			
		
	
		
			
				
					            return  true ;   
			
		
	
		
			
				
					        if  ( GuildStatusController . isGuildLeader ( player . getGuildStatus ( ) )  = =  false  & &  GuildStatusController . isInnerCouncil ( player . getGuildStatus ( ) )  = =  false  )   
			
		
	
		
			
				
					        if  ( ! GuildStatusController . isGuildLeader ( player . getGuildStatus ( ) )  & &  ! GuildStatusController . isInnerCouncil ( player . getGuildStatus ( ) ) )   
			
		
	
		
			
				
					            return  false ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					
 
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -274,9 +267,7 @@ public enum BuildingManager {
				@@ -274,9 +267,7 @@ public enum BuildingManager {
					 
			
		
	
		
			
				
					        // Submit upgrade job for future date or current instant
   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        if  ( building . getUpgradeDateTime ( ) . isAfter ( LocalDateTime . now ( ) ) )  {   
			
		
	
		
			
				
					            JobContainer  jc  =  JobScheduler . getInstance ( ) . scheduleJob ( new  UpgradeBuildingJob ( building ) ,   
			
		
	
		
			
				
					                    building . getUpgradeDateTime ( ) . atZone ( ZoneId . systemDefault ( ) )   
			
		
	
		
			
				
					                            . toInstant ( ) . toEpochMilli ( ) ) ;   
			
		
	
		
			
				
					            JobContainer  jc  =  JobScheduler . getInstance ( ) . scheduleJob ( new  UpgradeBuildingJob ( building ) ,  building . getUpgradeDateTime ( ) . atZone ( ZoneId . systemDefault ( ) ) . toInstant ( ) . toEpochMilli ( ) ) ;   
			
		
	
		
			
				
					        }  else   
			
		
	
		
			
				
					            JobScheduler . getInstance ( ) . scheduleJob ( new  UpgradeBuildingJob ( building ) ,  0 ) ;   
			
		
	
		
			
				
					    }   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -335,10 +326,16 @@ public enum BuildingManager {
				@@ -335,10 +326,16 @@ public enum BuildingManager {
					 
			
		
	
		
			
				
					            WorldGrid . RemoveWorldObject ( minionMob ) ;   
			
		
	
		
			
				
					            WorldGrid . unloadObject ( minionMob ) ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					            if  ( minionMob . getParentZone ( ) ! =  null )   
			
		
	
		
			
				
					                minionMob . getParentZone ( ) . zoneMobSet . remove ( minionMob ) ;   
			
		
	
		
			
				
					            if  ( minionMob . parentZone ! =  null )   
			
		
	
		
			
				
					                minionMob . parentZone . zoneMobSet . remove ( minionMob ) ;   
			
		
	
		
			
				
					        }   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        // Clear all workorders for this hireling
   
			
		
	
		
			
				
					        if  ( hireling . getObjectType ( ) . equals ( GameObjectType . NPC ) )   
			
		
	
		
			
				
					            if  ( ForgeManager . vendorWorkOrderLookup . contains ( hireling ) )   
			
		
	
		
			
				
					                for  ( WorkOrder  workOrder  :  ForgeManager . vendorWorkOrderLookup . get ( hireling ) )   
			
		
	
		
			
				
					                    DbManager . WarehouseQueries . DELETE_WORKORDER ( workOrder ) ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        // Remove hireling from building
   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        building . getHirelings ( ) . remove ( hireling ) ;   
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -349,9 +346,11 @@ public enum BuildingManager {
				@@ -349,9 +346,11 @@ public enum BuildingManager {
					 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					            Mob  hirelingMob  =  ( Mob )  hireling ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					            if  ( hirelingMob . getParentZone ( )  ! =  null )   
			
		
	
		
			
				
					                if  ( hirelingMob . getParentZone ( ) . zoneMobSet . contains ( hirelingMob ) )   
			
		
	
		
			
				
					                    hirelingMob . getParentZone ( ) . zoneMobSet . remove ( hireling ) ;   
			
		
	
		
			
				
					            if  ( hirelingMob . parentZone  ! =  null )  {   
			
		
	
		
			
				
					                if  ( hirelingMob . parentZone . zoneMobSet . contains ( hirelingMob ) )  {   
			
		
	
		
			
				
					                    hirelingMob . parentZone . zoneMobSet . remove ( hireling ) ;   
			
		
	
		
			
				
					                }   
			
		
	
		
			
				
					            }   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        }   
			
		
	
		
			
				
					
 
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -451,7 +450,7 @@ public enum BuildingManager {
				@@ -451,7 +450,7 @@ public enum BuildingManager {
					 
			
		
	
		
			
				
					        if  ( ! Guild . sameGuild ( building . getGuild ( ) ,  player . getGuild ( ) ) )   
			
		
	
		
			
				
					            return  false ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        return  GuildStatusController . isGuildLeader ( player . getGuildStatus ( ) )  ! =  false  | |  GuildStatusController . isInnerCouncil ( player . getGuildStatus ( ) )  ! =  false  ;   
			
		
	
		
			
				
					        return  GuildStatusController . isGuildLeader ( player . getGuildStatus ( ) )  | |  GuildStatusController . isInnerCouncil ( player . getGuildStatus ( ) ) ;   
			
		
	
		
			
				
					    }   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    //This is mainly used for Rolling and gold sharing between building and warehouse.
   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -825,7 +824,7 @@ public enum BuildingManager {
				@@ -825,7 +824,7 @@ public enum BuildingManager {
					 
			
		
	
		
			
				
					        else   
			
		
	
		
			
				
					            success  =  DbManager . BuildingQueries . updateBuildingRank ( building ,  rank ) ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        if  ( success  = =  false )  {   
			
		
	
		
			
				
					        if  ( ! success )  {   
			
		
	
		
			
				
					            Logger . error ( "Error writing to database UUID: "  +  building . getObjectUUID ( ) ) ;   
			
		
	
		
			
				
					            return ;   
			
		
	
		
			
				
					        }