@ -19,7 +19,6 @@ import engine.server.MBServerStatics;
				@@ -19,7 +19,6 @@ import engine.server.MBServerStatics;
					 
			
		
	
		
			
				
					import  org.joda.time.DateTime ;  
			
		
	
		
			
				
					import  org.pmw.tinylog.Logger ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					import  java.net.UnknownHostException ;  
			
		
	
		
			
				
					import  java.sql.Connection ;  
			
		
	
		
			
				
					import  java.sql.PreparedStatement ;  
			
		
	
		
			
				
					import  java.sql.ResultSet ;  
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -37,68 +36,71 @@ public class dbWarehouseHandler extends dbHandlerBase {
				@@ -37,68 +36,71 @@ public class dbWarehouseHandler extends dbHandlerBase {
					 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
						}   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
						public  ArrayList < AbstractGameObject >  CREATE_WAREHOUSE (  int  parentZoneID ,  int  OwnerUUID ,  String  name ,  int  meshUUID ,   
			
		
	
		
			
				
								Vector3fImmutable  location ,  float  meshScale ,  int  currentHP ,   
			
		
	
		
			
				
								ProtectionState  protectionState ,  int  currentGold ,  int  rank ,   
			
		
	
		
			
				
								DateTime  upgradeDate ,  int  blueprintUUID ,  float  w ,  float  rotY )  {   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
							prepareCallable ( "CALL `WAREHOUSE_CREATE`(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ,? ,? ,?, ?);" ) ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
							setInt ( 1 ,  parentZoneID ) ;   
			
		
	
		
			
				
							setInt ( 2 ,  OwnerUUID ) ;   
			
		
	
		
			
				
							setString ( 3 ,  name ) ;   
			
		
	
		
			
				
							setInt ( 4 ,  meshUUID ) ;   
			
		
	
		
			
				
							setFloat ( 5 ,  location . x ) ;   
			
		
	
		
			
				
							setFloat ( 6 ,  location . y ) ;   
			
		
	
		
			
				
							setFloat ( 7 ,  location . z ) ;   
			
		
	
		
			
				
							setFloat ( 8 ,  meshScale ) ;   
			
		
	
		
			
				
							setInt ( 9 ,  currentHP ) ;   
			
		
	
		
			
				
							setString ( 10 ,  protectionState . name ( ) ) ;   
			
		
	
		
			
				
							setInt ( 11 ,  currentGold ) ;   
			
		
	
		
			
				
							setInt ( 12 ,  rank ) ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
							if  ( upgradeDate  ! =  null )  {   
			
		
	
		
			
				
								setTimeStamp ( 13 ,  upgradeDate . getMillis ( ) ) ;   
			
		
	
		
			
				
							}  else  {   
			
		
	
		
			
				
								setNULL ( 13 ,  java . sql . Types . DATE ) ;   
			
		
	
		
			
				
						public  static  void  addObject ( ArrayList < AbstractGameObject >  list ,  ResultSet  rs )  throws  SQLException  {   
			
		
	
		
			
				
							String  type  =  rs . getString ( "type" ) ;   
			
		
	
		
			
				
							switch  ( type )  {   
			
		
	
		
			
				
								case  "building" :   
			
		
	
		
			
				
									Building  building  =  new  Building ( rs ) ;   
			
		
	
		
			
				
									DbManager . addToCache ( building ) ;   
			
		
	
		
			
				
									list . add ( building ) ;   
			
		
	
		
			
				
									break ;   
			
		
	
		
			
				
								case  "warehouse" :   
			
		
	
		
			
				
									Warehouse  warehouse  =  new  Warehouse ( rs ) ;   
			
		
	
		
			
				
									DbManager . addToCache ( warehouse ) ;   
			
		
	
		
			
				
									list . add ( warehouse ) ;   
			
		
	
		
			
				
									break ;   
			
		
	
		
			
				
							}   
			
		
	
		
			
				
						}   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
							setInt ( 14 ,  blueprintUUID ) ;   
			
		
	
		
			
				
							setFloat ( 15 ,  w ) ;   
			
		
	
		
			
				
							setFloat ( 16 ,  rotY ) ;   
			
		
	
		
			
				
						public  ArrayList < AbstractGameObject >  CREATE_WAREHOUSE ( int  parentZoneID ,  int  OwnerUUID ,  String  name ,  int  meshUUID ,   
			
		
	
		
			
				
																			  Vector3fImmutable  location ,  float  meshScale ,  int  currentHP ,   
			
		
	
		
			
				
																			  ProtectionState  protectionState ,  int  currentGold ,  int  rank ,   
			
		
	
		
			
				
																			  DateTime  upgradeDate ,  int  blueprintUUID ,  float  w ,  float  rotY )  {   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
							ArrayList < AbstractGameObject >  list  =  new  ArrayList < > ( ) ;   
			
		
	
		
			
				
							//System.out.println(this.cs.get().toString());
   
			
		
	
		
			
				
							try  {   
			
		
	
		
			
				
								boolean  work  =  execute ( ) ;   
			
		
	
		
			
				
								if  ( work )  {   
			
		
	
		
			
				
									ResultSet  rs  =  this . callableStatement . get ( ) . getResultSet ( ) ;   
			
		
	
		
			
				
									while  ( rs . next ( ) )  {   
			
		
	
		
			
				
										addObject ( list ,  rs ) ;   
			
		
	
		
			
				
									}   
			
		
	
		
			
				
									rs . close ( ) ;   
			
		
	
		
			
				
								}  else  {   
			
		
	
		
			
				
									Logger . info ( "Warehouse Creation Failed: "  +  this . callableStatement . get ( ) . toString ( ) ) ;   
			
		
	
		
			
				
									return  list ;  //city creation failure
   
			
		
	
		
			
				
								}   
			
		
	
		
			
				
								while  ( this . callableStatement . get ( ) . getMoreResults ( ) )  {   
			
		
	
		
			
				
									ResultSet  rs  =  this . callableStatement . get ( ) . getResultSet ( ) ;   
			
		
	
		
			
				
									while  ( rs . next ( ) )  {   
			
		
	
		
			
				
										addObject ( list ,  rs ) ;   
			
		
	
		
			
				
									}   
			
		
	
		
			
				
									rs . close ( ) ;   
			
		
	
		
			
				
							ArrayList < AbstractGameObject >  warehouseList  =  new  ArrayList < > ( ) ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
							try  ( Connection  connection  =  DbManager . getConnection ( ) ;   
			
		
	
		
			
				
								 PreparedStatement  preparedStatement  =  connection . prepareStatement ( "CALL `WAREHOUSE_CREATE`(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ,? ,? ,?, ?);" ) )  {   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
								preparedStatement . setInt ( 1 ,  parentZoneID ) ;   
			
		
	
		
			
				
								preparedStatement . setInt ( 2 ,  OwnerUUID ) ;   
			
		
	
		
			
				
								preparedStatement . setString ( 3 ,  name ) ;   
			
		
	
		
			
				
								preparedStatement . setInt ( 4 ,  meshUUID ) ;   
			
		
	
		
			
				
								preparedStatement . setFloat ( 5 ,  location . x ) ;   
			
		
	
		
			
				
								preparedStatement . setFloat ( 6 ,  location . y ) ;   
			
		
	
		
			
				
								preparedStatement . setFloat ( 7 ,  location . z ) ;   
			
		
	
		
			
				
								preparedStatement . setFloat ( 8 ,  meshScale ) ;   
			
		
	
		
			
				
								preparedStatement . setInt ( 9 ,  currentHP ) ;   
			
		
	
		
			
				
								preparedStatement . setString ( 10 ,  protectionState . name ( ) ) ;   
			
		
	
		
			
				
								preparedStatement . setInt ( 11 ,  currentGold ) ;   
			
		
	
		
			
				
								preparedStatement . setInt ( 12 ,  rank ) ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
								if  ( upgradeDate  ! =  null )   
			
		
	
		
			
				
									preparedStatement . setTimestamp ( 13 ,  new  java . sql . Timestamp ( upgradeDate . getMillis ( ) ) ) ;   
			
		
	
		
			
				
								else   
			
		
	
		
			
				
									preparedStatement . setNull ( 13 ,  java . sql . Types . DATE ) ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
								preparedStatement . setInt ( 14 ,  blueprintUUID ) ;   
			
		
	
		
			
				
								preparedStatement . setFloat ( 15 ,  w ) ;   
			
		
	
		
			
				
								preparedStatement . setFloat ( 16 ,  rotY ) ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
								preparedStatement . execute ( ) ;   
			
		
	
		
			
				
								ResultSet  rs  =  preparedStatement . getResultSet ( ) ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
								while  ( rs . next ( ) )   
			
		
	
		
			
				
									addObject ( warehouseList ,  rs ) ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
								while  ( preparedStatement . getMoreResults ( ) )  {   
			
		
	
		
			
				
									rs  =  preparedStatement . getResultSet ( ) ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
									while  ( rs . next ( ) )   
			
		
	
		
			
				
										addObject ( warehouseList ,  rs ) ;   
			
		
	
		
			
				
								}   
			
		
	
		
			
				
							}  catch  ( SQLException  e )  {   
			
		
	
		
			
				
								Logger . info ( "Warehouse Creation Failed, SQLException: "  +  this . callableStatement . get ( ) . toString ( )  +  e . toString ( ) ) ;   
			
		
	
		
			
				
								return  list ;  //city creation failure
   
			
		
	
		
			
				
							}  catch  ( UnknownHostException  e )  {   
			
		
	
		
			
				
								Logger . info ( "Warehouse Creation Failed, UnknownHostException: "  +  this . callableStatement . get ( ) . toString ( ) ) ;   
			
		
	
		
			
				
								return  list ;  //city creation failure
   
			
		
	
		
			
				
							}  finally  {   
			
		
	
		
			
				
								closeCallable ( ) ;   
			
		
	
		
			
				
								Logger . error ( e ) ;   
			
		
	
		
			
				
							}   
			
		
	
		
			
				
							return  list ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
							return  warehouseList ;   
			
		
	
		
			
				
						}   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
						public  boolean  updateLocks ( final  Warehouse  wh ,  long  locks )  {   
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -117,7 +119,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
				@@ -117,7 +119,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
					 
			
		
	
		
			
				
							return  false ;   
			
		
	
		
			
				
						}   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
						public  boolean  updateGold ( final  Warehouse  wh ,  int  amount   )  {   
			
		
	
		
			
				
						public  boolean  updateGold ( final  Warehouse  wh ,  int  amount )  {   
			
		
	
		
			
				
							prepareCallable ( "UPDATE `obj_warehouse` SET `warehouse_gold`=? WHERE `UID` = ?" ) ;   
			
		
	
		
			
				
							setInt ( 1 ,  amount ) ;   
			
		
	
		
			
				
							setInt ( 2 ,  wh . getUID ( ) ) ;   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -268,7 +270,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
				@@ -268,7 +270,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
					 
			
		
	
		
			
				
							return  ( executeUpdate ( )  ! =  0 ) ;   
			
		
	
		
			
				
						}   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
						public  boolean  updateWormwood ( final  Warehouse  wh ,  int  amount   )  {   
			
		
	
		
			
				
						public  boolean  updateWormwood ( final  Warehouse  wh ,  int  amount )  {   
			
		
	
		
			
				
							prepareCallable ( "UPDATE `obj_warehouse` SET `warehouse_wormwood`=? WHERE `UID` = ?" ) ;   
			
		
	
		
			
				
							setInt ( 1 ,  amount ) ;   
			
		
	
		
			
				
							setInt ( 2 ,  wh . getUID ( ) ) ;   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -300,7 +302,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
				@@ -300,7 +302,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
					 
			
		
	
		
			
				
							return  ( executeUpdate ( )  ! =  0 ) ;   
			
		
	
		
			
				
						}   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
						public  boolean  CREATE_TRANSACTION ( int  warehouseBuildingID ,  GameObjectType  targetType ,  int  targetUUID ,  TransactionType  transactionType , Resource  resource ,  int  amount , DateTime  date ) {   
			
		
	
		
			
				
						public  boolean  CREATE_TRANSACTION ( int  warehouseBuildingID ,  GameObjectType  targetType ,  int  targetUUID ,  TransactionType  transactionType ,   Resource  resource ,  int  amount ,   DateTime  date )   {   
			
		
	
		
			
				
							Transaction  transactions  =  null ;   
			
		
	
		
			
				
							prepareCallable ( "INSERT INTO `dyn_warehouse_transactions` (`warehouseUID`, `targetType`,`targetUID`, `type`,`resource`,`amount`,`date` ) VALUES (?,?,?,?,?,?,?)" ) ;   
			
		
	
		
			
				
							setLong ( 1 ,  warehouseBuildingID ) ;   
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -308,27 +310,11 @@ public class dbWarehouseHandler extends dbHandlerBase {
				@@ -308,27 +310,11 @@ public class dbWarehouseHandler extends dbHandlerBase {
					 
			
		
	
		
			
				
							setLong ( 3 ,  targetUUID ) ;   
			
		
	
		
			
				
							setString ( 4 ,  transactionType . name ( ) ) ;   
			
		
	
		
			
				
							setString ( 5 ,  resource . name ( ) ) ;   
			
		
	
		
			
				
							setInt ( 6 , amount ) ;   
			
		
	
		
			
				
							setTimeStamp ( 7 , date . getMillis ( ) ) ;   
			
		
	
		
			
				
							setInt ( 6 ,   amount ) ;   
			
		
	
		
			
				
							setTimeStamp ( 7 ,   date . getMillis ( ) ) ;   
			
		
	
		
			
				
							return  ( executeUpdate ( )  ! =  0 ) ;   
			
		
	
		
			
				
						}   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
						public  static  void  addObject ( ArrayList < AbstractGameObject >  list ,  ResultSet  rs )  throws  SQLException ,  UnknownHostException  {   
			
		
	
		
			
				
							String  type  =  rs . getString ( "type" ) ;   
			
		
	
		
			
				
							switch  ( type )  {   
			
		
	
		
			
				
							case  "building" :   
			
		
	
		
			
				
								Building  building  =  new  Building ( rs ) ;   
			
		
	
		
			
				
								DbManager . addToCache ( building ) ;   
			
		
	
		
			
				
								list . add ( building ) ;   
			
		
	
		
			
				
								break ;   
			
		
	
		
			
				
							case  "warehouse" :   
			
		
	
		
			
				
								Warehouse  warehouse  =  new  Warehouse ( rs ) ;   
			
		
	
		
			
				
								DbManager . addToCache ( warehouse ) ;   
			
		
	
		
			
				
								list . add ( warehouse ) ;   
			
		
	
		
			
				
								break ;   
			
		
	
		
			
				
							}   
			
		
	
		
			
				
						}   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
						public  ArrayList < Transaction >  GET_TRANSACTIONS_FOR_WAREHOUSE ( final  int  warehouseUUID )  {   
			
		
	
		
			
				
							ArrayList < Transaction >  transactionsList  =  new  ArrayList < > ( ) ;   
			
		
	
		
			
				
							prepareCallable ( "SELECT * FROM dyn_warehouse_transactions WHERE `warehouseUID` = ?;" ) ;   
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -343,7 +329,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
				@@ -343,7 +329,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
					 
			
		
	
		
			
				
								}   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
							}  catch  ( SQLException  e )  {   
			
		
	
		
			
				
								Logger . error (   e . getErrorCode ( )  +  ' '  +  e . getMessage ( ) ,  e ) ;   
			
		
	
		
			
				
								Logger . error ( e . getErrorCode ( )  +  ' '  +  e . getMessage ( ) ,  e ) ;   
			
		
	
		
			
				
							}  finally  {   
			
		
	
		
			
				
								closeCallable ( ) ;   
			
		
	
		
			
				
							}