|  |  |  | @ -13,7 +13,12 @@ import engine.gameManager.DbManager;@@ -13,7 +13,12 @@ import engine.gameManager.DbManager; | 
			
		
	
		
			
				
					|  |  |  |  | import engine.objects.Mine; | 
			
		
	
		
			
				
					|  |  |  |  | import engine.objects.MineProduction; | 
			
		
	
		
			
				
					|  |  |  |  | import engine.objects.Resource; | 
			
		
	
		
			
				
					|  |  |  |  | import org.pmw.tinylog.Logger; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | import java.sql.Connection; | 
			
		
	
		
			
				
					|  |  |  |  | import java.sql.PreparedStatement; | 
			
		
	
		
			
				
					|  |  |  |  | import java.sql.ResultSet; | 
			
		
	
		
			
				
					|  |  |  |  | import java.sql.SQLException; | 
			
		
	
		
			
				
					|  |  |  |  | import java.util.ArrayList; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | public class dbMineHandler extends dbHandlerBase { | 
			
		
	
	
		
			
				
					|  |  |  | @ -29,68 +34,103 @@ public class dbMineHandler extends dbHandlerBase {@@ -29,68 +34,103 @@ public class dbMineHandler extends dbHandlerBase { | 
			
		
	
		
			
				
					|  |  |  |  | 			return null; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 		Mine mine = (Mine) DbManager.getFromCache(Enum.GameObjectType.Mine, id); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 		if (mine != null) | 
			
		
	
		
			
				
					|  |  |  |  | 			return mine; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 		prepareCallable("SELECT `obj_building`.*, `object`.`parent` FROM `object` INNER JOIN `obj_building` ON `obj_building`.`UID` = `object`.`UID` WHERE `object`.`UID` = ?;"); | 
			
		
	
		
			
				
					|  |  |  |  | 		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, id); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 		setLong(1, (long) id); | 
			
		
	
		
			
				
					|  |  |  |  | 		return (Mine) getObjectSingle(id); | 
			
		
	
		
			
				
					|  |  |  |  | 			ResultSet rs = preparedStatement.executeQuery(); | 
			
		
	
		
			
				
					|  |  |  |  | 			mine = (Mine) getObjectFromRs(rs); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 		} catch (SQLException e) { | 
			
		
	
		
			
				
					|  |  |  |  | 			Logger.error(e); | 
			
		
	
		
			
				
					|  |  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  |  | 		return mine; | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	public ArrayList<Mine> GET_ALL_MINES_FOR_SERVER() { | 
			
		
	
		
			
				
					|  |  |  |  | 		prepareCallable("SELECT `obj_mine`.*, `object`.`parent` FROM `object` INNER JOIN `obj_mine` ON `obj_mine`.`UID` = `object`.`UID`"); | 
			
		
	
		
			
				
					|  |  |  |  | 		return getObjectList(); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 		ArrayList<Mine> mines = new ArrayList<>(); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 		try (Connection connection = DbManager.getConnection(); | 
			
		
	
		
			
				
					|  |  |  |  | 			 PreparedStatement preparedStatement = connection.prepareStatement("SELECT `obj_mine`.*, `object`.`parent` FROM `object` INNER JOIN `obj_mine` ON `obj_mine`.`UID` = `object`.`UID`")) { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 			ResultSet rs = preparedStatement.executeQuery(); | 
			
		
	
		
			
				
					|  |  |  |  | 			mines = getObjectsFromRs(rs, 1000); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 		} catch (SQLException e) { | 
			
		
	
		
			
				
					|  |  |  |  | 			Logger.error(e); | 
			
		
	
		
			
				
					|  |  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  |  | 		return mines; | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	public boolean CHANGE_OWNER(Mine mine, int playerUID) { | 
			
		
	
		
			
				
					|  |  |  |  | 		prepareCallable("UPDATE `obj_mine` SET `mine_ownerUID`=? WHERE `UID`=?"); | 
			
		
	
		
			
				
					|  |  |  |  | 		setInt(1, playerUID); | 
			
		
	
		
			
				
					|  |  |  |  | 		setLong(2, (long) mine.getObjectUUID()); | 
			
		
	
		
			
				
					|  |  |  |  | 		return (executeUpdate() > 0); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 		try (Connection connection = DbManager.getConnection(); | 
			
		
	
		
			
				
					|  |  |  |  | 			 PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_mine` SET `mine_ownerUID`=? WHERE `UID`=?")) { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 			preparedStatement.setInt(1, playerUID); | 
			
		
	
		
			
				
					|  |  |  |  | 			preparedStatement.setLong(2, mine.getObjectUUID()); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 			return (preparedStatement.executeUpdate() > 0); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 		} catch (SQLException e) { | 
			
		
	
		
			
				
					|  |  |  |  | 			Logger.error(e); | 
			
		
	
		
			
				
					|  |  |  |  | 			return false; | 
			
		
	
		
			
				
					|  |  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	public boolean CHANGE_RESOURCE(Mine mine, Resource resource) { | 
			
		
	
		
			
				
					|  |  |  |  | 		prepareCallable("UPDATE `obj_mine` SET `mine_resource`=? WHERE `UID`=?"); | 
			
		
	
		
			
				
					|  |  |  |  | 		setString(1, resource.name()); | 
			
		
	
		
			
				
					|  |  |  |  | 		setLong(2, (long) mine.getObjectUUID()); | 
			
		
	
		
			
				
					|  |  |  |  | 		return (executeUpdate() > 0); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 		try (Connection connection = DbManager.getConnection(); | 
			
		
	
		
			
				
					|  |  |  |  | 			 PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_mine` SET `mine_resource`=? WHERE `UID`=?")) { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 			preparedStatement.setString(1, resource.name()); | 
			
		
	
		
			
				
					|  |  |  |  | 			preparedStatement.setLong(2, mine.getObjectUUID()); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 			return (preparedStatement.executeUpdate() > 0); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 		} catch (SQLException e) { | 
			
		
	
		
			
				
					|  |  |  |  | 			Logger.error(e); | 
			
		
	
		
			
				
					|  |  |  |  | 			return false; | 
			
		
	
		
			
				
					|  |  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	public boolean CHANGE_TYPE(Mine mine, MineProduction productionType) { | 
			
		
	
		
			
				
					|  |  |  |  | 		prepareCallable("UPDATE `obj_mine` SET `mine_type`=? WHERE `UID`=?"); | 
			
		
	
		
			
				
					|  |  |  |  | 		setString(1, productionType.name()); | 
			
		
	
		
			
				
					|  |  |  |  | 		setLong(2, (long) mine.getObjectUUID()); | 
			
		
	
		
			
				
					|  |  |  |  | 		return (executeUpdate() > 0); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 		try (Connection connection = DbManager.getConnection(); | 
			
		
	
		
			
				
					|  |  |  |  | 			 PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_mine` SET `mine_type`=? WHERE `UID`=?")) { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 			preparedStatement.setString(1, productionType.name()); | 
			
		
	
		
			
				
					|  |  |  |  | 			preparedStatement.setLong(2, mine.getObjectUUID()); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 			return (preparedStatement.executeUpdate() > 0); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 		} catch (SQLException e) { | 
			
		
	
		
			
				
					|  |  |  |  | 			Logger.error(e); | 
			
		
	
		
			
				
					|  |  |  |  | 			return false; | 
			
		
	
		
			
				
					|  |  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	public boolean SET_FLAGS(Mine mine, int newFlags) { | 
			
		
	
		
			
				
					|  |  |  |  | 		prepareCallable("UPDATE `obj_mine` SET `flags`=? WHERE `UID`=?"); | 
			
		
	
		
			
				
					|  |  |  |  | 		setInt(1, newFlags); | 
			
		
	
		
			
				
					|  |  |  |  | 		setLong(2, (long) mine.getObjectUUID()); | 
			
		
	
		
			
				
					|  |  |  |  | 		return (executeUpdate() > 0); | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	public String SET_PROPERTY(final Mine m, String name, Object new_value) { | 
			
		
	
		
			
				
					|  |  |  |  | 		prepareCallable("CALL mine_SETPROP(?,?,?)"); | 
			
		
	
		
			
				
					|  |  |  |  | 		setLong(1, (long) m.getObjectUUID()); | 
			
		
	
		
			
				
					|  |  |  |  | 		setString(2, name); | 
			
		
	
		
			
				
					|  |  |  |  | 		setString(3, String.valueOf(new_value)); | 
			
		
	
		
			
				
					|  |  |  |  | 		return getResult(); | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 		try (Connection connection = DbManager.getConnection(); | 
			
		
	
		
			
				
					|  |  |  |  | 			 PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_mine` SET `flags`=? WHERE `UID`=?")) { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 			preparedStatement.setInt(1, newFlags); | 
			
		
	
		
			
				
					|  |  |  |  | 			preparedStatement.setLong(2, mine.getObjectUUID()); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 			return (preparedStatement.executeUpdate() > 0); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	// Advance all the mine windows respective to the current day
 | 
			
		
	
		
			
				
					|  |  |  |  | 	// at boot time.  This ensures that mines always go live
 | 
			
		
	
		
			
				
					|  |  |  |  | 	// no matter what date in the database
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	public String SET_PROPERTY(final Mine m, String name, Object new_value, Object old_value) { | 
			
		
	
		
			
				
					|  |  |  |  | 		prepareCallable("CALL mine_GETSETPROP(?,?,?,?)"); | 
			
		
	
		
			
				
					|  |  |  |  | 		setLong(1, (long) m.getObjectUUID()); | 
			
		
	
		
			
				
					|  |  |  |  | 		setString(2, name); | 
			
		
	
		
			
				
					|  |  |  |  | 		setString(3, String.valueOf(new_value)); | 
			
		
	
		
			
				
					|  |  |  |  | 		setString(4, String.valueOf(old_value)); | 
			
		
	
		
			
				
					|  |  |  |  | 		return getResult(); | 
			
		
	
		
			
				
					|  |  |  |  | 		} catch (SQLException e) { | 
			
		
	
		
			
				
					|  |  |  |  | 			Logger.error(e); | 
			
		
	
		
			
				
					|  |  |  |  | 			return false; | 
			
		
	
		
			
				
					|  |  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
	
		
			
				
					|  |  |  | 
 |