From 4a217d1a6bae89a7dad7bd311b81ed38c7662e4d Mon Sep 17 00:00:00 2001 From: MagicBot Date: Sat, 25 Jul 2026 19:07:30 -0400 Subject: [PATCH] Warehouse record needs cleanup --- .../client/handlers/DestroyBuildingHandler.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/engine/net/client/handlers/DestroyBuildingHandler.java b/src/engine/net/client/handlers/DestroyBuildingHandler.java index 5fa1be62..117bb9e5 100644 --- a/src/engine/net/client/handlers/DestroyBuildingHandler.java +++ b/src/engine/net/client/handlers/DestroyBuildingHandler.java @@ -2,6 +2,7 @@ package engine.net.client.handlers; import engine.InterestManagement.WorldGrid; import engine.gameManager.BuildingManager; +import engine.gameManager.DbManager; import engine.mbEnums; import engine.mbEnums.BuildingGroup; import engine.net.client.ClientConnection; @@ -35,7 +36,7 @@ public class DestroyBuildingHandler extends AbstractClientMsgHandler { int buildingUUID = msg.getUUID(); Building building = BuildingManager.getBuildingFromCache(buildingUUID); - ; + if (pc == null || building == null) return true; @@ -85,20 +86,28 @@ public class DestroyBuildingHandler extends AbstractClientMsgHandler { return true; - // Turn off spire if destoying + // Turn off spire if destroying if (blueprint.getBuildingGroup() == BuildingGroup.SPIRE) building.disableSpire(true); + // Warehouse requires some cleanup + if (blueprint.getBuildingGroup() == BuildingGroup.WAREHOUSE) { - if (city != null) - city.warehouse = null; + if (city == null) + return true; + + DbManager.WarehouseQueries.DELETE_WAREHOUSE(city.warehouse); + + city.warehouse = null; + } BuildingManager.setRank(building, -1); WorldGrid.RemoveWorldObject(building); WorldGrid.removeObject(building); building.getParentZone().zoneBuildingSet.remove(building); + if (building.getBlueprint() != null && building.getBlueprint().getBuildingGroup().equals(BuildingGroup.BARRACK)) { building.RemoveFromBarracksList(); }