Handlers created for bank interaction

This commit is contained in:
2024-03-24 09:56:41 -04:00
parent 943d274e5f
commit e971674465
8 changed files with 252 additions and 115 deletions
+3 -93
View File
@@ -156,37 +156,7 @@ public class ClientMessagePump implements NetMsgHandler {
DispatchMessage.dispatchMsgToInterestArea(pc, msg, DispatchChannel.PRIMARY, MBServerStatics.CHARACTER_LOAD_RANGE, true, true);
}
public static Boolean NPCVaultBankRangeCheck(PlayerCharacter pc, ClientConnection origin, String bankorvault) {
if (pc == null)
return false;
NPC npc = pc.getLastNPCDialog();
if (npc == null)
return false;
// System.out.println(npc.getContract().getName());
// last npc must be either a banker or vault keeper
if (bankorvault.equals("vault")) {
if (npc.getContract().getContractID() != 861)
return false;
} else
// assuming banker
if (!npc.getContract().getName().equals("Bursar"))
return false;
if (pc.getLoc().distanceSquared2D(npc.getLoc()) > MBServerStatics.NPC_TALK_RANGE * MBServerStatics.NPC_TALK_RANGE) {
ErrorPopupMsg.sendErrorPopup(pc, 14);
return false;
} else
return true;
}
private static void transferItemFromInventoryToBank(TransferItemFromInventoryToBankMsg msg, ClientConnection origin) {
private static void transferItemFromBankToInventory(TransferItemFromBankMsg msg, ClientConnection origin) {
PlayerCharacter player = origin.getPlayerCharacter();
Dispatch dispatch;
@@ -194,64 +164,7 @@ public class ClientMessagePump implements NetMsgHandler {
if (player == null)
return;
if (!NPCVaultBankRangeCheck(player, origin, "bank"))
return;
CharacterItemManager itemManager = player.charItemManager;
if (itemManager == null)
return;
if (itemManager.getBankWeight() > 500) {
ErrorPopupMsg.sendErrorPopup(player, 21);
return;
}
int uuid = msg.getUUID();
Item item = itemManager.getItemByUUID(uuid);
if (item == null)
return;
//dupe check WTF CHECK BUT NO LOGGING?
if (!item.validForInventory(origin, player, itemManager))
return;
if (item.containerType == ItemContainerType.INVENTORY && itemManager.isBankOpen())
if (item.template.item_type.equals(engine.Enum.ItemType.GOLD)) {
if (!itemManager.moveGoldToBank(item, msg.getNumItems()))
return;
UpdateGoldMsg goldMes = new UpdateGoldMsg(player);
goldMes.configure();
dispatch = Dispatch.borrow(player, goldMes);
DispatchMessage.dispatchMsgDispatch(dispatch, DispatchChannel.SECONDARY);
} else {
if (!itemManager.hasRoomBank(item.template.item_wt))
return;
if (!itemManager.moveItemToBank(item))
return;
dispatch = Dispatch.borrow(player, msg);
DispatchMessage.dispatchMsgDispatch(dispatch, DispatchChannel.SECONDARY);
}
}
private static void transferItemFromBankToInventory(TransferItemFromBankToInventoryMsg msg, ClientConnection origin) {
PlayerCharacter player = origin.getPlayerCharacter();
Dispatch dispatch;
if (player == null)
return;
if (!NPCVaultBankRangeCheck(player, origin, "bank"))
if (!NPCManager.NPCVaultBankRangeCheck(player, origin, "bank"))
return;
CharacterItemManager itemManager = player.charItemManager;
@@ -1320,11 +1233,8 @@ public class ClientMessagePump implements NetMsgHandler {
case SHOWCOMBATINFO:
show((ShowMsg) msg, origin);
break;
case TRANSFERITEMTOBANK:
transferItemFromInventoryToBank((TransferItemFromInventoryToBankMsg) msg, origin);
break;
case TRANSFERITEMFROMBANK:
transferItemFromBankToInventory((TransferItemFromBankToInventoryMsg) msg, origin);
transferItemFromBankToInventory((TransferItemFromBankMsg) msg, origin);
break;
case TRANSFERITEMFROMVAULTTOINVENTORY:
transferItemFromVaultToInventory((TransferItemFromVaultToInventoryMsg) msg, origin);