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