diff --git a/src/discord/Database.java b/src/discord/Database.java index 62888856..c5175cab 100644 --- a/src/discord/Database.java +++ b/src/discord/Database.java @@ -355,7 +355,7 @@ public class Database { return discordAccounts; } - public String getPopulationSTring() { + public String getPopulationString() { String popString = ""; diff --git a/src/discord/handlers/StatusRequestHandler.java b/src/discord/handlers/StatusRequestHandler.java index 473ca172..1ea836c6 100644 --- a/src/discord/handlers/StatusRequestHandler.java +++ b/src/discord/handlers/StatusRequestHandler.java @@ -29,7 +29,7 @@ public class StatusRequestHandler { outString += "OFFLINE\n"; if (Database.online == true) - outString += MagicBot.database.getPopulationSTring(); + outString += MagicBot.database.getPopulationString(); else outString += "Database offline: no population data."; diff --git a/src/engine/db/handlers/dbCSSessionHandler.java b/src/engine/db/handlers/dbCSSessionHandler.java index d76aa810..0fb5f1d4 100644 --- a/src/engine/db/handlers/dbCSSessionHandler.java +++ b/src/engine/db/handlers/dbCSSessionHandler.java @@ -36,27 +36,6 @@ public class dbCSSessionHandler extends dbHandlerBase { setString(5, machineID); return (executeUpdate() != 0); } - // This method returns population metrics from the database - - public String GET_POPULATION_STRING() { - - String outString = null; - - // Set up call to stored procedure - prepareCallable("CALL GET_POPULATION_STRING()"); - - try { - - // Evaluate database ordinal and return enum - outString = getString("popstring"); - - } catch (Exception e) { - Logger.error( "Failure in stored procedure:" + e.getMessage()); - } finally { - closeCallable(); - } - return outString; - } public boolean DELETE_UNUSED_CSSESSION(String secKey) { prepareCallable("DELETE FROM `dyn_session` WHERE `secretKey`=? && `characterID` IS NULL"); diff --git a/src/engine/gameManager/SimulationManager.java b/src/engine/gameManager/SimulationManager.java index ffb00a5d..478369e2 100644 --- a/src/engine/gameManager/SimulationManager.java +++ b/src/engine/gameManager/SimulationManager.java @@ -10,12 +10,17 @@ package engine.gameManager; import engine.Enum; import engine.Enum.GameObjectType; +import engine.db.archive.DataWarehouse; import engine.objects.AbstractGameObject; import engine.objects.City; import engine.objects.PlayerCharacter; import engine.objects.Runegate; import org.pmw.tinylog.Logger; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; import java.time.Duration; import java.time.Instant; import java.util.Collection; @@ -40,7 +45,7 @@ public enum SimulationManager { + RUNEGATE_PULSE; private long _updatePulseTime = System.currentTimeMillis() + UPDATE_PULSE; private long _flightPulseTime = System.currentTimeMillis() + FlIGHT_PULSE; - + public static Duration executionTime = Duration.ofNanos(1); public static Duration executionMax = Duration.ofNanos(1); @@ -49,15 +54,26 @@ public enum SimulationManager { // don't allow instantiation. } - public static String getPopulationString() { - String outString; - String newLine = System.getProperty("line.separator"); - outString = "[LUA_POPULATION()]" + newLine; - outString += DbManager.CSSessionQueries.GET_POPULATION_STRING(); - return outString; - } + public static String getPopulationString() { + + String popString = ""; + + try (Connection connection = DataWarehouse.connectionPool.getConnection(); + PreparedStatement getPopString = connection.prepareStatement("CALL GET_POPULATION_STRING()");) { + + ResultSet rs = getPopString.executeQuery(); + + if (rs.next()) + popString = rs.getString("popstring"); - /* + } catch (SQLException e) { + Logger.error(e.toString()); + } + + return popString; + } + + /* * Update the simulation. *** Important: Whatever you do in here, do it damn * quick! */