From 145bb15232d47c1b59c6601fb017b164594a9dad Mon Sep 17 00:00:00 2001 From: MagicBot Date: Sun, 18 Oct 2026 09:20:21 -0400 Subject: [PATCH] Skip the warehouse delete when the owner destroys warehouse rubble city.warehouse is already null after a combat destruction, which threw in DELETE_WAREHOUSE. If a new warehouse was placed it would have deleted that one instead, so only a live (rank != -1) warehouse clears city.warehouse. Co-Authored-By: Claude Opus 5.5 --- src/engine/net/client/handlers/DestroyBuildingHandler.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/engine/net/client/handlers/DestroyBuildingHandler.java b/src/engine/net/client/handlers/DestroyBuildingHandler.java index c79beb98..b60e2916 100644 --- a/src/engine/net/client/handlers/DestroyBuildingHandler.java +++ b/src/engine/net/client/handlers/DestroyBuildingHandler.java @@ -98,9 +98,12 @@ public class DestroyBuildingHandler extends AbstractClientMsgHandler { return true; Warehouse.destroyedWarehouses.remove(building.getObjectUUID()); - DbManager.WarehouseQueries.DELETE_WAREHOUSE(city.warehouse); - city.warehouse = null; + // Rubble no longer owns city.warehouse, which may be null or a newly placed warehouse + if (city.warehouse != null && building.getRank() != -1) { + DbManager.WarehouseQueries.DELETE_WAREHOUSE(city.warehouse); + city.warehouse = null; + } }