diff --git a/src/engine/db/handlers/dbContractHandler.java b/src/engine/db/handlers/dbContractHandler.java index 5cdb69f5..33f7d851 100644 --- a/src/engine/db/handlers/dbContractHandler.java +++ b/src/engine/db/handlers/dbContractHandler.java @@ -20,6 +20,7 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; +import java.util.ArrayList; public class dbContractHandler extends dbHandlerBase { @@ -28,6 +29,24 @@ public class dbContractHandler extends dbHandlerBase { this.localObjectType = mbEnums.GameObjectType.valueOf(this.localClass.getSimpleName()); } + public void UPDATE_CONTRACTS() { + + ArrayList contracts = new ArrayList<>(); + + try (Connection connection = DbManager.getConnection(); + PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM `static_npc_contract`;")) { + + ResultSet rs = preparedStatement.executeQuery(); + contracts = getObjectsFromRs(rs, 1000); + + } catch (SQLException e) { + Logger.error(e); + } + + for (Contract contract : contracts) + DbManager.ContractQueries.updateAllowedBuildings(contract); + } + public Contract GET_CONTRACT(final int objectUUID) { Contract contract = (Contract) DbManager.getFromCache(mbEnums.GameObjectType.Contract, objectUUID); diff --git a/src/engine/objects/Contract.java b/src/engine/objects/Contract.java index d075656b..f625fec8 100644 --- a/src/engine/objects/Contract.java +++ b/src/engine/objects/Contract.java @@ -89,8 +89,6 @@ public class Contract extends AbstractGameObject { this.equipmentSet = rs.getInt("equipSetID"); this.inventorySet = rs.getInt("inventorySet"); - DbManager.ContractQueries.updateAllowedBuildings(this); - try { String menuoptions = rs.getString("menuoptions"); diff --git a/src/engine/server/world/WorldServer.java b/src/engine/server/world/WorldServer.java index a5079b09..2474a6e1 100644 --- a/src/engine/server/world/WorldServer.java +++ b/src/engine/server/world/WorldServer.java @@ -9,10 +9,6 @@ package engine.server.world; -import engine.mbEnums; -import engine.mbEnums.DispatchChannel; -import engine.mbEnums.MinionType; -import engine.mbEnums.SupportMsgType; import engine.InterestManagement.RealmMap; import engine.InterestManagement.WorldGrid; import engine.db.archive.DataWarehouse; @@ -23,6 +19,10 @@ import engine.gameManager.*; import engine.job.JobContainer; import engine.job.JobScheduler; import engine.jobs.LogoutCharacterJob; +import engine.mbEnums; +import engine.mbEnums.DispatchChannel; +import engine.mbEnums.MinionType; +import engine.mbEnums.SupportMsgType; import engine.mobileAI.Threads.MobAIThread; import engine.mobileAI.Threads.Respawner; import engine.net.DispatchMessage; @@ -455,6 +455,10 @@ public class WorldServer { Logger.info("Starting Mob Respawn Thread"); Respawner.start(); + // Update contract field + Logger.info("Starting Mob Respawn Thread"); + DbManager.ContractQueries.UPDATE_CONTRACTS(); + // Run maintenance MaintenanceManager.dailyMaintenance();