forked from MagicBane/Server
Warehosue cleanup
This commit is contained in:
@@ -13,7 +13,6 @@ import engine.Enum.GameObjectType;
|
|||||||
import engine.Enum.ProtectionState;
|
import engine.Enum.ProtectionState;
|
||||||
import engine.Enum.TransactionType;
|
import engine.Enum.TransactionType;
|
||||||
import engine.gameManager.DbManager;
|
import engine.gameManager.DbManager;
|
||||||
import engine.gameManager.WarehouseManager;
|
|
||||||
import engine.math.Vector3fImmutable;
|
import engine.math.Vector3fImmutable;
|
||||||
import engine.objects.*;
|
import engine.objects.*;
|
||||||
import engine.server.MBServerStatics;
|
import engine.server.MBServerStatics;
|
||||||
@@ -546,7 +545,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
|
|||||||
while (rs.next()) {
|
while (rs.next()) {
|
||||||
warehouse = new Warehouse(rs);
|
warehouse = new Warehouse(rs);
|
||||||
warehouse.runAfterLoad();
|
warehouse.runAfterLoad();
|
||||||
WarehouseManager.loadAllTransactions(warehouse);
|
Warehouse.loadAllTransactions(warehouse);
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
|
|||||||
@@ -14,7 +14,6 @@ import engine.Enum.ItemType;
|
|||||||
import engine.Enum.OwnerType;
|
import engine.Enum.OwnerType;
|
||||||
import engine.devcmd.AbstractDevCmd;
|
import engine.devcmd.AbstractDevCmd;
|
||||||
import engine.gameManager.DbManager;
|
import engine.gameManager.DbManager;
|
||||||
import engine.gameManager.WarehouseManager;
|
|
||||||
import engine.objects.*;
|
import engine.objects.*;
|
||||||
import engine.powers.EffectsBase;
|
import engine.powers.EffectsBase;
|
||||||
|
|
||||||
@@ -34,7 +33,7 @@ public class MakeItemCmd extends AbstractDevCmd {
|
|||||||
AbstractGameObject target) {
|
AbstractGameObject target) {
|
||||||
|
|
||||||
if (words[0].equals("resources")) {
|
if (words[0].equals("resources")) {
|
||||||
for (int ibID : WarehouseManager.getMaxResources().keySet()) {
|
for (int ibID : Warehouse.getMaxResources().keySet()) {
|
||||||
if (ibID == 7)
|
if (ibID == 7)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
@@ -54,7 +53,7 @@ public class MakeItemCmd extends AbstractDevCmd {
|
|||||||
true, false, ItemContainerType.INVENTORY, (byte) 0,
|
true, false, ItemContainerType.INVENTORY, (byte) 0,
|
||||||
new ArrayList<>(), "");
|
new ArrayList<>(), "");
|
||||||
|
|
||||||
item.setNumOfItems(WarehouseManager.getMaxResources().get(ibID));
|
item.setNumOfItems(Warehouse.getMaxResources().get(ibID));
|
||||||
|
|
||||||
try {
|
try {
|
||||||
item = DbManager.ItemQueries.ADD_ITEM(item);
|
item = DbManager.ItemQueries.ADD_ITEM(item);
|
||||||
|
|||||||
@@ -131,7 +131,7 @@ public class RemoveObjectCmd extends AbstractDevCmd {
|
|||||||
if (city != null) {
|
if (city != null) {
|
||||||
city.setWarehouseBuildingID(0);
|
city.setWarehouseBuildingID(0);
|
||||||
}
|
}
|
||||||
WarehouseManager.warehouseByBuildingUUID.remove(building.getObjectUUID());
|
Warehouse.warehouseByBuildingUUID.remove(building.getObjectUUID());
|
||||||
}
|
}
|
||||||
|
|
||||||
//remove cached shrines.
|
//remove cached shrines.
|
||||||
|
|||||||
@@ -224,7 +224,7 @@ public enum BuildingManager {
|
|||||||
break;
|
break;
|
||||||
case WAREHOUSE:
|
case WAREHOUSE:
|
||||||
|
|
||||||
Warehouse warehouse = WarehouseManager.warehouseByBuildingUUID.get(building.getObjectUUID());
|
Warehouse warehouse = Warehouse.warehouseByBuildingUUID.get(building.getObjectUUID());
|
||||||
|
|
||||||
if (warehouse == null)
|
if (warehouse == null)
|
||||||
return false;
|
return false;
|
||||||
@@ -242,7 +242,7 @@ public enum BuildingManager {
|
|||||||
if (resourceAmount <= 0)
|
if (resourceAmount <= 0)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (WarehouseManager.loot(warehouse, player, resourceBase, resourceAmount, true))
|
if (Warehouse.loot(warehouse, player, resourceBase, resourceAmount, true))
|
||||||
ChatManager.chatInfoInfo(player, "You have looted " + resourceAmount + ' ' + resourceBase.getName());
|
ChatManager.chatInfoInfo(player, "You have looted " + resourceAmount + ' ' + resourceBase.getName());
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -199,22 +199,22 @@ public enum MaintenanceManager {
|
|||||||
hasResources = false;
|
hasResources = false;
|
||||||
else {
|
else {
|
||||||
|
|
||||||
resourceValue = warehouse.resources.get(WarehouseManager.stoneIB);
|
resourceValue = warehouse.resources.get(ItemBase.getItemBase(1580000));
|
||||||
|
|
||||||
if (resourceValue < 1500)
|
if (resourceValue < 1500)
|
||||||
hasResources = false;
|
hasResources = false;
|
||||||
|
|
||||||
resourceValue = warehouse.resources.get(WarehouseManager.lumberIB);
|
resourceValue = warehouse.resources.get(ItemBase.getItemBase(1580004));
|
||||||
|
|
||||||
if (resourceValue < 1500)
|
if (resourceValue < 1500)
|
||||||
hasResources = false;
|
hasResources = false;
|
||||||
|
|
||||||
resourceValue = warehouse.resources.get(WarehouseManager.galvorIB);
|
resourceValue = warehouse.resources.get(ItemBase.getItemBase(1580017));
|
||||||
|
|
||||||
if (resourceValue < 5)
|
if (resourceValue < 5)
|
||||||
hasResources = false;
|
hasResources = false;
|
||||||
|
|
||||||
resourceValue = warehouse.resources.get(WarehouseManager.wormwoodIB);
|
resourceValue = warehouse.resources.get(ItemBase.getItemBase(1580018));
|
||||||
|
|
||||||
if (resourceValue < 5)
|
if (resourceValue < 5)
|
||||||
hasResources = false;
|
hasResources = false;
|
||||||
@@ -247,11 +247,11 @@ public enum MaintenanceManager {
|
|||||||
|
|
||||||
if (overDraft > 0) {
|
if (overDraft > 0) {
|
||||||
|
|
||||||
resourceValue = warehouse.resources.get(WarehouseManager.goldIB);
|
resourceValue = warehouse.resources.get(ItemBase.getItemBase(7));
|
||||||
|
|
||||||
if (DbManager.WarehouseQueries.updateGold(warehouse, resourceValue - overDraft) == true) {
|
if (DbManager.WarehouseQueries.updateGold(warehouse, resourceValue - overDraft) == true) {
|
||||||
warehouse.resources.put(WarehouseManager.goldIB, resourceValue - overDraft);
|
warehouse.resources.put(ItemBase.getItemBase(7), resourceValue - overDraft);
|
||||||
WarehouseManager.AddTransactionToWarehouse(warehouse, Enum.GameObjectType.Building, building.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.GOLD, overDraft);
|
Warehouse.AddTransactionToWarehouse(warehouse, Enum.GameObjectType.Building, building.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.GOLD, overDraft);
|
||||||
} else {
|
} else {
|
||||||
Logger.error("gold update failed for warehouse of UUID:" + warehouse.getObjectUUID());
|
Logger.error("gold update failed for warehouse of UUID:" + warehouse.getObjectUUID());
|
||||||
return true;
|
return true;
|
||||||
@@ -267,11 +267,11 @@ public enum MaintenanceManager {
|
|||||||
|
|
||||||
// Withdraw Stone
|
// Withdraw Stone
|
||||||
|
|
||||||
resourceValue = warehouse.resources.get(WarehouseManager.stoneIB);
|
resourceValue = warehouse.resources.get(ItemBase.getItemBase(1580000));
|
||||||
|
|
||||||
if (DbManager.WarehouseQueries.updateStone(warehouse, resourceValue - 1500) == true) {
|
if (DbManager.WarehouseQueries.updateStone(warehouse, resourceValue - 1500) == true) {
|
||||||
warehouse.resources.put(WarehouseManager.stoneIB, resourceValue - 1500);
|
warehouse.resources.put(ItemBase.getItemBase(1580000), resourceValue - 1500);
|
||||||
WarehouseManager.AddTransactionToWarehouse(warehouse, Enum.GameObjectType.Building, building.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.STONE, 1500);
|
Warehouse.AddTransactionToWarehouse(warehouse, Enum.GameObjectType.Building, building.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.STONE, 1500);
|
||||||
} else {
|
} else {
|
||||||
Logger.error("stone update failed for warehouse of UUID:" + warehouse.getObjectUUID());
|
Logger.error("stone update failed for warehouse of UUID:" + warehouse.getObjectUUID());
|
||||||
return true;
|
return true;
|
||||||
@@ -279,11 +279,11 @@ public enum MaintenanceManager {
|
|||||||
|
|
||||||
// Withdraw Lumber
|
// Withdraw Lumber
|
||||||
|
|
||||||
resourceValue = warehouse.resources.get(WarehouseManager.lumberIB);
|
resourceValue = warehouse.resources.get(ItemBase.getItemBase(1580004));
|
||||||
|
|
||||||
if (DbManager.WarehouseQueries.updateLumber(warehouse, resourceValue - 1500) == true) {
|
if (DbManager.WarehouseQueries.updateLumber(warehouse, resourceValue - 1500) == true) {
|
||||||
warehouse.resources.put(WarehouseManager.lumberIB, resourceValue - 1500);
|
warehouse.resources.put(ItemBase.getItemBase(1580004), resourceValue - 1500);
|
||||||
WarehouseManager.AddTransactionToWarehouse(warehouse, Enum.GameObjectType.Building, building.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.LUMBER, 1500);
|
Warehouse.AddTransactionToWarehouse(warehouse, Enum.GameObjectType.Building, building.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.LUMBER, 1500);
|
||||||
} else {
|
} else {
|
||||||
Logger.error("lumber update failed for warehouse of UUID:" + warehouse.getObjectUUID());
|
Logger.error("lumber update failed for warehouse of UUID:" + warehouse.getObjectUUID());
|
||||||
return true;
|
return true;
|
||||||
@@ -291,21 +291,21 @@ public enum MaintenanceManager {
|
|||||||
|
|
||||||
// Withdraw Galvor
|
// Withdraw Galvor
|
||||||
|
|
||||||
resourceValue = warehouse.resources.get(WarehouseManager.galvorIB);
|
resourceValue = warehouse.resources.get(ItemBase.getItemBase(1580017));
|
||||||
|
|
||||||
if (DbManager.WarehouseQueries.updateGalvor(warehouse, resourceValue - 5) == true) {
|
if (DbManager.WarehouseQueries.updateGalvor(warehouse, resourceValue - 5) == true) {
|
||||||
warehouse.resources.put(WarehouseManager.galvorIB, resourceValue - 5);
|
warehouse.resources.put(ItemBase.getItemBase(1580017), resourceValue - 5);
|
||||||
WarehouseManager.AddTransactionToWarehouse(warehouse, Enum.GameObjectType.Building, building.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.GALVOR, 5);
|
Warehouse.AddTransactionToWarehouse(warehouse, Enum.GameObjectType.Building, building.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.GALVOR, 5);
|
||||||
} else {
|
} else {
|
||||||
Logger.error("galvor update failed for warehouse of UUID:" + warehouse.getObjectUUID());
|
Logger.error("galvor update failed for warehouse of UUID:" + warehouse.getObjectUUID());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
resourceValue = warehouse.resources.get(WarehouseManager.wormwoodIB);
|
resourceValue = warehouse.resources.get(ItemBase.getItemBase(1580018));
|
||||||
|
|
||||||
if (DbManager.WarehouseQueries.updateWormwood(warehouse, resourceValue - 5) == true) {
|
if (DbManager.WarehouseQueries.updateWormwood(warehouse, resourceValue - 5) == true) {
|
||||||
warehouse.resources.put(WarehouseManager.wormwoodIB, resourceValue - 5);
|
warehouse.resources.put(ItemBase.getItemBase(1580018), resourceValue - 5);
|
||||||
WarehouseManager.AddTransactionToWarehouse(warehouse, Enum.GameObjectType.Building, building.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.WORMWOOD, 5);
|
Warehouse.AddTransactionToWarehouse(warehouse, Enum.GameObjectType.Building, building.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.WORMWOOD, 5);
|
||||||
} else {
|
} else {
|
||||||
Logger.error("wyrmwood update failed for warehouse of UUID:" + warehouse.getObjectUUID());
|
Logger.error("wyrmwood update failed for warehouse of UUID:" + warehouse.getObjectUUID());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,846 +0,0 @@
|
|||||||
package engine.gameManager;
|
|
||||||
|
|
||||||
import ch.claude_martin.enumbitset.EnumBitSet;
|
|
||||||
import engine.Enum;
|
|
||||||
import engine.net.Dispatch;
|
|
||||||
import engine.net.DispatchMessage;
|
|
||||||
import engine.net.client.ClientConnection;
|
|
||||||
import engine.net.client.msg.*;
|
|
||||||
import engine.objects.*;
|
|
||||||
import engine.server.MBServerStatics;
|
|
||||||
import org.joda.time.DateTime;
|
|
||||||
import org.pmw.tinylog.Logger;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
|
||||||
|
|
||||||
public class WarehouseManager {
|
|
||||||
public static ItemBase goldIB = ItemBase.getItemBase(7);
|
|
||||||
public static ItemBase stoneIB = ItemBase.getItemBase(1580000);
|
|
||||||
public static ItemBase truesteelIB = ItemBase.getItemBase(1580001);
|
|
||||||
public static ItemBase ironIB = ItemBase.getItemBase(1580002);
|
|
||||||
public static ItemBase adamantIB = ItemBase.getItemBase(1580003);
|
|
||||||
public static ItemBase lumberIB = ItemBase.getItemBase(1580004);
|
|
||||||
public static ItemBase oakIB = ItemBase.getItemBase(1580005);
|
|
||||||
public static ItemBase bronzewoodIB = ItemBase.getItemBase(1580006);
|
|
||||||
public static ItemBase mandrakeIB = ItemBase.getItemBase(1580007);
|
|
||||||
public static ItemBase coalIB = ItemBase.getItemBase(1580008);
|
|
||||||
public static ItemBase agateIB = ItemBase.getItemBase(1580009);
|
|
||||||
public static ItemBase diamondIB = ItemBase.getItemBase(1580010);
|
|
||||||
public static ItemBase onyxIB = ItemBase.getItemBase(1580011);
|
|
||||||
public static ItemBase azothIB = ItemBase.getItemBase(1580012);
|
|
||||||
public static ItemBase orichalkIB = ItemBase.getItemBase(1580013);
|
|
||||||
public static ItemBase antimonyIB = ItemBase.getItemBase(1580014);
|
|
||||||
public static ItemBase sulferIB = ItemBase.getItemBase(1580015);
|
|
||||||
public static ItemBase quicksilverIB = ItemBase.getItemBase(1580016);
|
|
||||||
public static ItemBase galvorIB = ItemBase.getItemBase(1580017);
|
|
||||||
public static ItemBase wormwoodIB = ItemBase.getItemBase(1580018);
|
|
||||||
public static ItemBase obsidianIB = ItemBase.getItemBase(1580019);
|
|
||||||
public static ItemBase bloodstoneIB = ItemBase.getItemBase(1580020);
|
|
||||||
public static ItemBase mithrilIB = ItemBase.getItemBase(1580021);
|
|
||||||
public static ConcurrentHashMap<Integer, Integer> maxResources = new ConcurrentHashMap<>();
|
|
||||||
public static ConcurrentHashMap<Integer, Warehouse> warehouseByBuildingUUID = new ConcurrentHashMap<>();
|
|
||||||
|
|
||||||
public static ConcurrentHashMap<Integer, Integer> getMaxResources() {
|
|
||||||
if (maxResources.size() != 23) {
|
|
||||||
maxResources.put(7, 100000000);
|
|
||||||
maxResources.put(1580000, 10000);
|
|
||||||
maxResources.put(1580001, 2000);
|
|
||||||
maxResources.put(1580002, 2000);
|
|
||||||
maxResources.put(1580003, 1000);
|
|
||||||
maxResources.put(1580004, 10000);
|
|
||||||
maxResources.put(1580005, 3000);
|
|
||||||
maxResources.put(1580006, 3000);
|
|
||||||
maxResources.put(1580007, 1000);
|
|
||||||
maxResources.put(1580008, 3000);
|
|
||||||
maxResources.put(1580009, 2000);
|
|
||||||
maxResources.put(1580010, 2000);
|
|
||||||
maxResources.put(1580011, 1000);
|
|
||||||
maxResources.put(1580012, 2000);
|
|
||||||
maxResources.put(1580013, 3000);
|
|
||||||
maxResources.put(1580014, 1000);
|
|
||||||
maxResources.put(1580015, 1000);
|
|
||||||
maxResources.put(1580016, 1000);
|
|
||||||
maxResources.put(1580017, 500);
|
|
||||||
maxResources.put(1580018, 500);
|
|
||||||
maxResources.put(1580019, 500);
|
|
||||||
maxResources.put(1580020, 500);
|
|
||||||
maxResources.put(1580021, 500);
|
|
||||||
}
|
|
||||||
|
|
||||||
return maxResources;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void warehouseDeposit(MerchantMsg msg, PlayerCharacter player, NPC npc) {
|
|
||||||
|
|
||||||
Building warehouseBuilding;
|
|
||||||
Warehouse warehouse;
|
|
||||||
int depositAmount;
|
|
||||||
Dispatch dispatch;
|
|
||||||
|
|
||||||
Item resource = Item.getFromCache(msg.getItemID());
|
|
||||||
|
|
||||||
if (resource == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
depositAmount = msg.getAmount();
|
|
||||||
CharacterItemManager itemMan = player.getCharItemManager();
|
|
||||||
|
|
||||||
if (!itemMan.doesCharOwnThisItem(resource.getObjectUUID()))
|
|
||||||
return;
|
|
||||||
|
|
||||||
warehouseBuilding = npc.getBuilding();
|
|
||||||
|
|
||||||
if (warehouseBuilding == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
warehouse = warehouseByBuildingUUID.get(warehouseBuilding.getObjectUUID());
|
|
||||||
|
|
||||||
if (warehouse == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
|
|
||||||
if (!WarehouseManager.deposit(player, resource, depositAmount, true, true,warehouse)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
ViewResourcesMessage vrm = new ViewResourcesMessage(player);
|
|
||||||
vrm.setGuild(player.getGuild());
|
|
||||||
vrm.setWarehouseBuilding(warehouseBuilding);
|
|
||||||
vrm.configure();
|
|
||||||
dispatch = Dispatch.borrow(player, vrm);
|
|
||||||
DispatchMessage.dispatchMsgDispatch(dispatch, Enum.DispatchChannel.SECONDARY);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void warehouseWithdraw(MerchantMsg msg, PlayerCharacter player, NPC npc) {
|
|
||||||
|
|
||||||
int withdrawAmount;
|
|
||||||
Building warehouseBuilding;
|
|
||||||
Warehouse warehouse;
|
|
||||||
Dispatch dispatch;
|
|
||||||
|
|
||||||
withdrawAmount = msg.getAmount();
|
|
||||||
warehouseBuilding = npc.getBuilding();
|
|
||||||
|
|
||||||
if (warehouseBuilding == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (player.getGuild() != warehouseBuilding.getGuild() || !GuildStatusController.isInnerCouncil(player.getGuildStatus()))
|
|
||||||
return;
|
|
||||||
|
|
||||||
warehouse = warehouseByBuildingUUID.get(warehouseBuilding.getObjectUUID());
|
|
||||||
|
|
||||||
if (warehouse == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
int hashID = msg.getHashID();
|
|
||||||
int itemBaseID = ItemBase.getItemHashIDMap().get(hashID);
|
|
||||||
ItemBase ib = ItemBase.getItemBase(itemBaseID);
|
|
||||||
|
|
||||||
if (ib == null) {
|
|
||||||
Logger.debug("Failed to find Resource ItemBaseID with Hash ID = " + hashID);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isResourceLocked(warehouse, ib)) {
|
|
||||||
ChatManager.chatSystemInfo(player, "You cannot withdrawl a locked resource.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (!withdraw(warehouse, player, ib, withdrawAmount, true, true)) {
|
|
||||||
ChatManager.chatGuildError(player, "Failed to withdrawl " + ib.getName() + '.');
|
|
||||||
Logger.debug(player.getName() + " Failed to withdrawl =" + ib.getName() + " from Warehouse With ID = " + warehouseBuilding.getObjectUUID());
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
ViewResourcesMessage vrm = new ViewResourcesMessage(player);
|
|
||||||
vrm.setGuild(player.getGuild());
|
|
||||||
vrm.setWarehouseBuilding(warehouseBuilding);
|
|
||||||
vrm.configure();
|
|
||||||
dispatch = Dispatch.borrow(player, vrm);
|
|
||||||
DispatchMessage.dispatchMsgDispatch(dispatch, Enum.DispatchChannel.SECONDARY);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void warehouseLock(MerchantMsg msg, PlayerCharacter player, NPC npc) {
|
|
||||||
Building warehouse;
|
|
||||||
int hashID;
|
|
||||||
Dispatch dispatch;
|
|
||||||
|
|
||||||
hashID = msg.getHashID();
|
|
||||||
warehouse = npc.getBuilding();
|
|
||||||
|
|
||||||
if (warehouse == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (player.getGuild() != warehouse.getGuild() || !GuildStatusController.isInnerCouncil(player.getGuildStatus()))
|
|
||||||
return;
|
|
||||||
|
|
||||||
Warehouse wh = warehouseByBuildingUUID.get(warehouse.getObjectUUID());
|
|
||||||
|
|
||||||
if (wh == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
int itemBaseID = ItemBase.getItemHashIDMap().get(hashID);
|
|
||||||
ItemBase ib = ItemBase.getItemBase(itemBaseID);
|
|
||||||
|
|
||||||
if (ib == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (isResourceLocked(wh, ib)) {
|
|
||||||
boolean worked;
|
|
||||||
EnumBitSet<Enum.ResourceType> bitSet = EnumBitSet.asEnumBitSet(wh.lockedResourceTypes.toLong(), Enum.ResourceType.class);
|
|
||||||
|
|
||||||
bitSet.remove(Enum.ResourceType.resourceLookup.get(itemBaseID));
|
|
||||||
|
|
||||||
worked = DbManager.WarehouseQueries.updateLocks(wh, bitSet.toLong());
|
|
||||||
|
|
||||||
if (worked) {
|
|
||||||
wh.lockedResourceTypes.remove(Enum.ResourceType.resourceLookup.get(itemBaseID));
|
|
||||||
ViewResourcesMessage vrm = new ViewResourcesMessage(player);
|
|
||||||
vrm.setGuild(player.getGuild());
|
|
||||||
vrm.setWarehouseBuilding(warehouse);
|
|
||||||
vrm.configure();
|
|
||||||
dispatch = Dispatch.borrow(player, vrm);
|
|
||||||
DispatchMessage.dispatchMsgDispatch(dispatch, Enum.DispatchChannel.SECONDARY);
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
EnumBitSet<Enum.ResourceType> bitSet = EnumBitSet.asEnumBitSet(wh.lockedResourceTypes.toLong(), Enum.ResourceType.class);
|
|
||||||
|
|
||||||
bitSet.add(Enum.ResourceType.resourceLookup.get(itemBaseID));
|
|
||||||
|
|
||||||
if (!DbManager.WarehouseQueries.updateLocks(wh, bitSet.toLong()))
|
|
||||||
return;
|
|
||||||
|
|
||||||
wh.lockedResourceTypes.add(Enum.ResourceType.resourceLookup.get(itemBaseID));
|
|
||||||
ViewResourcesMessage vrm = new ViewResourcesMessage(player);
|
|
||||||
vrm.setGuild(player.getGuild());
|
|
||||||
vrm.setWarehouseBuilding(warehouse);
|
|
||||||
vrm.configure();
|
|
||||||
dispatch = Dispatch.borrow(player, vrm);
|
|
||||||
DispatchMessage.dispatchMsgDispatch(dispatch, Enum.DispatchChannel.SECONDARY);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public static synchronized boolean deposit(PlayerCharacter pc, Item resource, int amount, boolean removeFromInventory, boolean transaction, Warehouse warehouse) {
|
|
||||||
|
|
||||||
ClientConnection origin = pc.getClientConnection();
|
|
||||||
if (origin == null)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (amount < 0) {
|
|
||||||
Logger.info(pc.getFirstName() + " Attempting to Dupe!!!!!!");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
ItemBase ib = resource.getItemBase();
|
|
||||||
|
|
||||||
if (ib == null)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (warehouse.resources.get(ib) == null)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
CharacterItemManager itemMan = pc.getCharItemManager();
|
|
||||||
|
|
||||||
if (itemMan == null)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
|
|
||||||
if (itemMan.getGoldTrading() > 0) {
|
|
||||||
ErrorPopupMsg.sendErrorPopup(pc, 195);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (!itemMan.doesCharOwnThisItem(resource.getObjectUUID()))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (!resource.validForInventory(origin, pc, itemMan))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (resource.getNumOfItems() < amount)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
int oldAmount = warehouse.resources.get(ib);
|
|
||||||
|
|
||||||
int newAmount = oldAmount + amount;
|
|
||||||
|
|
||||||
if (newAmount > WarehouseManager.getMaxResources().get(ib.getUUID())) {
|
|
||||||
//ChatManager.chatSystemInfo(pc, "The Warehouse is at it's maximum for this type of resource.");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (removeFromInventory) {
|
|
||||||
if (ib.getUUID() == 7) {
|
|
||||||
|
|
||||||
if (itemMan.getGoldInventory().getNumOfItems() - amount < 0)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (itemMan.getGoldInventory().getNumOfItems() - amount > MBServerStatics.PLAYER_GOLD_LIMIT)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (!itemMan.modifyInventoryGold(-amount)) {
|
|
||||||
//ChatManager.chatSystemError(pc, "You do not have this Gold.");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
UpdateGoldMsg ugm = new UpdateGoldMsg(pc);
|
|
||||||
ugm.configure();
|
|
||||||
Dispatch dispatch = Dispatch.borrow(pc, ugm);
|
|
||||||
DispatchMessage.dispatchMsgDispatch(dispatch, engine.Enum.DispatchChannel.SECONDARY);
|
|
||||||
|
|
||||||
itemMan.updateInventory();
|
|
||||||
|
|
||||||
} else {
|
|
||||||
itemMan.delete(resource);
|
|
||||||
itemMan.updateInventory();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
itemMan.updateInventory();
|
|
||||||
|
|
||||||
if (!WarehouseManager.DepositApproved(ib,amount,warehouse))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
warehouse.resources.put(ib, newAmount);
|
|
||||||
|
|
||||||
Resource resourceType;
|
|
||||||
|
|
||||||
if (resource.getItemBase().getType().equals(engine.Enum.ItemType.GOLD))
|
|
||||||
resourceType = Resource.GOLD;
|
|
||||||
else
|
|
||||||
resourceType = Resource.valueOf(resource.getItemBase().getName().toUpperCase());
|
|
||||||
|
|
||||||
if (transaction)
|
|
||||||
AddTransactionToWarehouse(warehouse, pc.getObjectType(), pc.getObjectUUID(), Enum.TransactionType.DEPOSIT, resourceType, amount);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
public static synchronized boolean depositFromMine(Mine mine, ItemBase resource, int amount, Warehouse warehouse) {
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int oldAmount = warehouse.resources.get(resource);
|
|
||||||
int newAmount = oldAmount + amount;
|
|
||||||
|
|
||||||
if (newAmount > WarehouseManager.getMaxResources().get(resource.getUUID()))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (!WarehouseManager.DepositApproved(resource,amount,warehouse))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
warehouse.resources.put(resource, newAmount);
|
|
||||||
Resource resourceType;
|
|
||||||
|
|
||||||
if (resource.getUUID() == 7)
|
|
||||||
resourceType = Resource.GOLD;
|
|
||||||
else
|
|
||||||
resourceType = Resource.valueOf(resource.getName().toUpperCase());
|
|
||||||
|
|
||||||
if (mine != null)
|
|
||||||
AddTransactionToWarehouse(warehouse, Enum.GameObjectType.Building, mine.getBuildingID(), Enum.TransactionType.MINE, resourceType, amount);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static boolean DepositApproved(ItemBase ib, int amount, Warehouse warehouse){
|
|
||||||
if (ib == null)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (warehouse.resources.get(ib) == null)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
int oldAmount = warehouse.resources.get(ib);
|
|
||||||
int newAmount = oldAmount + amount;
|
|
||||||
|
|
||||||
if (newAmount > WarehouseManager.getMaxResources().get(ib.getUUID()))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
int itemID = ib.getUUID();
|
|
||||||
boolean worked = false;
|
|
||||||
|
|
||||||
switch (itemID) {
|
|
||||||
case 7:
|
|
||||||
worked = DbManager.WarehouseQueries.updateGold(warehouse, newAmount);
|
|
||||||
break;
|
|
||||||
case 1580000:
|
|
||||||
worked = DbManager.WarehouseQueries.updateStone(warehouse, newAmount);
|
|
||||||
break;
|
|
||||||
case 1580001:
|
|
||||||
worked = DbManager.WarehouseQueries.updateTruesteel(warehouse, newAmount);
|
|
||||||
break;
|
|
||||||
case 1580002:
|
|
||||||
worked = DbManager.WarehouseQueries.updateIron(warehouse, newAmount);
|
|
||||||
break;
|
|
||||||
case 1580003:
|
|
||||||
worked = DbManager.WarehouseQueries.updateAdamant(warehouse, newAmount);
|
|
||||||
break;
|
|
||||||
case 1580004:
|
|
||||||
worked = DbManager.WarehouseQueries.updateLumber(warehouse, newAmount);
|
|
||||||
break;
|
|
||||||
case 1580005:
|
|
||||||
worked = DbManager.WarehouseQueries.updateOak(warehouse, newAmount);
|
|
||||||
break;
|
|
||||||
case 1580006:
|
|
||||||
worked = DbManager.WarehouseQueries.updateBronzewood(warehouse, newAmount);
|
|
||||||
break;
|
|
||||||
case 1580007:
|
|
||||||
worked = DbManager.WarehouseQueries.updateMandrake(warehouse, newAmount);
|
|
||||||
break;
|
|
||||||
case 1580008:
|
|
||||||
worked = DbManager.WarehouseQueries.updateCoal(warehouse, newAmount);
|
|
||||||
break;
|
|
||||||
case 1580009:
|
|
||||||
worked = DbManager.WarehouseQueries.updateAgate(warehouse, newAmount);
|
|
||||||
break;
|
|
||||||
case 1580010:
|
|
||||||
worked = DbManager.WarehouseQueries.updateDiamond(warehouse, newAmount);
|
|
||||||
break;
|
|
||||||
case 1580011:
|
|
||||||
worked = DbManager.WarehouseQueries.updateOnyx(warehouse, newAmount);
|
|
||||||
break;
|
|
||||||
case 1580012:
|
|
||||||
worked = DbManager.WarehouseQueries.updateAzoth(warehouse, newAmount);
|
|
||||||
break;
|
|
||||||
case 1580013:
|
|
||||||
worked = DbManager.WarehouseQueries.updateOrichalk(warehouse, newAmount);
|
|
||||||
break;
|
|
||||||
case 1580014:
|
|
||||||
worked = DbManager.WarehouseQueries.updateAntimony(warehouse, newAmount);
|
|
||||||
break;
|
|
||||||
case 1580015:
|
|
||||||
worked = DbManager.WarehouseQueries.updateSulfur(warehouse, newAmount);
|
|
||||||
break;
|
|
||||||
case 1580016:
|
|
||||||
worked = DbManager.WarehouseQueries.updateQuicksilver(warehouse, newAmount);
|
|
||||||
break;
|
|
||||||
case 1580017:
|
|
||||||
worked = DbManager.WarehouseQueries.updateGalvor(warehouse, newAmount);
|
|
||||||
break;
|
|
||||||
case 1580018:
|
|
||||||
worked = DbManager.WarehouseQueries.updateWormwood(warehouse, newAmount);
|
|
||||||
break;
|
|
||||||
case 1580019:
|
|
||||||
worked = DbManager.WarehouseQueries.updateObsidian(warehouse, newAmount);
|
|
||||||
break;
|
|
||||||
case 1580020:
|
|
||||||
worked = DbManager.WarehouseQueries.updateBloodstone(warehouse, newAmount);
|
|
||||||
break;
|
|
||||||
case 1580021:
|
|
||||||
worked = DbManager.WarehouseQueries.updateMithril(warehouse, newAmount);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return worked;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static synchronized void depositRealmTaxes(PlayerCharacter taxer, ItemBase ib, int amount, Warehouse warehouse) {
|
|
||||||
|
|
||||||
if (!DepositApproved(ib,amount,warehouse))
|
|
||||||
return;
|
|
||||||
|
|
||||||
int oldAmount = warehouse.resources.get(ib);
|
|
||||||
int newAmount = oldAmount + amount;
|
|
||||||
warehouse.resources.put(ib, newAmount);
|
|
||||||
Resource resourceType;
|
|
||||||
|
|
||||||
if (ib.getUUID() == 7)
|
|
||||||
resourceType = Resource.GOLD;
|
|
||||||
else
|
|
||||||
resourceType = Resource.valueOf(ib.getName().toUpperCase());
|
|
||||||
|
|
||||||
AddTransactionToWarehouse(warehouse, taxer.getObjectType(), taxer.getObjectUUID(), Enum.TransactionType.TAXRESOURCEDEPOSIT, resourceType, amount);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public static synchronized void depositProfitTax(ItemBase ib, int amount, Building building, Warehouse warehouse) {
|
|
||||||
|
|
||||||
if (ib == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (warehouse.resources.get(ib) == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
int oldAmount = warehouse.resources.get(ib);
|
|
||||||
int newAmount = oldAmount + amount;
|
|
||||||
|
|
||||||
if (newAmount > getMaxResources().get(ib.getUUID()))
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (!DepositApproved(ib,amount,warehouse))
|
|
||||||
return;
|
|
||||||
|
|
||||||
warehouse.resources.put(ib, newAmount);
|
|
||||||
Resource resourceType;
|
|
||||||
|
|
||||||
if (ib.getUUID() == 7)
|
|
||||||
resourceType = Resource.GOLD;
|
|
||||||
else
|
|
||||||
resourceType = Resource.valueOf(ib.getName().toUpperCase());
|
|
||||||
|
|
||||||
if (building != null)
|
|
||||||
AddTransactionToWarehouse(warehouse, Enum.GameObjectType.Building, building.getObjectUUID(), Enum.TransactionType.DEPOSIT, resourceType, amount);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public static boolean WithdrawApproved(ItemBase ib, int amount, Warehouse warehouse){
|
|
||||||
|
|
||||||
if (ib == null)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (warehouse.resources.get(ib) == null)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (amount <= 0)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
int oldAmount = warehouse.resources.get(ib);
|
|
||||||
|
|
||||||
if (oldAmount < amount)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
int hashID = ib.getHashID();
|
|
||||||
int newAmount = oldAmount - amount;
|
|
||||||
boolean worked = false;
|
|
||||||
|
|
||||||
switch (hashID) {
|
|
||||||
case 2308551:
|
|
||||||
worked = DbManager.WarehouseQueries.updateGold(warehouse, newAmount);
|
|
||||||
break;
|
|
||||||
case 74856115:
|
|
||||||
worked = DbManager.WarehouseQueries.updateStone(warehouse, newAmount);
|
|
||||||
break;
|
|
||||||
case -317484979:
|
|
||||||
worked = DbManager.WarehouseQueries.updateTruesteel(warehouse, newAmount);
|
|
||||||
break;
|
|
||||||
case 2504297:
|
|
||||||
worked = DbManager.WarehouseQueries.updateIron(warehouse, newAmount);
|
|
||||||
break;
|
|
||||||
case -1741189964:
|
|
||||||
worked = DbManager.WarehouseQueries.updateAdamant(warehouse, newAmount);
|
|
||||||
break;
|
|
||||||
case -1603256692:
|
|
||||||
worked = DbManager.WarehouseQueries.updateLumber(warehouse, newAmount);
|
|
||||||
break;
|
|
||||||
case 74767:
|
|
||||||
worked = DbManager.WarehouseQueries.updateOak(warehouse, newAmount);
|
|
||||||
break;
|
|
||||||
case 1334770447:
|
|
||||||
worked = DbManager.WarehouseQueries.updateBronzewood(warehouse, newAmount);
|
|
||||||
break;
|
|
||||||
case 1191391799:
|
|
||||||
worked = DbManager.WarehouseQueries.updateMandrake(warehouse, newAmount);
|
|
||||||
break;
|
|
||||||
case 2559427:
|
|
||||||
worked = DbManager.WarehouseQueries.updateCoal(warehouse, newAmount);
|
|
||||||
break;
|
|
||||||
case 75173057:
|
|
||||||
worked = DbManager.WarehouseQueries.updateAgate(warehouse, newAmount);
|
|
||||||
break;
|
|
||||||
case -1730704107:
|
|
||||||
worked = DbManager.WarehouseQueries.updateDiamond(warehouse, newAmount);
|
|
||||||
break;
|
|
||||||
case 2977263:
|
|
||||||
worked = DbManager.WarehouseQueries.updateOnyx(warehouse, newAmount);
|
|
||||||
break;
|
|
||||||
case 78329697:
|
|
||||||
worked = DbManager.WarehouseQueries.updateAzoth(warehouse, newAmount);
|
|
||||||
break;
|
|
||||||
case -2036290524:
|
|
||||||
worked = DbManager.WarehouseQueries.updateOrichalk(warehouse, newAmount);
|
|
||||||
break;
|
|
||||||
case 452320058:
|
|
||||||
worked = DbManager.WarehouseQueries.updateAntimony(warehouse, newAmount);
|
|
||||||
break;
|
|
||||||
case -1586349421:
|
|
||||||
worked = DbManager.WarehouseQueries.updateSulfur(warehouse, newAmount);
|
|
||||||
break;
|
|
||||||
case -472884509:
|
|
||||||
worked = DbManager.WarehouseQueries.updateQuicksilver(warehouse, newAmount);
|
|
||||||
break;
|
|
||||||
case -1596311545:
|
|
||||||
worked = DbManager.WarehouseQueries.updateGalvor(warehouse, newAmount);
|
|
||||||
break;
|
|
||||||
case 1532478436:
|
|
||||||
worked = DbManager.WarehouseQueries.updateWormwood(warehouse, newAmount);
|
|
||||||
break;
|
|
||||||
case -697973233:
|
|
||||||
worked = DbManager.WarehouseQueries.updateObsidian(warehouse, newAmount);
|
|
||||||
break;
|
|
||||||
case -1569826353:
|
|
||||||
worked = DbManager.WarehouseQueries.updateBloodstone(warehouse, newAmount);
|
|
||||||
break;
|
|
||||||
case -1761257186:
|
|
||||||
worked = DbManager.WarehouseQueries.updateMithril(warehouse, newAmount);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return worked;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static synchronized boolean withdraw(Warehouse warehouse, NPC npc, ItemBase ib, int amount, boolean transaction) {
|
|
||||||
|
|
||||||
int oldAmount = warehouse.resources.get(ib);
|
|
||||||
|
|
||||||
int newAmount = oldAmount - amount;
|
|
||||||
|
|
||||||
if (!WithdrawApproved(ib,amount, warehouse))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
warehouse.resources.put(ib, newAmount);
|
|
||||||
Resource resourceType;
|
|
||||||
|
|
||||||
if (ib.getUUID() == 7)
|
|
||||||
resourceType = Resource.GOLD;
|
|
||||||
else
|
|
||||||
resourceType = Resource.valueOf(ib.getName().toUpperCase());
|
|
||||||
|
|
||||||
if (transaction)
|
|
||||||
AddTransactionToWarehouse(warehouse, npc.getObjectType(), npc.getObjectUUID(), Enum.TransactionType.WITHDRAWL, resourceType, amount);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static synchronized void transferResources(Warehouse warehouse, PlayerCharacter taxer, TaxResourcesMsg msg, ArrayList<Integer> realmResources, float taxPercent) {
|
|
||||||
|
|
||||||
for (int ibID : realmResources) {
|
|
||||||
|
|
||||||
ItemBase ib = ItemBase.getItemBase(ibID);
|
|
||||||
|
|
||||||
if (ib == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (warehouse.resources.get(ib) == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
int amount = (int) (warehouse.resources.get(ib) * taxPercent);
|
|
||||||
|
|
||||||
if (amount <= 0) {
|
|
||||||
msg.getResources().put(ib.getHashID(), 0);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
int oldAmount = warehouse.resources.get(ib);
|
|
||||||
|
|
||||||
if (oldAmount < amount)
|
|
||||||
amount = oldAmount;
|
|
||||||
|
|
||||||
int newAmount = oldAmount - amount;
|
|
||||||
|
|
||||||
if (newAmount < amount)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (!WithdrawApproved(ib,amount,warehouse)) {
|
|
||||||
msg.getResources().put(ib.getHashID(), 0);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
msg.getResources().put(ib.getHashID(), amount);
|
|
||||||
|
|
||||||
warehouse.resources.put(ib, newAmount);
|
|
||||||
depositRealmTaxes(taxer, ib, amount, warehouse);
|
|
||||||
Resource resourceType;
|
|
||||||
|
|
||||||
if (ib.getUUID() == 7)
|
|
||||||
resourceType = Resource.GOLD;
|
|
||||||
else
|
|
||||||
resourceType = Resource.valueOf(ib.getName().toUpperCase());
|
|
||||||
|
|
||||||
AddTransactionToWarehouse(warehouse, taxer.getObjectType(), taxer.getObjectUUID(), Enum.TransactionType.TAXRESOURCE, resourceType, amount);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static synchronized boolean withdraw(Warehouse warehouse, PlayerCharacter pc, ItemBase ib, int amount, boolean addToInventory, boolean transaction) {
|
|
||||||
|
|
||||||
if (pc == null)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (ib == null)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (warehouse.resources.get(ib) == null)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (amount <= 0)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
CharacterItemManager itemMan = pc.getCharItemManager();
|
|
||||||
|
|
||||||
if (itemMan == null)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (addToInventory)
|
|
||||||
if (!itemMan.hasRoomInventory(ib.getWeight())) {
|
|
||||||
ChatManager.chatSystemInfo(pc, "You can not carry any more of that item.");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (addToInventory && ib.getUUID() == ItemBase.GOLD_BASE_ID) {
|
|
||||||
if (pc.getCharItemManager().getGoldInventory().getNumOfItems() + amount > MBServerStatics.PLAYER_GOLD_LIMIT) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pc.getCharItemManager().getGoldInventory().getNumOfItems() + amount < 0)
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
int oldAmount = warehouse.resources.get(ib);
|
|
||||||
|
|
||||||
if (oldAmount < amount)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
int newAmount = oldAmount - amount;
|
|
||||||
|
|
||||||
|
|
||||||
if (!WithdrawApproved(ib,amount,warehouse))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
warehouse.resources.put(ib, newAmount);
|
|
||||||
|
|
||||||
if (addToInventory) {
|
|
||||||
if (ib.getUUID() == 7) {
|
|
||||||
|
|
||||||
itemMan.addGoldToInventory(amount, false);
|
|
||||||
UpdateGoldMsg ugm = new UpdateGoldMsg(pc);
|
|
||||||
ugm.configure();
|
|
||||||
Dispatch dispatch = Dispatch.borrow(pc, ugm);
|
|
||||||
DispatchMessage.dispatchMsgDispatch(dispatch, Enum.DispatchChannel.SECONDARY);
|
|
||||||
|
|
||||||
itemMan.updateInventory();
|
|
||||||
} else {
|
|
||||||
boolean itemWorked = false;
|
|
||||||
Item item = new Item(ib, pc.getObjectUUID(), Enum.OwnerType.PlayerCharacter, (byte) 0, (byte) 0,
|
|
||||||
(short) 1, (short) 1, true, false, Enum.ItemContainerType.INVENTORY, (byte) 0,
|
|
||||||
new ArrayList<>(), "");
|
|
||||||
item.setNumOfItems(amount);
|
|
||||||
item.containerType = Enum.ItemContainerType.INVENTORY;
|
|
||||||
|
|
||||||
try {
|
|
||||||
item = DbManager.ItemQueries.ADD_ITEM(item);
|
|
||||||
itemWorked = true;
|
|
||||||
} catch (Exception e) {
|
|
||||||
Logger.error(e);
|
|
||||||
}
|
|
||||||
if (itemWorked) {
|
|
||||||
itemMan.addItemToInventory(item);
|
|
||||||
itemMan.updateInventory();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Resource resourceType;
|
|
||||||
|
|
||||||
if (ib.getUUID() == 7)
|
|
||||||
resourceType = Resource.GOLD;
|
|
||||||
else
|
|
||||||
resourceType = Resource.valueOf(ib.getName().toUpperCase());
|
|
||||||
|
|
||||||
if (transaction)
|
|
||||||
AddTransactionToWarehouse(warehouse, pc.getObjectType(), pc.getObjectUUID(), Enum.TransactionType.WITHDRAWL, resourceType, amount);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static synchronized boolean loot(Warehouse warehouse, PlayerCharacter pc, ItemBase ib, int amount, boolean addToInventory) {
|
|
||||||
|
|
||||||
if (pc == null)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (ib == null)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (warehouse.resources.get(ib) == null)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (amount <= 0)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
CharacterItemManager itemMan = pc.getCharItemManager();
|
|
||||||
|
|
||||||
if (itemMan == null)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (!itemMan.hasRoomInventory(ib.getWeight())) {
|
|
||||||
ChatManager.chatSystemInfo(pc, "You can not carry any more of that item.");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
int oldAmount = warehouse.resources.get(ib);
|
|
||||||
|
|
||||||
if (oldAmount < amount)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
int newAmount = oldAmount - amount;
|
|
||||||
|
|
||||||
warehouse.resources.put(ib, newAmount);
|
|
||||||
|
|
||||||
if (addToInventory) {
|
|
||||||
if (ib.getUUID() == 7) {
|
|
||||||
|
|
||||||
itemMan.addGoldToInventory(amount, false);
|
|
||||||
UpdateGoldMsg ugm = new UpdateGoldMsg(pc);
|
|
||||||
ugm.configure();
|
|
||||||
Dispatch dispatch = Dispatch.borrow(pc, ugm);
|
|
||||||
DispatchMessage.dispatchMsgDispatch(dispatch, Enum.DispatchChannel.SECONDARY);
|
|
||||||
|
|
||||||
itemMan.updateInventory();
|
|
||||||
} else {
|
|
||||||
boolean itemWorked = false;
|
|
||||||
Item item = new Item(ib, pc.getObjectUUID(), Enum.OwnerType.PlayerCharacter, (byte) 0, (byte) 0,
|
|
||||||
(short) 1, (short) 1, true, false, Enum.ItemContainerType.INVENTORY, (byte) 0,
|
|
||||||
new ArrayList<>(), "");
|
|
||||||
item.setNumOfItems(amount);
|
|
||||||
item.containerType = Enum.ItemContainerType.INVENTORY;
|
|
||||||
|
|
||||||
try {
|
|
||||||
item = DbManager.ItemQueries.ADD_ITEM(item);
|
|
||||||
itemWorked = true;
|
|
||||||
} catch (Exception e) {
|
|
||||||
Logger.error(e);
|
|
||||||
}
|
|
||||||
if (itemWorked) {
|
|
||||||
itemMan.addItemToInventory(item);
|
|
||||||
itemMan.updateInventory();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static boolean isEmpty(Warehouse warehouse) {
|
|
||||||
int amount = 0;
|
|
||||||
for (ItemBase ib : ItemBase.getResourceList()) {
|
|
||||||
if (amount > 0)
|
|
||||||
return false;
|
|
||||||
amount += warehouse.resources.get(ib);
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void loadAllTransactions(Warehouse warehouse) {
|
|
||||||
warehouse.transactions = DbManager.WarehouseQueries.GET_TRANSACTIONS_FOR_WAREHOUSE(warehouse.buildingUID);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void AddTransactionToWarehouse(Warehouse warehouse, Enum.GameObjectType targetType, int targetUUID, Enum.TransactionType transactionType, Resource resource, int amount) {
|
|
||||||
|
|
||||||
|
|
||||||
if (!DbManager.WarehouseQueries.CREATE_TRANSACTION(warehouse.buildingUID, targetType, targetUUID, transactionType, resource, amount, DateTime.now()))
|
|
||||||
return;
|
|
||||||
|
|
||||||
Transaction transaction = new Transaction(warehouse.buildingUID, targetType, targetUUID, transactionType, resource, amount, DateTime.now());
|
|
||||||
warehouse.transactions.add(transaction);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static boolean isAboveCap(Warehouse warehouse, ItemBase ib, int deposit) {
|
|
||||||
int newAmount = warehouse.resources.get(ib) + deposit;
|
|
||||||
return newAmount > getMaxResources().get(ib.getUUID());
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public static boolean isResourceLocked(Warehouse warehouse, ItemBase itemBase) {
|
|
||||||
|
|
||||||
Enum.ResourceType resourceType;
|
|
||||||
|
|
||||||
resourceType = Enum.ResourceType.resourceLookup.get(itemBase.getUUID());
|
|
||||||
|
|
||||||
return resourceType.elementOf(warehouse.lockedResourceTypes);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -3,7 +3,6 @@ package engine.net.client.handlers;
|
|||||||
import engine.Enum;
|
import engine.Enum;
|
||||||
import engine.exception.MsgSendException;
|
import engine.exception.MsgSendException;
|
||||||
import engine.gameManager.SessionManager;
|
import engine.gameManager.SessionManager;
|
||||||
import engine.gameManager.WarehouseManager;
|
|
||||||
import engine.net.Dispatch;
|
import engine.net.Dispatch;
|
||||||
import engine.net.DispatchMessage;
|
import engine.net.DispatchMessage;
|
||||||
import engine.net.client.ClientConnection;
|
import engine.net.client.ClientConnection;
|
||||||
@@ -38,7 +37,7 @@ public class ArcViewAssetTransactionsMsgHandler extends AbstractClientMsgHandler
|
|||||||
|
|
||||||
msg = (ArcViewAssetTransactionsMsg) baseMsg;
|
msg = (ArcViewAssetTransactionsMsg) baseMsg;
|
||||||
|
|
||||||
Warehouse warehouse = WarehouseManager.warehouseByBuildingUUID.get(msg.getWarehouseID());
|
Warehouse warehouse = Warehouse.warehouseByBuildingUUID.get(msg.getWarehouseID());
|
||||||
|
|
||||||
if (warehouse == null)
|
if (warehouse == null)
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import engine.Enum.GameObjectType;
|
|||||||
import engine.exception.MsgSendException;
|
import engine.exception.MsgSendException;
|
||||||
import engine.gameManager.BuildingManager;
|
import engine.gameManager.BuildingManager;
|
||||||
import engine.gameManager.SessionManager;
|
import engine.gameManager.SessionManager;
|
||||||
import engine.gameManager.WarehouseManager;
|
|
||||||
import engine.gameManager.ZoneManager;
|
import engine.gameManager.ZoneManager;
|
||||||
import engine.math.Bounds;
|
import engine.math.Bounds;
|
||||||
import engine.net.Dispatch;
|
import engine.net.Dispatch;
|
||||||
@@ -167,12 +166,12 @@ public class ManageCityAssetMsgHandler extends AbstractClientMsgHandler {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
Warehouse warehouse = WarehouseManager.warehouseByBuildingUUID.get(building.getObjectUUID());
|
Warehouse warehouse = Warehouse.warehouseByBuildingUUID.get(building.getObjectUUID());
|
||||||
|
|
||||||
if (warehouse == null)
|
if (warehouse == null)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
if (WarehouseManager.isEmpty(warehouse)) {
|
if (Warehouse.isEmpty(warehouse)) {
|
||||||
ErrorPopupMsg.sendErrorPopup(player, 167); // no more resources.
|
ErrorPopupMsg.sendErrorPopup(player, 167); // no more resources.
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -437,13 +437,13 @@ public class MerchantMsgHandler extends AbstractClientMsgHandler {
|
|||||||
DispatchMessage.dispatchMsgDispatch(dispatch, Enum.DispatchChannel.SECONDARY);
|
DispatchMessage.dispatchMsgDispatch(dispatch, Enum.DispatchChannel.SECONDARY);
|
||||||
break;
|
break;
|
||||||
case 17:
|
case 17:
|
||||||
WarehouseManager.warehouseWithdraw(msg, player, npc);
|
Warehouse.warehouseWithdraw(msg, player, npc);
|
||||||
break;
|
break;
|
||||||
case 18:
|
case 18:
|
||||||
WarehouseManager.warehouseDeposit(msg, player, npc);
|
Warehouse.warehouseDeposit(msg, player, npc);
|
||||||
break;
|
break;
|
||||||
case 19:
|
case 19:
|
||||||
WarehouseManager.warehouseLock(msg, player, npc);
|
Warehouse.warehouseLock(msg, player, npc);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -98,27 +98,27 @@ public class ObjectActionMsgHandler extends AbstractClientMsgHandler {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
resourceValue = warehouse.resources.get(WarehouseManager.goldIB);
|
resourceValue = warehouse.resources.get(ItemBase.getItemBase(7));
|
||||||
|
|
||||||
if (resourceValue < 5000000)
|
if (resourceValue < 5000000)
|
||||||
hasResources = false;
|
hasResources = false;
|
||||||
|
|
||||||
resourceValue = warehouse.resources.get(WarehouseManager.stoneIB);
|
resourceValue = warehouse.resources.get(ItemBase.getItemBase(1580000));
|
||||||
|
|
||||||
if (resourceValue < 8000)
|
if (resourceValue < 8000)
|
||||||
hasResources = false;
|
hasResources = false;
|
||||||
|
|
||||||
resourceValue = warehouse.resources.get(WarehouseManager.lumberIB);
|
resourceValue = warehouse.resources.get(ItemBase.getItemBase(1580004));
|
||||||
|
|
||||||
if (resourceValue < 8000)
|
if (resourceValue < 8000)
|
||||||
hasResources = false;
|
hasResources = false;
|
||||||
|
|
||||||
resourceValue = warehouse.resources.get(WarehouseManager.galvorIB);
|
resourceValue = warehouse.resources.get(ItemBase.getItemBase(1580017));
|
||||||
|
|
||||||
if (resourceValue < 15)
|
if (resourceValue < 15)
|
||||||
hasResources = false;
|
hasResources = false;
|
||||||
|
|
||||||
resourceValue = warehouse.resources.get(WarehouseManager.wormwoodIB);
|
resourceValue = warehouse.resources.get(ItemBase.getItemBase(1580018));
|
||||||
|
|
||||||
if (resourceValue < 15)
|
if (resourceValue < 15)
|
||||||
hasResources = false;
|
hasResources = false;
|
||||||
@@ -130,51 +130,51 @@ public class ObjectActionMsgHandler extends AbstractClientMsgHandler {
|
|||||||
|
|
||||||
// Remove resources from warehouse before claiming realm
|
// Remove resources from warehouse before claiming realm
|
||||||
|
|
||||||
resourceValue = warehouse.resources.get(WarehouseManager.goldIB);
|
resourceValue = warehouse.resources.get(ItemBase.getItemBase(7));
|
||||||
|
|
||||||
if (DbManager.WarehouseQueries.updateGold(warehouse, resourceValue - 5000000) == true) {
|
if (DbManager.WarehouseQueries.updateGold(warehouse, resourceValue - 5000000) == true) {
|
||||||
warehouse.resources.put(WarehouseManager.goldIB, resourceValue - 5000000);
|
warehouse.resources.put(ItemBase.getItemBase(7), resourceValue - 5000000);
|
||||||
WarehouseManager.AddTransactionToWarehouse(warehouse, engine.Enum.GameObjectType.Building, tol.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.GOLD, 5000000);
|
Warehouse.AddTransactionToWarehouse(warehouse, engine.Enum.GameObjectType.Building, tol.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.GOLD, 5000000);
|
||||||
} else {
|
} else {
|
||||||
Logger.error("gold update failed for warehouse of UUID:" + warehouse.getObjectUUID());
|
Logger.error("gold update failed for warehouse of UUID:" + warehouse.getObjectUUID());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
resourceValue = warehouse.resources.get(WarehouseManager.stoneIB);
|
resourceValue = warehouse.resources.get(ItemBase.getItemBase(1580000));
|
||||||
|
|
||||||
if (DbManager.WarehouseQueries.updateStone(warehouse, resourceValue - 8000) == true) {
|
if (DbManager.WarehouseQueries.updateStone(warehouse, resourceValue - 8000) == true) {
|
||||||
warehouse.resources.put(WarehouseManager.stoneIB, resourceValue - 8000);
|
warehouse.resources.put(ItemBase.getItemBase(1580000), resourceValue - 8000);
|
||||||
WarehouseManager.AddTransactionToWarehouse(warehouse, engine.Enum.GameObjectType.Building, tol.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.STONE, 8000);
|
Warehouse.AddTransactionToWarehouse(warehouse, engine.Enum.GameObjectType.Building, tol.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.STONE, 8000);
|
||||||
} else {
|
} else {
|
||||||
Logger.error("stone update failed for warehouse of UUID:" + warehouse.getObjectUUID());
|
Logger.error("stone update failed for warehouse of UUID:" + warehouse.getObjectUUID());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
resourceValue = warehouse.resources.get(WarehouseManager.lumberIB);
|
resourceValue = warehouse.resources.get(ItemBase.getItemBase(1580004));
|
||||||
|
|
||||||
if (DbManager.WarehouseQueries.updateLumber(warehouse, resourceValue - 8000) == true) {
|
if (DbManager.WarehouseQueries.updateLumber(warehouse, resourceValue - 8000) == true) {
|
||||||
warehouse.resources.put(WarehouseManager.lumberIB, resourceValue - 8000);
|
warehouse.resources.put(ItemBase.getItemBase(1580004), resourceValue - 8000);
|
||||||
WarehouseManager.AddTransactionToWarehouse(warehouse, engine.Enum.GameObjectType.Building, tol.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.LUMBER, 8000);
|
Warehouse.AddTransactionToWarehouse(warehouse, engine.Enum.GameObjectType.Building, tol.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.LUMBER, 8000);
|
||||||
} else {
|
} else {
|
||||||
Logger.error("lumber update failed for warehouse of UUID:" + warehouse.getObjectUUID());
|
Logger.error("lumber update failed for warehouse of UUID:" + warehouse.getObjectUUID());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
resourceValue = warehouse.resources.get(WarehouseManager.galvorIB);
|
resourceValue = warehouse.resources.get(ItemBase.getItemBase(1580017));
|
||||||
|
|
||||||
if (DbManager.WarehouseQueries.updateGalvor(warehouse, resourceValue - 15) == true) {
|
if (DbManager.WarehouseQueries.updateGalvor(warehouse, resourceValue - 15) == true) {
|
||||||
warehouse.resources.put(WarehouseManager.galvorIB, resourceValue - 15);
|
warehouse.resources.put(ItemBase.getItemBase(1580017), resourceValue - 15);
|
||||||
WarehouseManager.AddTransactionToWarehouse(warehouse, engine.Enum.GameObjectType.Building, tol.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.GALVOR, 15);
|
Warehouse.AddTransactionToWarehouse(warehouse, engine.Enum.GameObjectType.Building, tol.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.GALVOR, 15);
|
||||||
} else {
|
} else {
|
||||||
Logger.error("galvor update failed for warehouse of UUID:" + warehouse.getObjectUUID());
|
Logger.error("galvor update failed for warehouse of UUID:" + warehouse.getObjectUUID());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
resourceValue = warehouse.resources.get(WarehouseManager.wormwoodIB);
|
resourceValue = warehouse.resources.get(ItemBase.getItemBase(1580018));
|
||||||
|
|
||||||
if (DbManager.WarehouseQueries.updateWormwood(warehouse, resourceValue - 15) == true) {
|
if (DbManager.WarehouseQueries.updateWormwood(warehouse, resourceValue - 15) == true) {
|
||||||
warehouse.resources.put(WarehouseManager.wormwoodIB, resourceValue - 15);
|
warehouse.resources.put(ItemBase.getItemBase(1580018), resourceValue - 15);
|
||||||
WarehouseManager.AddTransactionToWarehouse(warehouse, engine.Enum.GameObjectType.Building, tol.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.WORMWOOD, 15);
|
Warehouse.AddTransactionToWarehouse(warehouse, engine.Enum.GameObjectType.Building, tol.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.WORMWOOD, 15);
|
||||||
} else {
|
} else {
|
||||||
Logger.error("wormwood update failed for warehouse of UUID:" + warehouse.getObjectUUID());
|
Logger.error("wormwood update failed for warehouse of UUID:" + warehouse.getObjectUUID());
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -1359,7 +1359,7 @@ public class PlaceAssetMsgHandler extends AbstractClientMsgHandler {
|
|||||||
return true;
|
return true;
|
||||||
|
|
||||||
city.setWarehouseBuildingID(newMesh.getObjectUUID());
|
city.setWarehouseBuildingID(newMesh.getObjectUUID());
|
||||||
WarehouseManager.warehouseByBuildingUUID.put(newMesh.getObjectUUID(), warehouse);
|
Warehouse.warehouseByBuildingUUID.put(newMesh.getObjectUUID(), warehouse);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ package engine.net.client.msg;
|
|||||||
|
|
||||||
import engine.Enum;
|
import engine.Enum;
|
||||||
import engine.gameManager.DbManager;
|
import engine.gameManager.DbManager;
|
||||||
import engine.gameManager.WarehouseManager;
|
|
||||||
import engine.net.AbstractConnection;
|
import engine.net.AbstractConnection;
|
||||||
import engine.net.ByteBufferReader;
|
import engine.net.ByteBufferReader;
|
||||||
import engine.net.ByteBufferWriter;
|
import engine.net.ByteBufferWriter;
|
||||||
@@ -98,7 +97,7 @@ public class ViewResourcesMessage extends ClientNetMsg {
|
|||||||
writer.putInt((warehouseObject.resources.get(ib)));
|
writer.putInt((warehouseObject.resources.get(ib)));
|
||||||
|
|
||||||
|
|
||||||
if (WarehouseManager.isResourceLocked(warehouseObject, ib) == true)
|
if (Warehouse.isResourceLocked(warehouseObject, ib) == true)
|
||||||
writer.put((byte) 1);
|
writer.put((byte) 1);
|
||||||
else
|
else
|
||||||
writer.put((byte) 0);
|
writer.put((byte) 0);
|
||||||
@@ -109,7 +108,7 @@ public class ViewResourcesMessage extends ClientNetMsg {
|
|||||||
for (ItemBase ib : warehouseObject.resources.keySet()) {
|
for (ItemBase ib : warehouseObject.resources.keySet()) {
|
||||||
writer.putInt(ib.getHashID());
|
writer.putInt(ib.getHashID());
|
||||||
writer.putInt(0); //available?
|
writer.putInt(0); //available?
|
||||||
writer.putInt(WarehouseManager.getMaxResources().get(ib.getUUID())); //max?
|
writer.putInt(Warehouse.getMaxResources().get(ib.getUUID())); //max?
|
||||||
}
|
}
|
||||||
GuildTag._serializeForDisplay(guild.getGuildTag(), writer);
|
GuildTag._serializeForDisplay(guild.getGuildTag(), writer);
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,6 @@ import engine.db.archive.DataWarehouse;
|
|||||||
import engine.db.archive.MineRecord;
|
import engine.db.archive.MineRecord;
|
||||||
import engine.gameManager.BuildingManager;
|
import engine.gameManager.BuildingManager;
|
||||||
import engine.gameManager.DbManager;
|
import engine.gameManager.DbManager;
|
||||||
import engine.gameManager.WarehouseManager;
|
|
||||||
import engine.gameManager.ZoneManager;
|
import engine.gameManager.ZoneManager;
|
||||||
import engine.job.JobContainer;
|
import engine.job.JobContainer;
|
||||||
import engine.job.JobScheduler;
|
import engine.job.JobScheduler;
|
||||||
@@ -1430,18 +1429,18 @@ public class Building extends AbstractWorldObject {
|
|||||||
if (this.getCity().getWarehouse() == null)
|
if (this.getCity().getWarehouse() == null)
|
||||||
return amount;
|
return amount;
|
||||||
|
|
||||||
if (this.getCity().getWarehouse().resources.get(ItemBase.getGoldItemBase()) >= WarehouseManager.getMaxResources().get(ItemBase.getGoldItemBase().getUUID()))
|
if (this.getCity().getWarehouse().resources.get(ItemBase.getGoldItemBase()) >= Warehouse.getMaxResources().get(ItemBase.getGoldItemBase().getUUID()))
|
||||||
return amount;
|
return amount;
|
||||||
|
|
||||||
int profitAmount = (int) (amount * (taxAmount * .01f));
|
int profitAmount = (int) (amount * (taxAmount * .01f));
|
||||||
|
|
||||||
if (this.getCity().getWarehouse().resources.get(ItemBase.getGoldItemBase()) + profitAmount <= WarehouseManager.getMaxResources().get(ItemBase.getGoldItemBase().getUUID())) {
|
if (this.getCity().getWarehouse().resources.get(ItemBase.getGoldItemBase()) + profitAmount <= Warehouse.getMaxResources().get(ItemBase.getGoldItemBase().getUUID())) {
|
||||||
WarehouseManager.depositProfitTax(ItemBase.getGoldItemBase(), profitAmount, this,this.getCity().getWarehouse());
|
Warehouse.depositProfitTax(ItemBase.getGoldItemBase(), profitAmount, this,this.getCity().getWarehouse());
|
||||||
return amount - profitAmount;
|
return amount - profitAmount;
|
||||||
}
|
}
|
||||||
//overDrafting
|
//overDrafting
|
||||||
int warehouseDeposit = WarehouseManager.getMaxResources().get(ItemBase.getGoldItemBase().getUUID()) - this.getCity().getWarehouse().resources.get(ItemBase.getGoldItemBase());
|
int warehouseDeposit = Warehouse.getMaxResources().get(ItemBase.getGoldItemBase().getUUID()) - this.getCity().getWarehouse().resources.get(ItemBase.getGoldItemBase());
|
||||||
WarehouseManager.depositProfitTax(ItemBase.getGoldItemBase(), warehouseDeposit, this,this.getCity().getWarehouse());
|
Warehouse.depositProfitTax(ItemBase.getGoldItemBase(), warehouseDeposit, this,this.getCity().getWarehouse());
|
||||||
return amount - warehouseDeposit;
|
return amount - warehouseDeposit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -342,13 +342,13 @@ public class CharacterItemManager {
|
|||||||
Warehouse warehouse = (Warehouse) object;
|
Warehouse warehouse = (Warehouse) object;
|
||||||
|
|
||||||
if (amount < 0) {
|
if (amount < 0) {
|
||||||
if (!WarehouseManager.deposit((PlayerCharacter) this.absCharacter, this.getGoldInventory(), amount * -1, true, true,warehouse)) {
|
if (!Warehouse.deposit((PlayerCharacter) this.absCharacter, this.getGoldInventory(), amount * -1, true, true,warehouse)) {
|
||||||
|
|
||||||
ErrorPopupMsg.sendErrorPopup((PlayerCharacter) this.absCharacter, 203);
|
ErrorPopupMsg.sendErrorPopup((PlayerCharacter) this.absCharacter, 203);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (!WarehouseManager.withdraw(warehouse, (PlayerCharacter) this.absCharacter, this.getGoldInventory().getItemBase(), amount * -1, true, true)) {
|
if (!Warehouse.withdraw(warehouse, (PlayerCharacter) this.absCharacter, this.getGoldInventory().getItemBase(), amount * -1, true, true)) {
|
||||||
|
|
||||||
ErrorPopupMsg.sendErrorPopup((PlayerCharacter) this.absCharacter, 203);
|
ErrorPopupMsg.sendErrorPopup((PlayerCharacter) this.absCharacter, 203);
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -875,7 +875,7 @@ public class City extends AbstractWorldObject {
|
|||||||
if (this.warehouseBuildingID == 0)
|
if (this.warehouseBuildingID == 0)
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
return WarehouseManager.warehouseByBuildingUUID.get(this.warehouseBuildingID);
|
return Warehouse.warehouseByBuildingUUID.get(this.warehouseBuildingID);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Realm getRealm() {
|
public Realm getRealm() {
|
||||||
@@ -1358,7 +1358,7 @@ public class City extends AbstractWorldObject {
|
|||||||
ItemBase ib = ItemBase.getItemBase(itemBaseID);
|
ItemBase ib = ItemBase.getItemBase(itemBaseID);
|
||||||
if (ib == null)
|
if (ib == null)
|
||||||
continue;
|
continue;
|
||||||
if (WarehouseManager.isAboveCap(ruledWarehouse, ib, (int) (city.getWarehouse().resources.get(ib) * taxPercent))) {
|
if (Warehouse.isAboveCap(ruledWarehouse, ib, (int) (city.getWarehouse().resources.get(ib) * taxPercent))) {
|
||||||
ErrorPopupMsg.sendErrorMsg(player, "You're warehouse has enough " + ib.getName() + " already!");
|
ErrorPopupMsg.sendErrorMsg(player, "You're warehouse has enough " + ib.getName() + " already!");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -1371,7 +1371,7 @@ public class City extends AbstractWorldObject {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
WarehouseManager.transferResources(city.getWarehouse(), player, msg, resources, taxPercent);
|
Warehouse.transferResources(city.getWarehouse(), player, msg, resources, taxPercent);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Logger.info(e.getMessage());
|
Logger.info(e.getMessage());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -131,7 +131,7 @@ public class ItemFactory {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (overdraft > 0 && WarehouseManager.isResourceLocked(cityWarehouse, ItemBase.GOLD_ITEM_BASE)) {
|
if (overdraft > 0 && Warehouse.isResourceLocked(cityWarehouse, ItemBase.GOLD_ITEM_BASE)) {
|
||||||
if (pc != null)
|
if (pc != null)
|
||||||
ErrorPopupMsg.sendErrorMsg(pc, "Warehouse gold is barred! Overdraft cannot be withdrawn from warehouse." + " " + ib.getName());
|
ErrorPopupMsg.sendErrorMsg(pc, "Warehouse gold is barred! Overdraft cannot be withdrawn from warehouse." + " " + ib.getName());
|
||||||
return null;
|
return null;
|
||||||
@@ -167,7 +167,7 @@ public class ItemFactory {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (overdraft > 0)
|
if (overdraft > 0)
|
||||||
if (!WarehouseManager.withdraw(cityWarehouse, npc, ItemBase.GOLD_ITEM_BASE, overdraft, true)) {
|
if (!Warehouse.withdraw(cityWarehouse, npc, ItemBase.GOLD_ITEM_BASE, overdraft, true)) {
|
||||||
//ChatManager.chatGuildError(pc, "Failed to create Item");
|
//ChatManager.chatGuildError(pc, "Failed to create Item");
|
||||||
Logger.error("Warehouse With UID of " + cityWarehouse.UID + " Failed to Create Item." + ib.getName());
|
Logger.error("Warehouse With UID of " + cityWarehouse.UID + " Failed to Create Item." + ib.getName());
|
||||||
return null;
|
return null;
|
||||||
@@ -263,7 +263,7 @@ public class ItemFactory {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (galvorAmount > 0) {
|
if (galvorAmount > 0) {
|
||||||
if (WarehouseManager.isResourceLocked(cityWarehouse, galvor)) {
|
if (Warehouse.isResourceLocked(cityWarehouse, galvor)) {
|
||||||
if (pc != null)
|
if (pc != null)
|
||||||
ErrorPopupMsg.sendErrorMsg(pc, "Galvor is locked." + ib.getName());
|
ErrorPopupMsg.sendErrorMsg(pc, "Galvor is locked." + ib.getName());
|
||||||
return null;
|
return null;
|
||||||
@@ -277,7 +277,7 @@ public class ItemFactory {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (wormwoodAmount > 0) {
|
if (wormwoodAmount > 0) {
|
||||||
if (WarehouseManager.isResourceLocked(cityWarehouse, wormwood)) {
|
if (Warehouse.isResourceLocked(cityWarehouse, wormwood)) {
|
||||||
if (pc != null)
|
if (pc != null)
|
||||||
ErrorPopupMsg.sendErrorMsg(pc, "Wormwood is locked." + ib.getName());
|
ErrorPopupMsg.sendErrorMsg(pc, "Wormwood is locked." + ib.getName());
|
||||||
return null;
|
return null;
|
||||||
@@ -320,7 +320,7 @@ public class ItemFactory {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (overdraft > 0 && WarehouseManager.isResourceLocked(cityWarehouse, ItemBase.GOLD_ITEM_BASE)) {
|
if (overdraft > 0 && Warehouse.isResourceLocked(cityWarehouse, ItemBase.GOLD_ITEM_BASE)) {
|
||||||
if (pc != null)
|
if (pc != null)
|
||||||
ErrorPopupMsg.sendErrorMsg(pc, "Warehouse gold is barred! Overdraft cannot be withdrawn from warehouse." + ib.getName());
|
ErrorPopupMsg.sendErrorMsg(pc, "Warehouse gold is barred! Overdraft cannot be withdrawn from warehouse." + ib.getName());
|
||||||
return null;
|
return null;
|
||||||
@@ -374,7 +374,7 @@ public class ItemFactory {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (overdraft > 0 && WarehouseManager.isResourceLocked(cityWarehouse, ItemBase.GOLD_ITEM_BASE)) {
|
if (overdraft > 0 && Warehouse.isResourceLocked(cityWarehouse, ItemBase.GOLD_ITEM_BASE)) {
|
||||||
if (pc != null)
|
if (pc != null)
|
||||||
ErrorPopupMsg.sendErrorMsg(pc, "Warehouse gold is barred! Overdraft cannot be withdrawn from warehouse." + ib.getName());
|
ErrorPopupMsg.sendErrorMsg(pc, "Warehouse gold is barred! Overdraft cannot be withdrawn from warehouse." + ib.getName());
|
||||||
return null;
|
return null;
|
||||||
@@ -414,7 +414,7 @@ public class ItemFactory {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (overdraft > 0 && useWarehouse && WarehouseManager.isResourceLocked(cityWarehouse, ItemBase.GOLD_ITEM_BASE)) {
|
if (overdraft > 0 && useWarehouse && Warehouse.isResourceLocked(cityWarehouse, ItemBase.GOLD_ITEM_BASE)) {
|
||||||
if (pc != null)
|
if (pc != null)
|
||||||
ErrorPopupMsg.sendErrorMsg(pc, "Warehouse gold is barred! Overdraft cannot be withdrawn from warehouse." + ib.getName());
|
ErrorPopupMsg.sendErrorMsg(pc, "Warehouse gold is barred! Overdraft cannot be withdrawn from warehouse." + ib.getName());
|
||||||
return null;
|
return null;
|
||||||
@@ -448,7 +448,7 @@ public class ItemFactory {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (overdraft > 0 && useWarehouse)
|
if (overdraft > 0 && useWarehouse)
|
||||||
if (!WarehouseManager.withdraw(cityWarehouse, npc, ItemBase.GOLD_ITEM_BASE, overdraft, true)) {
|
if (!Warehouse.withdraw(cityWarehouse, npc, ItemBase.GOLD_ITEM_BASE, overdraft, true)) {
|
||||||
//ChatManager.chatGuildError(pc, "Failed to create Item");
|
//ChatManager.chatGuildError(pc, "Failed to create Item");
|
||||||
Logger.error("Warehouse With UID of " + cityWarehouse.UID + " Failed to Create Item." + ib.getName());
|
Logger.error("Warehouse With UID of " + cityWarehouse.UID + " Failed to Create Item." + ib.getName());
|
||||||
return null;
|
return null;
|
||||||
@@ -467,7 +467,7 @@ public class ItemFactory {
|
|||||||
|
|
||||||
int creationAmount = prefixResourceCosts.get(ibResources);
|
int creationAmount = prefixResourceCosts.get(ibResources);
|
||||||
|
|
||||||
if (WarehouseManager.isResourceLocked(cityWarehouse, ibResources) == true)
|
if (Warehouse.isResourceLocked(cityWarehouse, ibResources) == true)
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
int oldAmount = cityWarehouse.resources.get(ibResources);
|
int oldAmount = cityWarehouse.resources.get(ibResources);
|
||||||
@@ -476,7 +476,7 @@ public class ItemFactory {
|
|||||||
if (oldAmount < amount)
|
if (oldAmount < amount)
|
||||||
amount = oldAmount;
|
amount = oldAmount;
|
||||||
|
|
||||||
if (!WarehouseManager.withdraw(cityWarehouse, npc, ibResources, amount, true)) {
|
if (!Warehouse.withdraw(cityWarehouse, npc, ibResources, amount, true)) {
|
||||||
//ChatManager.chatGuildError(pc, "Failed to create Item");
|
//ChatManager.chatGuildError(pc, "Failed to create Item");
|
||||||
Logger.error("Warehouse With UID of " + cityWarehouse.UID + " Failed to Create Item." + ib.getName());
|
Logger.error("Warehouse With UID of " + cityWarehouse.UID + " Failed to Create Item." + ib.getName());
|
||||||
return null;
|
return null;
|
||||||
@@ -489,7 +489,7 @@ public class ItemFactory {
|
|||||||
for (ItemBase ibResources : suffixResourceCosts.keySet()) {
|
for (ItemBase ibResources : suffixResourceCosts.keySet()) {
|
||||||
int creationAmount = suffixResourceCosts.get(ibResources);
|
int creationAmount = suffixResourceCosts.get(ibResources);
|
||||||
|
|
||||||
if (WarehouseManager.isResourceLocked(cityWarehouse, ibResources) == true) {
|
if (Warehouse.isResourceLocked(cityWarehouse, ibResources) == true) {
|
||||||
ChatManager.chatSystemError(pc, ibResources.getName() + " is locked!" + ib.getName());
|
ChatManager.chatSystemError(pc, ibResources.getName() + " is locked!" + ib.getName());
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -498,7 +498,7 @@ public class ItemFactory {
|
|||||||
int amount = creationAmount;
|
int amount = creationAmount;
|
||||||
if (oldAmount < amount)
|
if (oldAmount < amount)
|
||||||
amount = oldAmount;
|
amount = oldAmount;
|
||||||
if (!WarehouseManager.withdraw(cityWarehouse, npc, ibResources, amount, true)) {
|
if (!Warehouse.withdraw(cityWarehouse, npc, ibResources, amount, true)) {
|
||||||
//ChatManager.chatGuildError(pc, "Failed to create Item");
|
//ChatManager.chatGuildError(pc, "Failed to create Item");
|
||||||
Logger.error("Warehouse With UID of " + cityWarehouse.UID + " Failed to Create Item." + ib.getName());
|
Logger.error("Warehouse With UID of " + cityWarehouse.UID + " Failed to Create Item." + ib.getName());
|
||||||
return null;
|
return null;
|
||||||
@@ -522,7 +522,7 @@ public class ItemFactory {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (overdraft > 0 && WarehouseManager.isResourceLocked(cityWarehouse, ItemBase.GOLD_ITEM_BASE)) {
|
if (overdraft > 0 && Warehouse.isResourceLocked(cityWarehouse, ItemBase.GOLD_ITEM_BASE)) {
|
||||||
|
|
||||||
if (pc != null)
|
if (pc != null)
|
||||||
ErrorPopupMsg.sendErrorMsg(pc, "Warehouse gold is barred! Overdraft cannot be withdrawn from warehouse." + ib.getName());
|
ErrorPopupMsg.sendErrorMsg(pc, "Warehouse gold is barred! Overdraft cannot be withdrawn from warehouse." + ib.getName());
|
||||||
@@ -552,7 +552,7 @@ public class ItemFactory {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (overdraft > 0)
|
if (overdraft > 0)
|
||||||
if (!WarehouseManager.withdraw(cityWarehouse, npc, ItemBase.GOLD_ITEM_BASE, overdraft, true)) {
|
if (!Warehouse.withdraw(cityWarehouse, npc, ItemBase.GOLD_ITEM_BASE, overdraft, true)) {
|
||||||
//ChatManager.chatGuildError(pc, "Failed to create Item");
|
//ChatManager.chatGuildError(pc, "Failed to create Item");
|
||||||
Logger.error("Warehouse With UID of " + cityWarehouse.UID + " Failed to Create Item." + ib.getName());
|
Logger.error("Warehouse With UID of " + cityWarehouse.UID + " Failed to Create Item." + ib.getName());
|
||||||
return null;
|
return null;
|
||||||
@@ -561,7 +561,7 @@ public class ItemFactory {
|
|||||||
// ChatManager.chatGuildInfo(pc, "Gold Cost = " + total);
|
// ChatManager.chatGuildInfo(pc, "Gold Cost = " + total);
|
||||||
|
|
||||||
if (galvorAmount > 0) {
|
if (galvorAmount > 0) {
|
||||||
if (!WarehouseManager.withdraw(cityWarehouse, npc, galvor, galvorAmount, true)) {
|
if (!Warehouse.withdraw(cityWarehouse, npc, galvor, galvorAmount, true)) {
|
||||||
ErrorPopupMsg.sendErrorMsg(pc, "Failed to withdraw Galvor from warehouse!" + ib.getName());
|
ErrorPopupMsg.sendErrorMsg(pc, "Failed to withdraw Galvor from warehouse!" + ib.getName());
|
||||||
Logger.error("Warehouse with UID of" + cityWarehouse.getObjectUUID() + "Failed to Withdrawl ");
|
Logger.error("Warehouse with UID of" + cityWarehouse.getObjectUUID() + "Failed to Withdrawl ");
|
||||||
return null;
|
return null;
|
||||||
@@ -569,7 +569,7 @@ public class ItemFactory {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (wormwoodAmount > 0) {
|
if (wormwoodAmount > 0) {
|
||||||
if (!WarehouseManager.withdraw(cityWarehouse, npc, wormwood, wormwoodAmount, true)) {
|
if (!Warehouse.withdraw(cityWarehouse, npc, wormwood, wormwoodAmount, true)) {
|
||||||
ErrorPopupMsg.sendErrorMsg(pc, "Failed to withdraw Wormwood from warehouse!" + ib.getName());
|
ErrorPopupMsg.sendErrorMsg(pc, "Failed to withdraw Wormwood from warehouse!" + ib.getName());
|
||||||
Logger.error("Warehouse with UID of" + cityWarehouse.getObjectUUID() + "Failed to Withdrawl ");
|
Logger.error("Warehouse with UID of" + cityWarehouse.getObjectUUID() + "Failed to Withdrawl ");
|
||||||
return null;
|
return null;
|
||||||
@@ -852,7 +852,7 @@ public class ItemFactory {
|
|||||||
return null;
|
return null;
|
||||||
|
|
||||||
if (galvorAmount > 0) {
|
if (galvorAmount > 0) {
|
||||||
if (WarehouseManager.isResourceLocked(cityWarehouse, galvor)) {
|
if (Warehouse.isResourceLocked(cityWarehouse, galvor)) {
|
||||||
ErrorPopupMsg.sendErrorMsg(pc, "Galvor is locked." + ib.getName());
|
ErrorPopupMsg.sendErrorMsg(pc, "Galvor is locked." + ib.getName());
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -864,7 +864,7 @@ public class ItemFactory {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (wormwoodAmount > 0) {
|
if (wormwoodAmount > 0) {
|
||||||
if (WarehouseManager.isResourceLocked(cityWarehouse, wormwood)) {
|
if (Warehouse.isResourceLocked(cityWarehouse, wormwood)) {
|
||||||
ErrorPopupMsg.sendErrorMsg(pc, "Galvor is locked." + ib.getName());
|
ErrorPopupMsg.sendErrorMsg(pc, "Galvor is locked." + ib.getName());
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -908,7 +908,7 @@ public class ItemFactory {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (useWarehouse && overdraft > 0 && WarehouseManager.isResourceLocked(cityWarehouse, ItemBase.GOLD_ITEM_BASE)) {
|
if (useWarehouse && overdraft > 0 && Warehouse.isResourceLocked(cityWarehouse, ItemBase.GOLD_ITEM_BASE)) {
|
||||||
if (pc != null)
|
if (pc != null)
|
||||||
ErrorPopupMsg.sendErrorMsg(pc, "Warehouse gold is barred! Overdraft cannot be withdrawn from warehouse." + ib.getName());
|
ErrorPopupMsg.sendErrorMsg(pc, "Warehouse gold is barred! Overdraft cannot be withdrawn from warehouse." + ib.getName());
|
||||||
return null;
|
return null;
|
||||||
@@ -936,12 +936,12 @@ public class ItemFactory {
|
|||||||
// there was an overdraft, withdraw the rest from warehouse.
|
// there was an overdraft, withdraw the rest from warehouse.
|
||||||
if (overdraft > 0) {
|
if (overdraft > 0) {
|
||||||
if (pc != null) {
|
if (pc != null) {
|
||||||
if (!WarehouseManager.withdraw(cityWarehouse, pc, ItemBase.GOLD_ITEM_BASE, overdraft, false, true)) {
|
if (!Warehouse.withdraw(cityWarehouse, pc, ItemBase.GOLD_ITEM_BASE, overdraft, false, true)) {
|
||||||
Logger.error("Warehouse with UID of" + cityWarehouse.getObjectUUID() + "Failed to Withdrawl ");
|
Logger.error("Warehouse with UID of" + cityWarehouse.getObjectUUID() + "Failed to Withdrawl ");
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (!WarehouseManager.withdraw(cityWarehouse, npc, ItemBase.GOLD_ITEM_BASE, overdraft, true)) {
|
if (!Warehouse.withdraw(cityWarehouse, npc, ItemBase.GOLD_ITEM_BASE, overdraft, true)) {
|
||||||
Logger.error("Warehouse with UID of" + cityWarehouse.getObjectUUID() + "Failed to Withdrawl ");
|
Logger.error("Warehouse with UID of" + cityWarehouse.getObjectUUID() + "Failed to Withdrawl ");
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -959,7 +959,7 @@ public class ItemFactory {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (useWarehouse && overdraft > 0 && WarehouseManager.isResourceLocked(cityWarehouse, ItemBase.GOLD_ITEM_BASE)) {
|
if (useWarehouse && overdraft > 0 && Warehouse.isResourceLocked(cityWarehouse, ItemBase.GOLD_ITEM_BASE)) {
|
||||||
if (pc != null)
|
if (pc != null)
|
||||||
ErrorPopupMsg.sendErrorMsg(pc, "Warehouse gold is barred! Overdraft cannot be withdrawn from warehouse." + ib.getName());
|
ErrorPopupMsg.sendErrorMsg(pc, "Warehouse gold is barred! Overdraft cannot be withdrawn from warehouse." + ib.getName());
|
||||||
return null;
|
return null;
|
||||||
@@ -987,12 +987,12 @@ public class ItemFactory {
|
|||||||
if (overdraft > 0 && useWarehouse) {
|
if (overdraft > 0 && useWarehouse) {
|
||||||
|
|
||||||
if (pc != null) {
|
if (pc != null) {
|
||||||
if (!WarehouseManager.withdraw(cityWarehouse, pc, ItemBase.GOLD_ITEM_BASE, overdraft, false, true)) {
|
if (!Warehouse.withdraw(cityWarehouse, pc, ItemBase.GOLD_ITEM_BASE, overdraft, false, true)) {
|
||||||
Logger.error("Warehouse with UID of" + cityWarehouse.getObjectUUID() + "Failed to Withdrawl ");
|
Logger.error("Warehouse with UID of" + cityWarehouse.getObjectUUID() + "Failed to Withdrawl ");
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (!WarehouseManager.withdraw(cityWarehouse, npc, ItemBase.GOLD_ITEM_BASE, overdraft, true)) {
|
if (!Warehouse.withdraw(cityWarehouse, npc, ItemBase.GOLD_ITEM_BASE, overdraft, true)) {
|
||||||
Logger.error("Warehouse with UID of" + cityWarehouse.getObjectUUID() + "Failed to Withdrawl ");
|
Logger.error("Warehouse with UID of" + cityWarehouse.getObjectUUID() + "Failed to Withdrawl ");
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -1002,7 +1002,7 @@ public class ItemFactory {
|
|||||||
|
|
||||||
if (galvorAmount > 0 && useWarehouse) {
|
if (galvorAmount > 0 && useWarehouse) {
|
||||||
//ChatManager.chatGuildInfo(pc, "Withdrawing " + galvorAmount + " galvor from warehouse");
|
//ChatManager.chatGuildInfo(pc, "Withdrawing " + galvorAmount + " galvor from warehouse");
|
||||||
if (!WarehouseManager.withdraw(cityWarehouse, npc, galvor, galvorAmount, true)) {
|
if (!Warehouse.withdraw(cityWarehouse, npc, galvor, galvorAmount, true)) {
|
||||||
ErrorPopupMsg.sendErrorMsg(pc, "Failed to withdraw Galvor from warehouse!" + ib.getName());
|
ErrorPopupMsg.sendErrorMsg(pc, "Failed to withdraw Galvor from warehouse!" + ib.getName());
|
||||||
Logger.error("Warehouse with UID of" + cityWarehouse.getObjectUUID() + "Failed to Withdrawl ");
|
Logger.error("Warehouse with UID of" + cityWarehouse.getObjectUUID() + "Failed to Withdrawl ");
|
||||||
return null;
|
return null;
|
||||||
@@ -1011,7 +1011,7 @@ public class ItemFactory {
|
|||||||
|
|
||||||
if (wormwoodAmount > 0 && useWarehouse) {
|
if (wormwoodAmount > 0 && useWarehouse) {
|
||||||
//ChatManager.chatGuildInfo(pc, "Withdrawing " + wormwoodAmount + " wormwood from warehouse");
|
//ChatManager.chatGuildInfo(pc, "Withdrawing " + wormwoodAmount + " wormwood from warehouse");
|
||||||
if (!WarehouseManager.withdraw(cityWarehouse, npc, wormwood, wormwoodAmount, true)) {
|
if (!Warehouse.withdraw(cityWarehouse, npc, wormwood, wormwoodAmount, true)) {
|
||||||
ErrorPopupMsg.sendErrorMsg(pc, "Failed to withdraw Wormwood from warehouse for " + ib.getName());
|
ErrorPopupMsg.sendErrorMsg(pc, "Failed to withdraw Wormwood from warehouse for " + ib.getName());
|
||||||
Logger.error("Warehouse with UID of" + cityWarehouse.getObjectUUID() + "Failed to Withdrawl ");
|
Logger.error("Warehouse with UID of" + cityWarehouse.getObjectUUID() + "Failed to Withdrawl ");
|
||||||
|
|
||||||
|
|||||||
@@ -480,7 +480,7 @@ public class Mine extends AbstractGameObject {
|
|||||||
return false;
|
return false;
|
||||||
|
|
||||||
ItemBase resourceIB = ItemBase.getItemBase(this.production.UUID);
|
ItemBase resourceIB = ItemBase.getItemBase(this.production.UUID);
|
||||||
return WarehouseManager.depositFromMine(this, resourceIB, this.getModifiedProductionAmount(),this.owningGuild.getOwnedCity().getWarehouse());
|
return Warehouse.depositFromMine(this, resourceIB, this.getModifiedProductionAmount(),this.owningGuild.getOwnedCity().getWarehouse());
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean updateGuildOwner(PlayerCharacter playerCharacter) {
|
public boolean updateGuildOwner(PlayerCharacter playerCharacter) {
|
||||||
|
|||||||
@@ -12,7 +12,14 @@ package engine.objects;
|
|||||||
import ch.claude_martin.enumbitset.EnumBitSet;
|
import ch.claude_martin.enumbitset.EnumBitSet;
|
||||||
import engine.Enum;
|
import engine.Enum;
|
||||||
import engine.gameManager.BuildingManager;
|
import engine.gameManager.BuildingManager;
|
||||||
import engine.gameManager.WarehouseManager;
|
import engine.gameManager.ChatManager;
|
||||||
|
import engine.gameManager.DbManager;
|
||||||
|
import engine.net.Dispatch;
|
||||||
|
import engine.net.DispatchMessage;
|
||||||
|
import engine.net.client.ClientConnection;
|
||||||
|
import engine.net.client.msg.*;
|
||||||
|
import engine.server.MBServerStatics;
|
||||||
|
import org.joda.time.DateTime;
|
||||||
import org.pmw.tinylog.Logger;
|
import org.pmw.tinylog.Logger;
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
@@ -22,6 +29,8 @@ import java.util.concurrent.ConcurrentHashMap;
|
|||||||
public class Warehouse extends AbstractWorldObject {
|
public class Warehouse extends AbstractWorldObject {
|
||||||
|
|
||||||
|
|
||||||
|
public static ConcurrentHashMap<Integer, Integer> maxResources = new ConcurrentHashMap<>();
|
||||||
|
public static ConcurrentHashMap<Integer, Warehouse> warehouseByBuildingUUID = new ConcurrentHashMap<>();
|
||||||
public EnumBitSet<Enum.ResourceType> lockedResourceTypes;
|
public EnumBitSet<Enum.ResourceType> lockedResourceTypes;
|
||||||
public int UID;
|
public int UID;
|
||||||
public int buildingUID;
|
public int buildingUID;
|
||||||
@@ -35,32 +44,837 @@ public class Warehouse extends AbstractWorldObject {
|
|||||||
public Warehouse(ResultSet rs) throws SQLException {
|
public Warehouse(ResultSet rs) throws SQLException {
|
||||||
super(rs);
|
super(rs);
|
||||||
this.UID = rs.getInt("UID");
|
this.UID = rs.getInt("UID");
|
||||||
this.resources.put(WarehouseManager.stoneIB, rs.getInt("warehouse_stone"));
|
this.resources.put(ItemBase.getItemBase(1580000), rs.getInt("warehouse_stone"));
|
||||||
this.resources.put(WarehouseManager.truesteelIB, rs.getInt("warehouse_truesteel"));
|
this.resources.put(ItemBase.getItemBase(1580001), rs.getInt("warehouse_truesteel"));
|
||||||
this.resources.put(WarehouseManager.ironIB, rs.getInt("warehouse_iron"));
|
this.resources.put(ItemBase.getItemBase(1580002), rs.getInt("warehouse_iron"));
|
||||||
this.resources.put(WarehouseManager.adamantIB, rs.getInt("warehouse_adamant"));
|
this.resources.put(ItemBase.getItemBase(1580003), rs.getInt("warehouse_adamant"));
|
||||||
this.resources.put(WarehouseManager.lumberIB, rs.getInt("warehouse_lumber"));
|
this.resources.put(ItemBase.getItemBase(1580004), rs.getInt("warehouse_lumber"));
|
||||||
this.resources.put(WarehouseManager.oakIB, rs.getInt("warehouse_oak"));
|
this.resources.put(ItemBase.getItemBase(1580005), rs.getInt("warehouse_oak"));
|
||||||
this.resources.put(WarehouseManager.bronzewoodIB, rs.getInt("warehouse_bronzewood"));
|
this.resources.put(ItemBase.getItemBase(1580006), rs.getInt("warehouse_bronzewood"));
|
||||||
this.resources.put(WarehouseManager.mandrakeIB, rs.getInt("warehouse_mandrake"));
|
this.resources.put(ItemBase.getItemBase(1580007), rs.getInt("warehouse_mandrake"));
|
||||||
this.resources.put(WarehouseManager.coalIB, rs.getInt("warehouse_coal"));
|
this.resources.put(ItemBase.getItemBase(1580008), rs.getInt("warehouse_coal"));
|
||||||
this.resources.put(WarehouseManager.agateIB, rs.getInt("warehouse_agate"));
|
this.resources.put(ItemBase.getItemBase(1580009), rs.getInt("warehouse_agate"));
|
||||||
this.resources.put(WarehouseManager.diamondIB, rs.getInt("warehouse_diamond"));
|
this.resources.put(ItemBase.getItemBase(1580010), rs.getInt("warehouse_diamond"));
|
||||||
this.resources.put(WarehouseManager.onyxIB, rs.getInt("warehouse_onyx"));
|
this.resources.put(ItemBase.getItemBase(1580011), rs.getInt("warehouse_onyx"));
|
||||||
this.resources.put(WarehouseManager.azothIB, rs.getInt("warehouse_azoth"));
|
this.resources.put(ItemBase.getItemBase(1580012), rs.getInt("warehouse_azoth"));
|
||||||
this.resources.put(WarehouseManager.orichalkIB, rs.getInt("warehouse_orichalk"));
|
this.resources.put(ItemBase.getItemBase(1580013), rs.getInt("warehouse_orichalk"));
|
||||||
this.resources.put(WarehouseManager.antimonyIB, rs.getInt("warehouse_antimony"));
|
this.resources.put(ItemBase.getItemBase(1580014), rs.getInt("warehouse_antimony"));
|
||||||
this.resources.put(WarehouseManager.sulferIB, rs.getInt("warehouse_sulfur"));
|
this.resources.put(ItemBase.getItemBase(1580015), rs.getInt("warehouse_sulfur"));
|
||||||
this.resources.put(WarehouseManager.quicksilverIB, rs.getInt("warehouse_quicksilver"));
|
this.resources.put(ItemBase.getItemBase(1580016), rs.getInt("warehouse_quicksilver"));
|
||||||
this.resources.put(WarehouseManager.galvorIB, rs.getInt("warehouse_galvor"));
|
this.resources.put(ItemBase.getItemBase(1580017), rs.getInt("warehouse_galvor"));
|
||||||
this.resources.put(WarehouseManager.wormwoodIB, rs.getInt("warehouse_wormwood"));
|
this.resources.put(ItemBase.getItemBase(1580018), rs.getInt("warehouse_wormwood"));
|
||||||
this.resources.put(WarehouseManager.obsidianIB, rs.getInt("warehouse_obsidian"));
|
this.resources.put(ItemBase.getItemBase(1580019), rs.getInt("warehouse_obsidian"));
|
||||||
this.resources.put(WarehouseManager.bloodstoneIB, rs.getInt("warehouse_bloodstone"));
|
this.resources.put(ItemBase.getItemBase(1580020), rs.getInt("warehouse_bloodstone"));
|
||||||
this.resources.put(WarehouseManager.mithrilIB, rs.getInt("warehouse_mithril"));
|
this.resources.put(ItemBase.getItemBase(1580021), rs.getInt("warehouse_mithril"));
|
||||||
this.resources.put(WarehouseManager.goldIB, rs.getInt("warehouse_gold"));
|
this.resources.put(ItemBase.getItemBase(7), rs.getInt("warehouse_gold"));
|
||||||
this.lockedResourceTypes = EnumBitSet.asEnumBitSet(rs.getLong("warehouse_locks"), Enum.ResourceType.class);
|
this.lockedResourceTypes = EnumBitSet.asEnumBitSet(rs.getLong("warehouse_locks"), Enum.ResourceType.class);
|
||||||
this.buildingUID = rs.getInt("parent");
|
this.buildingUID = rs.getInt("parent");
|
||||||
WarehouseManager.warehouseByBuildingUUID.put(this.buildingUID, this);
|
warehouseByBuildingUUID.put(this.buildingUID, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ConcurrentHashMap<Integer, Integer> getMaxResources() {
|
||||||
|
if (maxResources.size() != 23) {
|
||||||
|
maxResources.put(7, 100000000);
|
||||||
|
maxResources.put(1580000, 10000);
|
||||||
|
maxResources.put(1580001, 2000);
|
||||||
|
maxResources.put(1580002, 2000);
|
||||||
|
maxResources.put(1580003, 1000);
|
||||||
|
maxResources.put(1580004, 10000);
|
||||||
|
maxResources.put(1580005, 3000);
|
||||||
|
maxResources.put(1580006, 3000);
|
||||||
|
maxResources.put(1580007, 1000);
|
||||||
|
maxResources.put(1580008, 3000);
|
||||||
|
maxResources.put(1580009, 2000);
|
||||||
|
maxResources.put(1580010, 2000);
|
||||||
|
maxResources.put(1580011, 1000);
|
||||||
|
maxResources.put(1580012, 2000);
|
||||||
|
maxResources.put(1580013, 3000);
|
||||||
|
maxResources.put(1580014, 1000);
|
||||||
|
maxResources.put(1580015, 1000);
|
||||||
|
maxResources.put(1580016, 1000);
|
||||||
|
maxResources.put(1580017, 500);
|
||||||
|
maxResources.put(1580018, 500);
|
||||||
|
maxResources.put(1580019, 500);
|
||||||
|
maxResources.put(1580020, 500);
|
||||||
|
maxResources.put(1580021, 500);
|
||||||
|
}
|
||||||
|
|
||||||
|
return maxResources;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void warehouseDeposit(MerchantMsg msg, PlayerCharacter player, NPC npc) {
|
||||||
|
|
||||||
|
Building warehouseBuilding;
|
||||||
|
Warehouse warehouse;
|
||||||
|
int depositAmount;
|
||||||
|
Dispatch dispatch;
|
||||||
|
|
||||||
|
Item resource = Item.getFromCache(msg.getItemID());
|
||||||
|
|
||||||
|
if (resource == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
depositAmount = msg.getAmount();
|
||||||
|
CharacterItemManager itemMan = player.getCharItemManager();
|
||||||
|
|
||||||
|
if (!itemMan.doesCharOwnThisItem(resource.getObjectUUID()))
|
||||||
|
return;
|
||||||
|
|
||||||
|
warehouseBuilding = npc.getBuilding();
|
||||||
|
|
||||||
|
if (warehouseBuilding == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
warehouse = warehouseByBuildingUUID.get(warehouseBuilding.getObjectUUID());
|
||||||
|
|
||||||
|
if (warehouse == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
|
||||||
|
if (!deposit(player, resource, depositAmount, true, true,warehouse)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ViewResourcesMessage vrm = new ViewResourcesMessage(player);
|
||||||
|
vrm.setGuild(player.getGuild());
|
||||||
|
vrm.setWarehouseBuilding(warehouseBuilding);
|
||||||
|
vrm.configure();
|
||||||
|
dispatch = Dispatch.borrow(player, vrm);
|
||||||
|
DispatchMessage.dispatchMsgDispatch(dispatch, Enum.DispatchChannel.SECONDARY);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void warehouseWithdraw(MerchantMsg msg, PlayerCharacter player, NPC npc) {
|
||||||
|
|
||||||
|
int withdrawAmount;
|
||||||
|
Building warehouseBuilding;
|
||||||
|
Warehouse warehouse;
|
||||||
|
Dispatch dispatch;
|
||||||
|
|
||||||
|
withdrawAmount = msg.getAmount();
|
||||||
|
warehouseBuilding = npc.getBuilding();
|
||||||
|
|
||||||
|
if (warehouseBuilding == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (player.getGuild() != warehouseBuilding.getGuild() || !GuildStatusController.isInnerCouncil(player.getGuildStatus()))
|
||||||
|
return;
|
||||||
|
|
||||||
|
warehouse = warehouseByBuildingUUID.get(warehouseBuilding.getObjectUUID());
|
||||||
|
|
||||||
|
if (warehouse == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
int hashID = msg.getHashID();
|
||||||
|
int itemBaseID = ItemBase.getItemHashIDMap().get(hashID);
|
||||||
|
ItemBase ib = ItemBase.getItemBase(itemBaseID);
|
||||||
|
|
||||||
|
if (ib == null) {
|
||||||
|
Logger.debug("Failed to find Resource ItemBaseID with Hash ID = " + hashID);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isResourceLocked(warehouse, ib)) {
|
||||||
|
ChatManager.chatSystemInfo(player, "You cannot withdrawl a locked resource.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!withdraw(warehouse, player, ib, withdrawAmount, true, true)) {
|
||||||
|
ChatManager.chatGuildError(player, "Failed to withdrawl " + ib.getName() + '.');
|
||||||
|
Logger.debug(player.getName() + " Failed to withdrawl =" + ib.getName() + " from Warehouse With ID = " + warehouseBuilding.getObjectUUID());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ViewResourcesMessage vrm = new ViewResourcesMessage(player);
|
||||||
|
vrm.setGuild(player.getGuild());
|
||||||
|
vrm.setWarehouseBuilding(warehouseBuilding);
|
||||||
|
vrm.configure();
|
||||||
|
dispatch = Dispatch.borrow(player, vrm);
|
||||||
|
DispatchMessage.dispatchMsgDispatch(dispatch, Enum.DispatchChannel.SECONDARY);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void warehouseLock(MerchantMsg msg, PlayerCharacter player, NPC npc) {
|
||||||
|
Building warehouse;
|
||||||
|
int hashID;
|
||||||
|
Dispatch dispatch;
|
||||||
|
|
||||||
|
hashID = msg.getHashID();
|
||||||
|
warehouse = npc.getBuilding();
|
||||||
|
|
||||||
|
if (warehouse == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (player.getGuild() != warehouse.getGuild() || !GuildStatusController.isInnerCouncil(player.getGuildStatus()))
|
||||||
|
return;
|
||||||
|
|
||||||
|
Warehouse wh = warehouseByBuildingUUID.get(warehouse.getObjectUUID());
|
||||||
|
|
||||||
|
if (wh == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
int itemBaseID = ItemBase.getItemHashIDMap().get(hashID);
|
||||||
|
ItemBase ib = ItemBase.getItemBase(itemBaseID);
|
||||||
|
|
||||||
|
if (ib == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (isResourceLocked(wh, ib)) {
|
||||||
|
boolean worked;
|
||||||
|
EnumBitSet<Enum.ResourceType> bitSet = EnumBitSet.asEnumBitSet(wh.lockedResourceTypes.toLong(), Enum.ResourceType.class);
|
||||||
|
|
||||||
|
bitSet.remove(Enum.ResourceType.resourceLookup.get(itemBaseID));
|
||||||
|
|
||||||
|
worked = DbManager.WarehouseQueries.updateLocks(wh, bitSet.toLong());
|
||||||
|
|
||||||
|
if (worked) {
|
||||||
|
wh.lockedResourceTypes.remove(Enum.ResourceType.resourceLookup.get(itemBaseID));
|
||||||
|
ViewResourcesMessage vrm = new ViewResourcesMessage(player);
|
||||||
|
vrm.setGuild(player.getGuild());
|
||||||
|
vrm.setWarehouseBuilding(warehouse);
|
||||||
|
vrm.configure();
|
||||||
|
dispatch = Dispatch.borrow(player, vrm);
|
||||||
|
DispatchMessage.dispatchMsgDispatch(dispatch, Enum.DispatchChannel.SECONDARY);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
EnumBitSet<Enum.ResourceType> bitSet = EnumBitSet.asEnumBitSet(wh.lockedResourceTypes.toLong(), Enum.ResourceType.class);
|
||||||
|
|
||||||
|
bitSet.add(Enum.ResourceType.resourceLookup.get(itemBaseID));
|
||||||
|
|
||||||
|
if (!DbManager.WarehouseQueries.updateLocks(wh, bitSet.toLong()))
|
||||||
|
return;
|
||||||
|
|
||||||
|
wh.lockedResourceTypes.add(Enum.ResourceType.resourceLookup.get(itemBaseID));
|
||||||
|
ViewResourcesMessage vrm = new ViewResourcesMessage(player);
|
||||||
|
vrm.setGuild(player.getGuild());
|
||||||
|
vrm.setWarehouseBuilding(warehouse);
|
||||||
|
vrm.configure();
|
||||||
|
dispatch = Dispatch.borrow(player, vrm);
|
||||||
|
DispatchMessage.dispatchMsgDispatch(dispatch, Enum.DispatchChannel.SECONDARY);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static synchronized boolean deposit(PlayerCharacter pc, Item resource, int amount, boolean removeFromInventory, boolean transaction, Warehouse warehouse) {
|
||||||
|
|
||||||
|
ClientConnection origin = pc.getClientConnection();
|
||||||
|
if (origin == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (amount < 0) {
|
||||||
|
Logger.info(pc.getFirstName() + " Attempting to Dupe!!!!!!");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemBase ib = resource.getItemBase();
|
||||||
|
|
||||||
|
if (ib == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (warehouse.resources.get(ib) == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
CharacterItemManager itemMan = pc.getCharItemManager();
|
||||||
|
|
||||||
|
if (itemMan == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
|
||||||
|
if (itemMan.getGoldTrading() > 0) {
|
||||||
|
ErrorPopupMsg.sendErrorPopup(pc, 195);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (!itemMan.doesCharOwnThisItem(resource.getObjectUUID()))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (!resource.validForInventory(origin, pc, itemMan))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (resource.getNumOfItems() < amount)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
int oldAmount = warehouse.resources.get(ib);
|
||||||
|
|
||||||
|
int newAmount = oldAmount + amount;
|
||||||
|
|
||||||
|
if (newAmount > getMaxResources().get(ib.getUUID())) {
|
||||||
|
//ChatManager.chatSystemInfo(pc, "The Warehouse is at it's maximum for this type of resource.");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (removeFromInventory) {
|
||||||
|
if (ib.getUUID() == 7) {
|
||||||
|
|
||||||
|
if (itemMan.getGoldInventory().getNumOfItems() - amount < 0)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (itemMan.getGoldInventory().getNumOfItems() - amount > MBServerStatics.PLAYER_GOLD_LIMIT)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (!itemMan.modifyInventoryGold(-amount)) {
|
||||||
|
//ChatManager.chatSystemError(pc, "You do not have this Gold.");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
UpdateGoldMsg ugm = new UpdateGoldMsg(pc);
|
||||||
|
ugm.configure();
|
||||||
|
Dispatch dispatch = Dispatch.borrow(pc, ugm);
|
||||||
|
DispatchMessage.dispatchMsgDispatch(dispatch, Enum.DispatchChannel.SECONDARY);
|
||||||
|
|
||||||
|
itemMan.updateInventory();
|
||||||
|
|
||||||
|
} else {
|
||||||
|
itemMan.delete(resource);
|
||||||
|
itemMan.updateInventory();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
itemMan.updateInventory();
|
||||||
|
|
||||||
|
if (!DepositApproved(ib,amount,warehouse))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
warehouse.resources.put(ib, newAmount);
|
||||||
|
|
||||||
|
Resource resourceType;
|
||||||
|
|
||||||
|
if (resource.getItemBase().getType().equals(Enum.ItemType.GOLD))
|
||||||
|
resourceType = Resource.GOLD;
|
||||||
|
else
|
||||||
|
resourceType = Resource.valueOf(resource.getItemBase().getName().toUpperCase());
|
||||||
|
|
||||||
|
if (transaction)
|
||||||
|
AddTransactionToWarehouse(warehouse, pc.getObjectType(), pc.getObjectUUID(), Enum.TransactionType.DEPOSIT, resourceType, amount);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static synchronized boolean depositFromMine(Mine mine, ItemBase resource, int amount, Warehouse warehouse) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
int oldAmount = warehouse.resources.get(resource);
|
||||||
|
int newAmount = oldAmount + amount;
|
||||||
|
|
||||||
|
if (newAmount > getMaxResources().get(resource.getUUID()))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (!DepositApproved(resource,amount,warehouse))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
warehouse.resources.put(resource, newAmount);
|
||||||
|
Resource resourceType;
|
||||||
|
|
||||||
|
if (resource.getUUID() == 7)
|
||||||
|
resourceType = Resource.GOLD;
|
||||||
|
else
|
||||||
|
resourceType = Resource.valueOf(resource.getName().toUpperCase());
|
||||||
|
|
||||||
|
if (mine != null)
|
||||||
|
AddTransactionToWarehouse(warehouse, Enum.GameObjectType.Building, mine.getBuildingID(), Enum.TransactionType.MINE, resourceType, amount);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean DepositApproved(ItemBase ib, int amount, Warehouse warehouse){
|
||||||
|
if (ib == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (warehouse.resources.get(ib) == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
int oldAmount = warehouse.resources.get(ib);
|
||||||
|
int newAmount = oldAmount + amount;
|
||||||
|
|
||||||
|
if (newAmount > getMaxResources().get(ib.getUUID()))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
int itemID = ib.getUUID();
|
||||||
|
boolean worked = false;
|
||||||
|
|
||||||
|
switch (itemID) {
|
||||||
|
case 7:
|
||||||
|
worked = DbManager.WarehouseQueries.updateGold(warehouse, newAmount);
|
||||||
|
break;
|
||||||
|
case 1580000:
|
||||||
|
worked = DbManager.WarehouseQueries.updateStone(warehouse, newAmount);
|
||||||
|
break;
|
||||||
|
case 1580001:
|
||||||
|
worked = DbManager.WarehouseQueries.updateTruesteel(warehouse, newAmount);
|
||||||
|
break;
|
||||||
|
case 1580002:
|
||||||
|
worked = DbManager.WarehouseQueries.updateIron(warehouse, newAmount);
|
||||||
|
break;
|
||||||
|
case 1580003:
|
||||||
|
worked = DbManager.WarehouseQueries.updateAdamant(warehouse, newAmount);
|
||||||
|
break;
|
||||||
|
case 1580004:
|
||||||
|
worked = DbManager.WarehouseQueries.updateLumber(warehouse, newAmount);
|
||||||
|
break;
|
||||||
|
case 1580005:
|
||||||
|
worked = DbManager.WarehouseQueries.updateOak(warehouse, newAmount);
|
||||||
|
break;
|
||||||
|
case 1580006:
|
||||||
|
worked = DbManager.WarehouseQueries.updateBronzewood(warehouse, newAmount);
|
||||||
|
break;
|
||||||
|
case 1580007:
|
||||||
|
worked = DbManager.WarehouseQueries.updateMandrake(warehouse, newAmount);
|
||||||
|
break;
|
||||||
|
case 1580008:
|
||||||
|
worked = DbManager.WarehouseQueries.updateCoal(warehouse, newAmount);
|
||||||
|
break;
|
||||||
|
case 1580009:
|
||||||
|
worked = DbManager.WarehouseQueries.updateAgate(warehouse, newAmount);
|
||||||
|
break;
|
||||||
|
case 1580010:
|
||||||
|
worked = DbManager.WarehouseQueries.updateDiamond(warehouse, newAmount);
|
||||||
|
break;
|
||||||
|
case 1580011:
|
||||||
|
worked = DbManager.WarehouseQueries.updateOnyx(warehouse, newAmount);
|
||||||
|
break;
|
||||||
|
case 1580012:
|
||||||
|
worked = DbManager.WarehouseQueries.updateAzoth(warehouse, newAmount);
|
||||||
|
break;
|
||||||
|
case 1580013:
|
||||||
|
worked = DbManager.WarehouseQueries.updateOrichalk(warehouse, newAmount);
|
||||||
|
break;
|
||||||
|
case 1580014:
|
||||||
|
worked = DbManager.WarehouseQueries.updateAntimony(warehouse, newAmount);
|
||||||
|
break;
|
||||||
|
case 1580015:
|
||||||
|
worked = DbManager.WarehouseQueries.updateSulfur(warehouse, newAmount);
|
||||||
|
break;
|
||||||
|
case 1580016:
|
||||||
|
worked = DbManager.WarehouseQueries.updateQuicksilver(warehouse, newAmount);
|
||||||
|
break;
|
||||||
|
case 1580017:
|
||||||
|
worked = DbManager.WarehouseQueries.updateGalvor(warehouse, newAmount);
|
||||||
|
break;
|
||||||
|
case 1580018:
|
||||||
|
worked = DbManager.WarehouseQueries.updateWormwood(warehouse, newAmount);
|
||||||
|
break;
|
||||||
|
case 1580019:
|
||||||
|
worked = DbManager.WarehouseQueries.updateObsidian(warehouse, newAmount);
|
||||||
|
break;
|
||||||
|
case 1580020:
|
||||||
|
worked = DbManager.WarehouseQueries.updateBloodstone(warehouse, newAmount);
|
||||||
|
break;
|
||||||
|
case 1580021:
|
||||||
|
worked = DbManager.WarehouseQueries.updateMithril(warehouse, newAmount);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return worked;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static synchronized void depositRealmTaxes(PlayerCharacter taxer, ItemBase ib, int amount, Warehouse warehouse) {
|
||||||
|
|
||||||
|
if (!DepositApproved(ib,amount,warehouse))
|
||||||
|
return;
|
||||||
|
|
||||||
|
int oldAmount = warehouse.resources.get(ib);
|
||||||
|
int newAmount = oldAmount + amount;
|
||||||
|
warehouse.resources.put(ib, newAmount);
|
||||||
|
Resource resourceType;
|
||||||
|
|
||||||
|
if (ib.getUUID() == 7)
|
||||||
|
resourceType = Resource.GOLD;
|
||||||
|
else
|
||||||
|
resourceType = Resource.valueOf(ib.getName().toUpperCase());
|
||||||
|
|
||||||
|
AddTransactionToWarehouse(warehouse, taxer.getObjectType(), taxer.getObjectUUID(), Enum.TransactionType.TAXRESOURCEDEPOSIT, resourceType, amount);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static synchronized void depositProfitTax(ItemBase ib, int amount, Building building, Warehouse warehouse) {
|
||||||
|
|
||||||
|
if (ib == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (warehouse.resources.get(ib) == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
int oldAmount = warehouse.resources.get(ib);
|
||||||
|
int newAmount = oldAmount + amount;
|
||||||
|
|
||||||
|
if (newAmount > getMaxResources().get(ib.getUUID()))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!DepositApproved(ib,amount,warehouse))
|
||||||
|
return;
|
||||||
|
|
||||||
|
warehouse.resources.put(ib, newAmount);
|
||||||
|
Resource resourceType;
|
||||||
|
|
||||||
|
if (ib.getUUID() == 7)
|
||||||
|
resourceType = Resource.GOLD;
|
||||||
|
else
|
||||||
|
resourceType = Resource.valueOf(ib.getName().toUpperCase());
|
||||||
|
|
||||||
|
if (building != null)
|
||||||
|
AddTransactionToWarehouse(warehouse, Enum.GameObjectType.Building, building.getObjectUUID(), Enum.TransactionType.DEPOSIT, resourceType, amount);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean WithdrawApproved(ItemBase ib, int amount, Warehouse warehouse){
|
||||||
|
|
||||||
|
if (ib == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (warehouse.resources.get(ib) == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (amount <= 0)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
int oldAmount = warehouse.resources.get(ib);
|
||||||
|
|
||||||
|
if (oldAmount < amount)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
int hashID = ib.getHashID();
|
||||||
|
int newAmount = oldAmount - amount;
|
||||||
|
boolean worked = false;
|
||||||
|
|
||||||
|
switch (hashID) {
|
||||||
|
case 2308551:
|
||||||
|
worked = DbManager.WarehouseQueries.updateGold(warehouse, newAmount);
|
||||||
|
break;
|
||||||
|
case 74856115:
|
||||||
|
worked = DbManager.WarehouseQueries.updateStone(warehouse, newAmount);
|
||||||
|
break;
|
||||||
|
case -317484979:
|
||||||
|
worked = DbManager.WarehouseQueries.updateTruesteel(warehouse, newAmount);
|
||||||
|
break;
|
||||||
|
case 2504297:
|
||||||
|
worked = DbManager.WarehouseQueries.updateIron(warehouse, newAmount);
|
||||||
|
break;
|
||||||
|
case -1741189964:
|
||||||
|
worked = DbManager.WarehouseQueries.updateAdamant(warehouse, newAmount);
|
||||||
|
break;
|
||||||
|
case -1603256692:
|
||||||
|
worked = DbManager.WarehouseQueries.updateLumber(warehouse, newAmount);
|
||||||
|
break;
|
||||||
|
case 74767:
|
||||||
|
worked = DbManager.WarehouseQueries.updateOak(warehouse, newAmount);
|
||||||
|
break;
|
||||||
|
case 1334770447:
|
||||||
|
worked = DbManager.WarehouseQueries.updateBronzewood(warehouse, newAmount);
|
||||||
|
break;
|
||||||
|
case 1191391799:
|
||||||
|
worked = DbManager.WarehouseQueries.updateMandrake(warehouse, newAmount);
|
||||||
|
break;
|
||||||
|
case 2559427:
|
||||||
|
worked = DbManager.WarehouseQueries.updateCoal(warehouse, newAmount);
|
||||||
|
break;
|
||||||
|
case 75173057:
|
||||||
|
worked = DbManager.WarehouseQueries.updateAgate(warehouse, newAmount);
|
||||||
|
break;
|
||||||
|
case -1730704107:
|
||||||
|
worked = DbManager.WarehouseQueries.updateDiamond(warehouse, newAmount);
|
||||||
|
break;
|
||||||
|
case 2977263:
|
||||||
|
worked = DbManager.WarehouseQueries.updateOnyx(warehouse, newAmount);
|
||||||
|
break;
|
||||||
|
case 78329697:
|
||||||
|
worked = DbManager.WarehouseQueries.updateAzoth(warehouse, newAmount);
|
||||||
|
break;
|
||||||
|
case -2036290524:
|
||||||
|
worked = DbManager.WarehouseQueries.updateOrichalk(warehouse, newAmount);
|
||||||
|
break;
|
||||||
|
case 452320058:
|
||||||
|
worked = DbManager.WarehouseQueries.updateAntimony(warehouse, newAmount);
|
||||||
|
break;
|
||||||
|
case -1586349421:
|
||||||
|
worked = DbManager.WarehouseQueries.updateSulfur(warehouse, newAmount);
|
||||||
|
break;
|
||||||
|
case -472884509:
|
||||||
|
worked = DbManager.WarehouseQueries.updateQuicksilver(warehouse, newAmount);
|
||||||
|
break;
|
||||||
|
case -1596311545:
|
||||||
|
worked = DbManager.WarehouseQueries.updateGalvor(warehouse, newAmount);
|
||||||
|
break;
|
||||||
|
case 1532478436:
|
||||||
|
worked = DbManager.WarehouseQueries.updateWormwood(warehouse, newAmount);
|
||||||
|
break;
|
||||||
|
case -697973233:
|
||||||
|
worked = DbManager.WarehouseQueries.updateObsidian(warehouse, newAmount);
|
||||||
|
break;
|
||||||
|
case -1569826353:
|
||||||
|
worked = DbManager.WarehouseQueries.updateBloodstone(warehouse, newAmount);
|
||||||
|
break;
|
||||||
|
case -1761257186:
|
||||||
|
worked = DbManager.WarehouseQueries.updateMithril(warehouse, newAmount);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return worked;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static synchronized boolean withdraw(Warehouse warehouse, NPC npc, ItemBase ib, int amount, boolean transaction) {
|
||||||
|
|
||||||
|
int oldAmount = warehouse.resources.get(ib);
|
||||||
|
|
||||||
|
int newAmount = oldAmount - amount;
|
||||||
|
|
||||||
|
if (!WithdrawApproved(ib,amount, warehouse))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
warehouse.resources.put(ib, newAmount);
|
||||||
|
Resource resourceType;
|
||||||
|
|
||||||
|
if (ib.getUUID() == 7)
|
||||||
|
resourceType = Resource.GOLD;
|
||||||
|
else
|
||||||
|
resourceType = Resource.valueOf(ib.getName().toUpperCase());
|
||||||
|
|
||||||
|
if (transaction)
|
||||||
|
AddTransactionToWarehouse(warehouse, npc.getObjectType(), npc.getObjectUUID(), Enum.TransactionType.WITHDRAWL, resourceType, amount);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static synchronized void transferResources(Warehouse warehouse, PlayerCharacter taxer, TaxResourcesMsg msg, ArrayList<Integer> realmResources, float taxPercent) {
|
||||||
|
|
||||||
|
for (int ibID : realmResources) {
|
||||||
|
|
||||||
|
ItemBase ib = ItemBase.getItemBase(ibID);
|
||||||
|
|
||||||
|
if (ib == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (warehouse.resources.get(ib) == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
int amount = (int) (warehouse.resources.get(ib) * taxPercent);
|
||||||
|
|
||||||
|
if (amount <= 0) {
|
||||||
|
msg.getResources().put(ib.getHashID(), 0);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
int oldAmount = warehouse.resources.get(ib);
|
||||||
|
|
||||||
|
if (oldAmount < amount)
|
||||||
|
amount = oldAmount;
|
||||||
|
|
||||||
|
int newAmount = oldAmount - amount;
|
||||||
|
|
||||||
|
if (newAmount < amount)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (!WithdrawApproved(ib,amount,warehouse)) {
|
||||||
|
msg.getResources().put(ib.getHashID(), 0);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
msg.getResources().put(ib.getHashID(), amount);
|
||||||
|
|
||||||
|
warehouse.resources.put(ib, newAmount);
|
||||||
|
depositRealmTaxes(taxer, ib, amount, warehouse);
|
||||||
|
Resource resourceType;
|
||||||
|
|
||||||
|
if (ib.getUUID() == 7)
|
||||||
|
resourceType = Resource.GOLD;
|
||||||
|
else
|
||||||
|
resourceType = Resource.valueOf(ib.getName().toUpperCase());
|
||||||
|
|
||||||
|
AddTransactionToWarehouse(warehouse, taxer.getObjectType(), taxer.getObjectUUID(), Enum.TransactionType.TAXRESOURCE, resourceType, amount);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static synchronized boolean withdraw(Warehouse warehouse, PlayerCharacter pc, ItemBase ib, int amount, boolean addToInventory, boolean transaction) {
|
||||||
|
|
||||||
|
if (pc == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (ib == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (warehouse.resources.get(ib) == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (amount <= 0)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
CharacterItemManager itemMan = pc.getCharItemManager();
|
||||||
|
|
||||||
|
if (itemMan == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (addToInventory)
|
||||||
|
if (!itemMan.hasRoomInventory(ib.getWeight())) {
|
||||||
|
ChatManager.chatSystemInfo(pc, "You can not carry any more of that item.");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (addToInventory && ib.getUUID() == ItemBase.GOLD_BASE_ID) {
|
||||||
|
if (pc.getCharItemManager().getGoldInventory().getNumOfItems() + amount > MBServerStatics.PLAYER_GOLD_LIMIT) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pc.getCharItemManager().getGoldInventory().getNumOfItems() + amount < 0)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
int oldAmount = warehouse.resources.get(ib);
|
||||||
|
|
||||||
|
if (oldAmount < amount)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
int newAmount = oldAmount - amount;
|
||||||
|
|
||||||
|
|
||||||
|
if (!WithdrawApproved(ib,amount,warehouse))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
warehouse.resources.put(ib, newAmount);
|
||||||
|
|
||||||
|
if (addToInventory) {
|
||||||
|
if (ib.getUUID() == 7) {
|
||||||
|
|
||||||
|
itemMan.addGoldToInventory(amount, false);
|
||||||
|
UpdateGoldMsg ugm = new UpdateGoldMsg(pc);
|
||||||
|
ugm.configure();
|
||||||
|
Dispatch dispatch = Dispatch.borrow(pc, ugm);
|
||||||
|
DispatchMessage.dispatchMsgDispatch(dispatch, Enum.DispatchChannel.SECONDARY);
|
||||||
|
|
||||||
|
itemMan.updateInventory();
|
||||||
|
} else {
|
||||||
|
boolean itemWorked = false;
|
||||||
|
Item item = new Item(ib, pc.getObjectUUID(), Enum.OwnerType.PlayerCharacter, (byte) 0, (byte) 0,
|
||||||
|
(short) 1, (short) 1, true, false, Enum.ItemContainerType.INVENTORY, (byte) 0,
|
||||||
|
new ArrayList<>(), "");
|
||||||
|
item.setNumOfItems(amount);
|
||||||
|
item.containerType = Enum.ItemContainerType.INVENTORY;
|
||||||
|
|
||||||
|
try {
|
||||||
|
item = DbManager.ItemQueries.ADD_ITEM(item);
|
||||||
|
itemWorked = true;
|
||||||
|
} catch (Exception e) {
|
||||||
|
Logger.error(e);
|
||||||
|
}
|
||||||
|
if (itemWorked) {
|
||||||
|
itemMan.addItemToInventory(item);
|
||||||
|
itemMan.updateInventory();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Resource resourceType;
|
||||||
|
|
||||||
|
if (ib.getUUID() == 7)
|
||||||
|
resourceType = Resource.GOLD;
|
||||||
|
else
|
||||||
|
resourceType = Resource.valueOf(ib.getName().toUpperCase());
|
||||||
|
|
||||||
|
if (transaction)
|
||||||
|
AddTransactionToWarehouse(warehouse, pc.getObjectType(), pc.getObjectUUID(), Enum.TransactionType.WITHDRAWL, resourceType, amount);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static synchronized boolean loot(Warehouse warehouse, PlayerCharacter pc, ItemBase ib, int amount, boolean addToInventory) {
|
||||||
|
|
||||||
|
if (pc == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (ib == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (warehouse.resources.get(ib) == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (amount <= 0)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
CharacterItemManager itemMan = pc.getCharItemManager();
|
||||||
|
|
||||||
|
if (itemMan == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (!itemMan.hasRoomInventory(ib.getWeight())) {
|
||||||
|
ChatManager.chatSystemInfo(pc, "You can not carry any more of that item.");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
int oldAmount = warehouse.resources.get(ib);
|
||||||
|
|
||||||
|
if (oldAmount < amount)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
int newAmount = oldAmount - amount;
|
||||||
|
|
||||||
|
warehouse.resources.put(ib, newAmount);
|
||||||
|
|
||||||
|
if (addToInventory) {
|
||||||
|
if (ib.getUUID() == 7) {
|
||||||
|
|
||||||
|
itemMan.addGoldToInventory(amount, false);
|
||||||
|
UpdateGoldMsg ugm = new UpdateGoldMsg(pc);
|
||||||
|
ugm.configure();
|
||||||
|
Dispatch dispatch = Dispatch.borrow(pc, ugm);
|
||||||
|
DispatchMessage.dispatchMsgDispatch(dispatch, Enum.DispatchChannel.SECONDARY);
|
||||||
|
|
||||||
|
itemMan.updateInventory();
|
||||||
|
} else {
|
||||||
|
boolean itemWorked = false;
|
||||||
|
Item item = new Item(ib, pc.getObjectUUID(), Enum.OwnerType.PlayerCharacter, (byte) 0, (byte) 0,
|
||||||
|
(short) 1, (short) 1, true, false, Enum.ItemContainerType.INVENTORY, (byte) 0,
|
||||||
|
new ArrayList<>(), "");
|
||||||
|
item.setNumOfItems(amount);
|
||||||
|
item.containerType = Enum.ItemContainerType.INVENTORY;
|
||||||
|
|
||||||
|
try {
|
||||||
|
item = DbManager.ItemQueries.ADD_ITEM(item);
|
||||||
|
itemWorked = true;
|
||||||
|
} catch (Exception e) {
|
||||||
|
Logger.error(e);
|
||||||
|
}
|
||||||
|
if (itemWorked) {
|
||||||
|
itemMan.addItemToInventory(item);
|
||||||
|
itemMan.updateInventory();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isEmpty(Warehouse warehouse) {
|
||||||
|
int amount = 0;
|
||||||
|
for (ItemBase ib : ItemBase.getResourceList()) {
|
||||||
|
if (amount > 0)
|
||||||
|
return false;
|
||||||
|
amount += warehouse.resources.get(ib);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void loadAllTransactions(Warehouse warehouse) {
|
||||||
|
warehouse.transactions = DbManager.WarehouseQueries.GET_TRANSACTIONS_FOR_WAREHOUSE(warehouse.buildingUID);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void AddTransactionToWarehouse(Warehouse warehouse, Enum.GameObjectType targetType, int targetUUID, Enum.TransactionType transactionType, Resource resource, int amount) {
|
||||||
|
|
||||||
|
|
||||||
|
if (!DbManager.WarehouseQueries.CREATE_TRANSACTION(warehouse.buildingUID, targetType, targetUUID, transactionType, resource, amount, DateTime.now()))
|
||||||
|
return;
|
||||||
|
|
||||||
|
Transaction transaction = new Transaction(warehouse.buildingUID, targetType, targetUUID, transactionType, resource, amount, DateTime.now());
|
||||||
|
warehouse.transactions.add(transaction);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isAboveCap(Warehouse warehouse, ItemBase ib, int deposit) {
|
||||||
|
int newAmount = warehouse.resources.get(ib) + deposit;
|
||||||
|
return newAmount > getMaxResources().get(ib.getUUID());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isResourceLocked(Warehouse warehouse, ItemBase itemBase) {
|
||||||
|
|
||||||
|
Enum.ResourceType resourceType;
|
||||||
|
|
||||||
|
resourceType = Enum.ResourceType.resourceLookup.get(itemBase.getUUID());
|
||||||
|
|
||||||
|
return resourceType.elementOf(warehouse.lockedResourceTypes);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -96,7 +910,7 @@ public class Warehouse extends AbstractWorldObject {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
WarehouseManager.warehouseByBuildingUUID.put(this.buildingUID, this);
|
warehouseByBuildingUUID.put(this.buildingUID, this);
|
||||||
city.setWarehouseBuildingID(this.buildingUID);
|
city.setWarehouseBuildingID(this.buildingUID);
|
||||||
} catch (Exception E) {
|
} catch (Exception E) {
|
||||||
Logger.info(this.getObjectUUID() + " failed");
|
Logger.info(this.getObjectUUID() + " failed");
|
||||||
|
|||||||
Reference in New Issue
Block a user