From 077dcc071debbd5ead0720fda17539edddebe9d2 Mon Sep 17 00:00:00 2001 From: MagicBot Date: Tue, 20 Oct 2026 08:42:09 -0400 Subject: [PATCH] Rename ./fillwarehouse to ./fill and require a selected warehouse The command now acts on the selected building and refuses anything whose blueprint is not a warehouse, or a warehouse that is not its city's active one, instead of using the city the player stands in. Co-Authored-By: Claude Opus 5.5 --- .../{FillWarehouseCmd.java => FillCmd.java} | 36 +++++++++++-------- src/engine/gameManager/DevCmdManager.java | 2 +- 2 files changed, 23 insertions(+), 15 deletions(-) rename src/engine/devcmd/cmds/{FillWarehouseCmd.java => FillCmd.java} (75%) diff --git a/src/engine/devcmd/cmds/FillWarehouseCmd.java b/src/engine/devcmd/cmds/FillCmd.java similarity index 75% rename from src/engine/devcmd/cmds/FillWarehouseCmd.java rename to src/engine/devcmd/cmds/FillCmd.java index 8cceccf8..7c3c6efd 100644 --- a/src/engine/devcmd/cmds/FillWarehouseCmd.java +++ b/src/engine/devcmd/cmds/FillCmd.java @@ -12,25 +12,26 @@ package engine.devcmd.cmds; import engine.devcmd.AbstractDevCmd; import engine.gameManager.ChatManager; import engine.gameManager.DbManager; -import engine.gameManager.ZoneManager; import engine.mbEnums; import engine.objects.AbstractGameObject; +import engine.objects.Building; import engine.objects.City; import engine.objects.PlayerCharacter; import engine.objects.Warehouse; import java.util.HashMap; -public class FillWarehouseCmd extends AbstractDevCmd { +public class FillCmd extends AbstractDevCmd { - public FillWarehouseCmd() { - super("fillwarehouse"); + public FillCmd() { + super("fill"); } @Override protected void _doCmd(PlayerCharacter pc, String[] words, AbstractGameObject target) { + Building building; City city; Warehouse warehouse; int amount = Integer.MAX_VALUE; @@ -55,20 +56,27 @@ public class FillWarehouseCmd extends AbstractDevCmd { } } - city = ZoneManager.getCityAtLocation(pc.getLoc()); + if (!(target instanceof Building)) { + throwbackError(pc, "Select a warehouse"); + return; + } - if (city == null) { - throwbackError(pc, "You are not standing in a city"); + building = (Building) target; + + if (building.getBlueprint() == null || building.getBlueprint().getBuildingGroup() != mbEnums.BuildingGroup.WAREHOUSE) { + throwbackError(pc, "Selected building is not a warehouse"); + return; + } + + city = building.getCity(); + + if (city == null || city.warehouse == null || city.warehouse.building != building) { + throwbackError(pc, "Selected warehouse is not the active warehouse of a city"); return; } warehouse = city.warehouse; - if (warehouse == null) { - throwbackError(pc, city.getCityName() + " has no warehouse"); - return; - } - oldResources = new HashMap<>(warehouse.resources); for (mbEnums.ResourceType resourceType : mbEnums.ResourceType.values()) @@ -86,12 +94,12 @@ public class FillWarehouseCmd extends AbstractDevCmd { @Override protected String _getHelpString() { - return "Sets every resource in the warehouse of the city you are standing in"; + return "Sets every resource in the selected warehouse"; } @Override protected String _getUsageString() { - return "' ./fillwarehouse [amount]' (no amount fills each resource to its deposit limit)"; + return "' ./fill [amount]' with a warehouse selected (no amount fills each resource to its deposit limit)"; } } diff --git a/src/engine/gameManager/DevCmdManager.java b/src/engine/gameManager/DevCmdManager.java index 364fa715..d3f01730 100644 --- a/src/engine/gameManager/DevCmdManager.java +++ b/src/engine/gameManager/DevCmdManager.java @@ -101,7 +101,7 @@ public enum DevCmdManager { DevCmdManager.registerDevCmd(new SetAdminRuneCmd()); DevCmdManager.registerDevCmd(new SetInvulCmd()); DevCmdManager.registerDevCmd(new MakeItemCmd()); - DevCmdManager.registerDevCmd(new FillWarehouseCmd()); + DevCmdManager.registerDevCmd(new FillCmd()); DevCmdManager.registerDevCmd(new SetSubRaceCmd()); // Admin