@ -27,7 +27,6 @@ import java.time.LocalDateTime;
				@@ -27,7 +27,6 @@ import java.time.LocalDateTime;
					 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					import  java.time.ZoneId ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					import  java.util.ArrayList ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					import  java.util.HashMap ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					import  java.util.concurrent.ConcurrentHashMap ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					public  class  dbBuildingHandler  extends  dbHandlerBase  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -119,7 +118,7 @@ public class dbBuildingHandler extends dbHandlerBase {
				@@ -119,7 +118,7 @@ public class dbBuildingHandler extends dbHandlerBase {
					 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        try  ( Connection  connection  =  DbManager . getConnection ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             PreparedStatement  preparedStatement  =  connection . prepareStatement ( "SELECT `obj_building`.*, `object`.`parent` FROM `object` INNER JOIN `obj_building` ON `obj_building`.`UID` = `object`.`UID` WHERE `object`.`UID` = ?;" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								 preparedStatement . setLong ( 1 ,  ( long )   uuid ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             preparedStatement . setLong ( 1 ,  uuid ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            ResultSet  rs  =  preparedStatement . executeQuery ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            building  =  ( Building )  getObjectFromRs ( rs ) ;   
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -468,59 +467,55 @@ public class dbBuildingHandler extends dbHandlerBase {
				@@ -468,59 +467,55 @@ public class dbBuildingHandler extends dbHandlerBase {
					 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( building  = =  null )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            return ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							prepareCallable ( "SELECT * FROM `dyn_building_condemned` WHERE `buildingUID` = ?"  ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							setInt ( 1 , building . getObjectUUID ( ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        try  ( Connection  connection  =  DbManager . getConnection (  ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             PreparedStatement  preparedStatement  =  connection . prepareStatement ( "SELECT * FROM `dyn_building_condemned` WHERE `buildingUID` = ?" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							try  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								 ResultSet  rs  =  executeQuery ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            preparedStatement . setInt ( 1 ,  building . getObjectUUID ( ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             ResultSet  rs  =  preparedStatement . executeQuery ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								//shrines cached in rs for easy cache on creation.
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            while  ( rs . next ( ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
									 Condemned  condemn  =  new  Condemned ( rs ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
									switch ( condemn  . getFriendType ( ) ) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                 Condemned  condemned   =  new  Condemned ( rs ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                switch  ( condemned  . getFriendType ( ) )   {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    case  2 :   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
										 building . getCondemned ( ) . put ( condemn . getPlayerUID ( ) ,  condemn ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                         building . getCondemned ( ) . put ( condemned  . getPlayerUID ( ) ,  condemned  ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        break ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    case  4 :   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    case  5 :   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
										 building . getCondemned ( ) . put ( condemn . getGuildUID ( ) ,  condemn ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                         building . getCondemned ( ) . put ( condemned  . getGuildUID ( ) ,  condemned  ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        break ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  catch  ( SQLException  e )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								Logger . error ( "LOAD Condemned for building: "  +  e . getErrorCode ( )  +  ' '  +  e . getMessage ( ) ,  e ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							}  finally  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								closeCallable ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Logger . error ( e ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    public  ArrayList < Vector3fImmutable >  LOAD_PATROL_POINTS ( Building  building )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( building  = =  null )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            return  null ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        ArrayList < Vector3fImmutable >  patrolPoints  =  new  ArrayList < > ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        try  ( Connection  connection  =  DbManager . getConnection ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             PreparedStatement  preparedStatement  =  connection . prepareStatement ( "SELECT * FROM `dyn_building_patrol_points` WHERE `buildingUID` = ?" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            preparedStatement . setInt ( 1 ,  building . getObjectUUID ( ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							prepareCallable ( "SELECT * FROM `dyn_building_patrol_points` WHERE `buildingUID` = ?" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							setInt ( 1 , building . getObjectUUID ( ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							try  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								ResultSet  rs  =  executeQuery ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            ResultSet  rs  =  preparedStatement . executeQuery ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								//shrines cached in rs for easy cache on creation.
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            while  ( rs . next ( ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                float  x1  =  rs . getFloat ( "patrolX" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                float  y1  =  rs . getFloat ( "patrolY" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                float  z1  =  rs . getFloat ( "patrolZ" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
									 Vector3fImmutable  patrolPoint  =  new  Vector3fImmutable ( x1 , y1 , z1 ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                 Vector3fImmutable  patrolPoint  =  new  Vector3fImmutable ( x1 ,   y1 ,   z1 ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                patrolPoints . add ( patrolPoint ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  catch  ( SQLException  e )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								Logger . error ( "LOAD Patrol Points for building: "  +  e . getErrorCode ( )  +  ' '  +  e . getMessage ( ) ,  e ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							}  finally  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								closeCallable ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Logger . error ( e ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        return  patrolPoints ;   
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -528,134 +523,136 @@ public class dbBuildingHandler extends dbHandlerBase {
				@@ -528,134 +523,136 @@ public class dbBuildingHandler extends dbHandlerBase {
					 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    public  boolean  ADD_TO_CONDEMNLIST ( final  long  parentUID ,  final  long  playerUID ,  final  long  guildID ,  final  int  friendType )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							prepareCallable ( "INSERT INTO `dyn_building_condemned` (`buildingUID`, `playerUID`,`guildUID`, `friendType`) VALUES (?,?,?,?)" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							setLong ( 1 ,  parentUID ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							setLong ( 2 ,  playerUID ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							setLong ( 3 ,  guildID ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							setInt ( 4 ,  friendType ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							return  ( executeUpdate ( )  >  0 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        try  ( Connection  connection  =  DbManager . getConnection ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             PreparedStatement  preparedStatement  =  connection . prepareStatement ( "INSERT INTO `dyn_building_condemned` (`buildingUID`, `playerUID`,`guildUID`, `friendType`) VALUES (?,?,?,?)" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            preparedStatement . setLong ( 1 ,  parentUID ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            preparedStatement . setLong ( 2 ,  playerUID ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            preparedStatement . setLong ( 3 ,  guildID ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            preparedStatement . setInt ( 4 ,  friendType ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            return  ( preparedStatement . executeUpdate ( )  >  0 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  catch  ( SQLException  e )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Logger . error ( e ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            return  false ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						public  boolean  ADD_TO_PATROL ( final  long  parentUID ,  final  Vector3fImmutable  patrolPoint )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							prepareCallable ( "INSERT INTO `dyn_building_patrol_points` (`buildingUID`, `patrolX`,`patrolY`, `patrolZ`) VALUES (?,?,?,?)" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							setLong ( 1 ,  parentUID ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							setFloat ( 2 ,  ( int ) patrolPoint . x ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							setFloat ( 3 ,  ( int ) patrolPoint . y ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							setFloat ( 4 ,  ( int ) patrolPoint . z ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							return  ( executeUpdate ( )  >  0 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						public  HashMap < Integer ,  ArrayList < BuildingRegions > >  LOAD_BUILDING_REGIONS ( )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    public  boolean  ADD_TO_PATROL ( final  long  parentUID ,  final  Vector3fImmutable  patrolPoint )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        try  ( Connection  connection  =  DbManager . getConnection ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             PreparedStatement  preparedStatement  =  connection . prepareStatement ( "INSERT INTO `dyn_building_patrol_points` (`buildingUID`, `patrolX`,`patrolY`, `patrolZ`) VALUES (?,?,?,?)" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            preparedStatement . setLong ( 1 ,  parentUID ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            preparedStatement . setFloat ( 2 ,  ( int )  patrolPoint . x ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            preparedStatement . setFloat ( 3 ,  ( int )  patrolPoint . y ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            preparedStatement . setFloat ( 4 ,  ( int )  patrolPoint . z ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            return  ( preparedStatement . executeUpdate ( )  >  0 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  catch  ( SQLException  e )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Logger . error ( e ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            return  false ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							HashMap < Integer ,  ArrayList < BuildingRegions > >  regions ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							BuildingRegions  thisRegions ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    public  HashMap < Integer ,  ArrayList < BuildingRegions > >  LOAD_BUILDING_REGIONS ( )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							regions  =  new  HashMap < > ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        HashMap < Integer ,  ArrayList < BuildingRegions > >  regionList  =  new  HashMap < > ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        BuildingRegions  buildingRegions ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        int  recordsRead  =  0 ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							prepareCallable ( "SELECT * FROM static_building_regions" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        try  ( Connection  connection  =  DbManager . getConnection ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             PreparedStatement  preparedStatement  =  connection . prepareStatement ( "SELECT * FROM static_building_regions" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							try  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								ResultSet  rs  =  executeQuery ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            ResultSet  rs  =  preparedStatement . executeQuery ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            while  ( rs . next ( ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                recordsRead + + ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
									thisRegions  =  new  BuildingRegions ( rs ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
									if  ( regions . get ( thisRegions . getBuildingID ( ) )  = =  null ) {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                buildingRegions  =  new  BuildingRegions ( rs ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                if  ( regionList . get ( buildingRegions . getBuildingID ( ) )  = =  null )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    ArrayList < BuildingRegions >  regionsList  =  new  ArrayList < > ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
										regionsList . add ( thisRegions ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
										regions . put ( thisRegions . getBuildingID ( ) ,  regionsList ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
									}   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
									else {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
										ArrayList < BuildingRegions > regionsList  =  regions . get ( thisRegions . getBuildingID ( ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
										regionsList . add ( thisRegions ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
										regions . put ( thisRegions . getBuildingID ( ) ,  regionsList ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    regionsList . add ( buildingRegions ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    regionList . put ( buildingRegions . getBuildingID ( ) ,  regionsList ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                }  else  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    ArrayList < BuildingRegions >  regionsList  =  regionList . get ( buildingRegions . getBuildingID ( ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    regionsList . add ( buildingRegions ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    regionList . put ( buildingRegions . getBuildingID ( ) ,  regionsList ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								Logger . info (  "read: "  +  recordsRead  +  " cached: "  +  regions . size ( ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  catch  ( SQLException  e )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								Logger . error ( ": "  +  e . getErrorCode ( )  +  ' '  +  e . getMessage ( ) ,  e ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							}  finally  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								closeCallable ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Logger . error ( e ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            return  null ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							return  regions ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        Logger . info ( "read: "  +  recordsRead  +  " cached: "  +  regionList . size ( ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        return  regionList ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    public  HashMap < Integer ,  MeshBounds >  LOAD_MESH_BOUNDS ( )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							 HashMap < Integer ,  MeshBounds >  meshBoundsMap ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					         HashMap < Integer ,  MeshBounds >  meshBoundsMap  =  new  HashMap < > ( )  ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        MeshBounds  meshBounds ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							meshBoundsMap  =  new  HashMap < > ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        int  recordsRead  =  0 ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							prepareCallable ( "SELECT * FROM static_mesh_bounds" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        try  ( Connection  connection  =  DbManager . getConnection ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             PreparedStatement  preparedStatement  =  connection . prepareStatement ( "SELECT * FROM static_mesh_bounds" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							try  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								ResultSet  rs  =  executeQuery ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            ResultSet  rs  =  preparedStatement . executeQuery ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            while  ( rs . next ( ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                recordsRead + + ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                meshBounds  =  new  MeshBounds ( rs ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
									  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                meshBoundsMap . put ( meshBounds . meshID ,  meshBounds ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
									  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								Logger . info (  "read: "  +  recordsRead  +  " cached: "  +  meshBoundsMap . size ( ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  catch  ( SQLException  e )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								Logger . error ( "LoadMeshBounds: "  +  e . getErrorCode ( )  +  ' '  +  e . getMessage ( ) ,  e ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							}  finally  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								closeCallable ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Logger . error ( e ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        Logger . info ( "read: "  +  recordsRead  +  " cached: "  +  meshBoundsMap . size ( ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        return  meshBoundsMap ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    public  HashMap < Integer ,  ArrayList < StaticColliders > >  LOAD_ALL_STATIC_COLLIDERS ( )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							 HashMap < Integer ,  ArrayList < StaticColliders > >  colliders ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					         HashMap < Integer ,  ArrayList < StaticColliders > >  colliders  =  new  HashMap < > ( )  ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        StaticColliders  thisColliders ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							colliders  =  new  HashMap < > ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        int  recordsRead  =  0 ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							prepareCallable ( "SELECT * FROM static_building_colliders" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        try  ( Connection  connection  =  DbManager . getConnection ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             PreparedStatement  preparedStatement  =  connection . prepareStatement ( "SELECT * FROM static_building_colliders" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							try  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								ResultSet  rs  =  executeQuery ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            ResultSet  rs  =  preparedStatement . executeQuery ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            while  ( rs . next ( ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                recordsRead + + ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                thisColliders  =  new  StaticColliders ( rs ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
									if  ( colliders . get ( thisColliders . getMeshID ( ) )  = =  null ) {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                if  ( colliders . get ( thisColliders . getMeshID ( ) )  = =  null )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    ArrayList < StaticColliders >  colliderList  =  new  ArrayList < > ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    colliderList . add ( thisColliders ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    colliders . put ( thisColliders . getMeshID ( ) ,  colliderList ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
									}   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
									else {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
										ArrayList < StaticColliders > colliderList  =  colliders . get ( thisColliders . getMeshID ( ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                }  else  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    ArrayList < StaticColliders >  colliderList  =  colliders . get ( thisColliders . getMeshID ( ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    colliderList . add ( thisColliders ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    colliders . put ( thisColliders . getMeshID ( ) ,  colliderList ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								Logger . info (  "read: "  +  recordsRead  +  " cached: "  +  colliders . size ( ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  catch  ( SQLException  e )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								Logger . error ( "LoadAllBlueprints: "  +  e . getErrorCode ( )  +  ' '  +  e . getMessage ( ) ,  e ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							}  finally  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								closeCallable ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Logger . error ( e ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        Logger . info ( "read: "  +  recordsRead  +  " cached: "  +  colliders . size ( ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        return  colliders ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -666,174 +663,204 @@ public class dbBuildingHandler extends dbHandlerBase {
				@@ -666,174 +663,204 @@ public class dbBuildingHandler extends dbHandlerBase {
					 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    public  final  DbObjectType  GET_UID_ENUM ( long  object_UID )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        DbObjectType  storedEnum  =  DbObjectType . INVALID ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							String  typeString ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( object_UID  = =  0 )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            return  storedEnum ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							// Set up call to stored procedure
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							prepareCallable ( "CALL object_UID_ENUM(?)" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							setLong ( 1 ,  object_UID ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        try  ( Connection  connection  =  DbManager . getConnection ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             PreparedStatement  preparedStatement  =  connection . prepareStatement ( "SELECT `type` FROM `object` WHERE `object`.`UID` = n LIMIT 1;" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							try  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            preparedStatement . setLong ( 1 ,  object_UID ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								// Evaluate database ordinal and return enum
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            ResultSet  rs  =  preparedStatement . executeQuery ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            if  ( rs . next ( ) )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                storedEnum  =  DbObjectType . valueOf ( getString ( "type" ) . toUpperCase ( ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							}  catch  ( Exception  e )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								storedEnum  =  DbObjectType . INVALID ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								Logger . error ( "UID_ENUM " ,  "Orphaned Object? Lookup failed for UID: "  +  object_UID ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							}  finally  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								closeCallable ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  catch  ( SQLException  e )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Logger . error ( "Building" ,  e ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            return  DbObjectType . INVALID ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        return  storedEnum ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						public  ConcurrentHashMap < Integer ,  Integer >  GET_FRIENDS ( final  long  buildingID )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							ConcurrentHashMap < Integer ,  Integer >  friendsList  =  new  ConcurrentHashMap < > ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							prepareCallable ( "SELECT * FROM `dyn_building_friends` WHERE `buildingUID`=?" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							setLong ( 1 ,  buildingID ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							try  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								ResultSet  rs  =  executeQuery ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								while  ( rs . next ( ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
									int  friendType  =  rs . getInt ( "friendType" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
									switch  ( friendType )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
									case  7 :   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
										friendsList . put ( rs . getInt ( "playerUID" ) ,  7 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
										break ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
									case  8 :   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
										friendsList . put ( rs . getInt ( "guildUID" ) ,  8 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
										break ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
									case  9 :   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
										friendsList . put ( rs . getInt ( "guildUID" ) ,  9 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
									}   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								}   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    public  boolean  updateBuildingRank ( final  Building  b ,  int  Rank )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        try  ( Connection  connection  =  DbManager . getConnection ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             PreparedStatement  preparedStatement  =  connection . prepareStatement ( "UPDATE `obj_building` SET `rank`=?,"   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                     +  "`upgradeDate`=?, `meshUUID`=?, `currentHP`=? "   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                     +  "WHERE `UID` = ?" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            preparedStatement . setInt ( 1 ,  Rank ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            preparedStatement . setNull ( 2 ,  java . sql . Types . DATE ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            preparedStatement . setInt ( 3 ,  b . getBlueprint ( ) . getMeshForRank ( Rank ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            preparedStatement . setInt ( 4 ,  b . getBlueprint ( ) . getMaxHealth ( Rank ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            preparedStatement . setInt ( 5 ,  b . getObjectUUID ( ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            return  ( preparedStatement . executeUpdate ( )  >  0 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								rs . close ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  catch  ( SQLException  e )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								Logger . error ( "dbBuildingHandler.GET_FRIENDS_GUILD_IC" ,  e ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							}  finally  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								closeCallable ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Logger . error ( e ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            return  false ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							return  friendsList ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						public  boolean  updateBuildingRank  ( final  Building  b ,  int  Rank )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    public  boolean  updateReverseKOS  ( final  Building  b ,  boolean  reverse )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							prepareCallable ( "UPDATE `obj_building` SET `rank`=?,"   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
									+  "`upgradeDate`=?, `meshUUID`=?, `currentHP`=? "   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
									+  "WHERE `UID` = ?" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        try  ( Connection  connection  =  DbManager . getConnection ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             PreparedStatement  preparedStatement  =  connection . prepareStatement ( "UPDATE `obj_building` SET `reverseKOS`=? WHERE `UID` = ?" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							setInt ( 1 ,  Rank ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							setNULL ( 2 ,  java . sql . Types . DATE ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							setInt ( 3 ,  b . getBlueprint ( ) . getMeshForRank ( Rank ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							setInt ( 4 ,  b . getBlueprint ( ) . getMaxHealth ( Rank ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							setInt ( 5 ,  b . getObjectUUID ( ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							return  ( executeUpdate ( )  >  0 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						}   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            preparedStatement . setBoolean ( 1 ,  reverse ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            preparedStatement . setInt ( 2 ,  b . getObjectUUID ( ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						public  boolean  updateReverseKOS ( final  Building  b ,  boolean  reverse )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            return  ( preparedStatement . executeUpdate ( )  >  0 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  catch  ( SQLException  e )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Logger . error ( e ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            return  false ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							prepareCallable ( "UPDATE `obj_building` SET `reverseKOS`=? "   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
									+  "WHERE `UID` = ?" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							setBoolean ( 1 ,  reverse ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							setInt ( 2 ,  b . getObjectUUID ( ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							return  ( executeUpdate ( )  >  0 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    public  boolean  updateActiveCondemn ( final  Condemned  condemn ,  boolean  active )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							prepareCallable ( "UPDATE `dyn_building_condemned` SET `active`=? "   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
									+  "WHERE`buildingUID` = ? AND `playerUID` = ? AND `guildUID` = ? AND `friendType` = ?" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							setBoolean ( 1 ,  active ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							setInt ( 2 ,  condemn . getParent ( ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							setInt ( 3 ,  condemn . getPlayerUID ( ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							setInt ( 4 ,  condemn . getGuildUID ( ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							setInt ( 5 ,  condemn . getFriendType ( ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							return  ( executeUpdate ( )  >  0 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        try  ( Connection  connection  =  DbManager . getConnection ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             PreparedStatement  preparedStatement  =  connection . prepareStatement ( "UPDATE `dyn_building_condemned` SET `active`=? "   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                     +  "WHERE`buildingUID` = ? AND `playerUID` = ? AND `guildUID` = ? AND `friendType` = ?" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            preparedStatement . setBoolean ( 1 ,  active ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            preparedStatement . setInt ( 2 ,  condemn . getParent ( ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            preparedStatement . setInt ( 3 ,  condemn . getPlayerUID ( ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            preparedStatement . setInt ( 4 ,  condemn . getGuildUID ( ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            preparedStatement . setInt ( 5 ,  condemn . getFriendType ( ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            return  ( preparedStatement . executeUpdate ( )  >  0 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  catch  ( SQLException  e )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Logger . error ( e ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            return  false ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    public  boolean  updateBuildingOwner ( final  Building  building ,  int  ownerUUID )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							prepareCallable ( "UPDATE `obj_building` SET `ownerUUID`=? "   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
									+  " WHERE `UID` = ?" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        try  ( Connection  connection  =  DbManager . getConnection ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             PreparedStatement  preparedStatement  =  connection . prepareStatement ( "UPDATE `obj_building` SET `ownerUUID`=? "   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                     +  " WHERE `UID` = ?" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            preparedStatement . setInt ( 1 ,  ownerUUID ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            preparedStatement . setInt ( 2 ,  building . getObjectUUID ( ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            return  ( preparedStatement . executeUpdate ( )  >  0 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  catch  ( SQLException  e )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Logger . error ( e ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            return  false ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							setInt ( 1 ,  ownerUUID ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							setInt ( 2 ,  building . getObjectUUID ( ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							return  ( executeUpdate ( )  >  0 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    public  boolean  updateBuildingUpgradeTime ( LocalDateTime  upgradeDateTime ,  Building  toUpgrade ,  int  costToUpgrade )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							prepareCallable ( "UPDATE obj_building SET upgradeDate=?, currentGold=? "   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
									+  "WHERE UID = ?" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        try  ( Connection  connection  =  DbManager . getConnection ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             PreparedStatement  preparedStatement  =  connection . prepareStatement ( "UPDATE obj_building SET upgradeDate=?, currentGold=? "   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                     +  "WHERE UID = ?" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            if  ( upgradeDateTime  = =  null )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								setNULL  ( 1 ,  java . sql . Types . DATE ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                preparedStatement . setNull  ( 1 ,  java . sql . Types . DATE ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            else   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								setTimeStamp ( 1 ,  upgradeDateTime . atZone ( ZoneId . systemDefault ( ) )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
										. toInstant ( ) . toEpochMilli ( ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                preparedStatement . setTimestamp ( 1 ,  new  java . sql . Timestamp ( upgradeDateTime . atZone ( ZoneId . systemDefault ( ) )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        . toInstant ( ) . toEpochMilli ( ) ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            preparedStatement . setInt ( 2 ,  toUpgrade . getStrongboxValue ( )  -  costToUpgrade ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            preparedStatement . setInt ( 3 ,  toUpgrade . getObjectUUID ( ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							setInt ( 2 ,  toUpgrade . getStrongboxValue ( )  -  costToUpgrade ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							setInt ( 3 ,  toUpgrade . getObjectUUID ( ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							return  ( executeUpdate ( )  >  0 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            return  ( preparedStatement . executeUpdate ( )  >  0 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  catch  ( SQLException  e )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Logger . error ( e ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            return  false ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    public  boolean  updateMaintDate ( Building  building )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							prepareCallable ( "UPDATE obj_building SET maintDate=? "   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
									+  "WHERE UID = ?" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        try  ( Connection  connection  =  DbManager . getConnection ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             PreparedStatement  preparedStatement  =  connection . prepareStatement ( "UPDATE obj_building SET maintDate=? "   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                     +  "WHERE UID = ?" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            if  ( building . maintDateTime  = =  null )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								setNULL  ( 1 ,  java . sql . Types . DATE ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                preparedStatement . setNull  ( 1 ,  java . sql . Types . DATE ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            else   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
								setLocalDateTime ( 1 ,  building . maintDateTime ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                preparedStatement . setTimestamp ( 1 ,  new  java . sql . Timestamp ( building . maintDateTime . atZone ( ZoneId . systemDefault ( ) )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        . toInstant ( ) . toEpochMilli ( ) ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            preparedStatement . setInt ( 2 ,  building . getObjectUUID ( ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							setInt ( 2 ,  building . getObjectUUID ( ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            return  ( preparedStatement . executeUpdate ( )  >  0  ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							return  ( executeUpdate ( )  >  0 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  catch  ( SQLException  e )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Logger . error ( e ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            return  false ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						public  boolean  addTaxes ( Building  building ,  TaxType  taxType ,  int  amount ,  boolean  enforceKOS ) {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							prepareCallable ( "UPDATE obj_building SET taxType=?, taxAmount = ?, enforceKOS = ? "   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
									+  "WHERE UID = ?" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    public  boolean  addTaxes ( Building  building ,  TaxType  taxType ,  int  amount ,  boolean  enforceKOS )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							setString ( 1 ,  taxType . name ( ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							setInt ( 2 ,  amount ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							setBoolean ( 3 ,  enforceKOS ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							setInt ( 4 ,  building . getObjectUUID ( ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        try  ( Connection  connection  =  DbManager . getConnection ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             PreparedStatement  preparedStatement  =  connection . prepareStatement ( "UPDATE obj_building SET taxType=?, taxAmount = ?, enforceKOS = ? "   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                     +  "WHERE UID = ?" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							return  ( executeUpdate ( )  >  0 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            preparedStatement . setString ( 1 ,  taxType . name ( ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            preparedStatement . setInt ( 2 ,  amount ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            preparedStatement . setBoolean ( 3 ,  enforceKOS ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            preparedStatement . setInt ( 4 ,  building . getObjectUUID ( ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            return  ( preparedStatement . executeUpdate ( )  >  0 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  catch  ( SQLException  e )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Logger . error ( e ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            return  false ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						public  boolean  removeTaxes ( Building  building ) {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							prepareCallable ( "UPDATE obj_building SET taxType=?, taxAmount = ?, enforceKOS = ?, taxDate = ? "   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
									+  "WHERE UID = ?" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							setString ( 1 ,  TaxType . NONE . name ( ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							setInt ( 2 ,  0 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							setBoolean ( 3 ,  false ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							setNULL ( 4 ,  java . sql . Types . DATE ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							setInt ( 5 ,  building . getObjectUUID ( ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    public  boolean  removeTaxes ( Building  building )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        try  ( Connection  connection  =  DbManager . getConnection ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             PreparedStatement  preparedStatement  =  connection . prepareStatement ( "UPDATE obj_building SET taxType=?, taxAmount = ?, enforceKOS = ?, taxDate = ? "   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                     +  "WHERE UID = ?" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            preparedStatement . setString ( 1 ,  TaxType . NONE . name ( ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            preparedStatement . setInt ( 2 ,  0 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            preparedStatement . setBoolean ( 3 ,  false ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            preparedStatement . setNull ( 4 ,  java . sql . Types . DATE ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            preparedStatement . setInt ( 5 ,  building . getObjectUUID ( ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							return  ( executeUpdate ( )  >  0 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             return  ( preparedStatement . executeUpdate ( )  >  0 ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  catch  ( SQLException  e )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Logger . error ( e ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            return  false ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    public  boolean  acceptTaxes ( Building  building )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							prepareCallable ( "UPDATE obj_building SET taxDate=? "   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
									+  "WHERE UID = ?" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							setTimeStamp ( 1 ,  DateTime . now ( ) . plusDays ( 7 ) . getMillis ( ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							setInt ( 2 ,  building . getObjectUUID ( ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        try  ( Connection  connection  =  DbManager . getConnection ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             PreparedStatement  preparedStatement  =  connection . prepareStatement ( "UPDATE obj_building SET taxDate=? "   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                     +  "WHERE UID = ?" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
							return  ( executeUpdate ( )  >  0  ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
						}   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            preparedStatement . setTimestamp ( 1 ,  new  java . sql . Timestamp ( DateTime . now ( ) . plusDays ( 7 ) . getMillis ( ) ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            preparedStatement . setInt ( 2 ,  building . getObjectUUID ( ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            return  ( preparedStatement . executeUpdate ( )  >  0 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  catch  ( SQLException  e )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Logger . error ( e ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            return  false ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}