97 lines
3.4 KiB
Java
97 lines
3.4 KiB
Java
// • ▌ ▄ ·. ▄▄▄· ▄▄ • ▪ ▄▄· ▄▄▄▄· ▄▄▄· ▐▄▄▄ ▄▄▄ .
|
|||
|
|
// ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌·
|
||
|
|
// ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀
|
||
|
|
// ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌
|
||
|
|
// ▀▀ █▪▀▀▀ ▀ ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀ ▀ ▀ ▀▀ █▪ ▀▀▀
|
||
|
|
// Magicbane Emulator Project © 2013 - 2026
|
||
|
|
// https://www.magicbane.com
|
||
|
|
|
||
|
|
|
||
|
|
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.City;
|
||
|
|
import engine.objects.PlayerCharacter;
|
||
|
|
import engine.objects.Warehouse;
|
||
|
|
|
||
|
|
import java.util.HashMap;
|
||
|
|
|
||
|
|
public class FillWarehouseCmd extends AbstractDevCmd {
|
||
|
|
|
||
|
|
public FillWarehouseCmd() {
|
||
|
|
super("fillwarehouse");
|
||
|
|
}
|
||
|
|
|
||
|
|
@Override
|
||
|
|
protected void _doCmd(PlayerCharacter pc, String[] words,
|
||
|
|
AbstractGameObject target) {
|
||
|
|
|
||
|
|
City city;
|
||
|
|
Warehouse warehouse;
|
||
|
|
int amount = Integer.MAX_VALUE;
|
||
|
|
HashMap<mbEnums.ResourceType, Integer> oldResources;
|
||
|
|
|
||
|
|
if (words.length > 1) {
|
||
|
|
this.sendUsage(pc);
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
if (words.length == 1 && !words[0].isEmpty()) {
|
||
|
|
try {
|
||
|
|
amount = Integer.parseInt(words[0]);
|
||
|
|
} catch (NumberFormatException e) {
|
||
|
|
throwbackError(pc, "Amount must be a number, " + words[0] + " is invalid");
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
if (amount < 0) {
|
||
|
|
throwbackError(pc, "Amount must be 0 or more");
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
city = ZoneManager.getCityAtLocation(pc.getLoc());
|
||
|
|
|
||
|
|
if (city == null) {
|
||
|
|
throwbackError(pc, "You are not standing in 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())
|
||
|
|
warehouse.resources.put(resourceType, Math.min(amount, resourceType.deposit_limit));
|
||
|
|
|
||
|
|
if (!DbManager.WarehouseQueries.UPDATE_WAREHOUSE(warehouse)) {
|
||
|
|
warehouse.resources.putAll(oldResources);
|
||
|
|
throwbackError(pc, "Failed to update the warehouse in the database");
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
ChatManager.chatSayInfo(pc, "Filled the " + city.getCityName() + " warehouse"
|
||
|
|
+ (amount == Integer.MAX_VALUE ? " to each deposit limit" : " with " + amount + " of each resource (capped at the deposit limit)"));
|
||
|
|
}
|
||
|
|
|
||
|
|
@Override
|
||
|
|
protected String _getHelpString() {
|
||
|
|
return "Sets every resource in the warehouse of the city you are standing in";
|
||
|
|
}
|
||
|
|
|
||
|
|
@Override
|
||
|
|
protected String _getUsageString() {
|
||
|
|
return "' ./fillwarehouse [amount]' (no amount fills each resource to its deposit limit)";
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|