forked from MagicBane/Server
Handlers created for bank interaction
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -222,9 +222,9 @@ public enum Protocol {
|
||||
TRANSFERASSET(0x3EA1C4C9, TransferAssetMsg.class, TransferAssetMsgHandler.class), // Transfer Building
|
||||
TRANSFERGOLDFROMVAULTTOINVENTORY(0x011D0123, TransferGoldFromVaultToInventoryMsg.class, null), // Transfer Gold from Vault to Inventory
|
||||
TRANSFERGOLDTOFROMBUILDING(0x1B1AC8C7, TransferGoldToFromBuildingMsg.class, TransferGoldToFromBuildingMsgHandler.class), // Transfer Gold to/From Building, Transfer Error
|
||||
TRANSFERITEMFROMBANK(0x9D04977B, TransferItemFromBankToInventoryMsg.class, null), // Transfer Item from Bank to Inventory
|
||||
TRANSFERITEMFROMBANK(0x9D04977B, TransferItemFromBankMsg.class, TransferItemFromBankMsgHandler.class), // Transfer Item from Bank to Inventory
|
||||
TRANSFERITEMFROMVAULTTOINVENTORY(0x0119A64D, TransferItemFromVaultToInventoryMsg.class, null), // Transfer Item from Vault to Inventory
|
||||
TRANSFERITEMTOBANK(0xD48C46FA, TransferItemFromInventoryToBankMsg.class, null), // Transfer Item from Inventory to Bank
|
||||
TRANSFERITEMTOBANK(0xD48C46FA, TransferItemToBankMsg.class, TransferItemToBankMsgHandler.class), // Transfer Item from Inventory to Bank
|
||||
UNEQUIP(0xC6BFB907, TransferItemFromEquipToInventoryMsg.class, TransferItemFromEquipToInventoryHandler.class), // Transfer Item from Equip to Inventory
|
||||
UNKNOWN(0x238C9259, UnknownMsg.class, null),
|
||||
UPDATECHARORMOB(0xB6D78961, null, null),
|
||||
|
||||
@@ -0,0 +1,100 @@
|
||||
// • ▌ ▄ ·. ▄▄▄· ▄▄ • ▪ ▄▄· ▄▄▄▄· ▄▄▄· ▐▄▄▄ ▄▄▄ .
|
||||
// ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌·
|
||||
// ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀
|
||||
// ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌
|
||||
// ▀▀ █▪▀▀▀ ▀ ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀ ▀ ▀ ▀▀ █▪ ▀▀▀
|
||||
// Magicbane Emulator Project © 2013 - 2022
|
||||
// www.magicbane.com
|
||||
|
||||
package engine.net.client.handlers;
|
||||
|
||||
import engine.Enum;
|
||||
import engine.Enum.DispatchChannel;
|
||||
import engine.exception.MsgSendException;
|
||||
import engine.gameManager.NPCManager;
|
||||
import engine.net.Dispatch;
|
||||
import engine.net.DispatchMessage;
|
||||
import engine.net.client.ClientConnection;
|
||||
import engine.net.client.msg.ClientNetMsg;
|
||||
import engine.net.client.msg.TransferItemFromBankMsg;
|
||||
import engine.net.client.msg.UpdateGoldMsg;
|
||||
import engine.objects.CharacterItemManager;
|
||||
import engine.objects.Item;
|
||||
import engine.objects.PlayerCharacter;
|
||||
|
||||
public class TransferItemFromBankMsgHandler extends AbstractClientMsgHandler {
|
||||
|
||||
public TransferItemFromBankMsgHandler() {
|
||||
super(TransferItemFromBankMsg.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean _handleNetMsg(ClientNetMsg baseMsg, ClientConnection origin) throws MsgSendException {
|
||||
|
||||
PlayerCharacter player = origin.getPlayerCharacter();
|
||||
Dispatch dispatch;
|
||||
|
||||
if (player == null)
|
||||
return true;
|
||||
;
|
||||
|
||||
TransferItemFromBankMsg msg = (TransferItemFromBankMsg) baseMsg;
|
||||
|
||||
if (!NPCManager.NPCVaultBankRangeCheck(player, origin, "bank"))
|
||||
return true;
|
||||
;
|
||||
|
||||
CharacterItemManager itemManager = player.charItemManager;
|
||||
|
||||
if (itemManager == null)
|
||||
return true;
|
||||
;
|
||||
|
||||
int uuid = msg.getUUID();
|
||||
|
||||
Item item = itemManager.getItemByUUID(uuid);
|
||||
|
||||
if (item == null)
|
||||
return true;
|
||||
;
|
||||
|
||||
//dupe check
|
||||
// WTF Checking but not logging?
|
||||
|
||||
if (!item.validForBank(origin, player, itemManager))
|
||||
return true;
|
||||
;
|
||||
|
||||
if (item.containerType == Enum.ItemContainerType.BANK && itemManager.isBankOpen() == false)
|
||||
return true;
|
||||
;
|
||||
|
||||
if (item.template.item_type.equals(engine.Enum.ItemType.GOLD)) {
|
||||
|
||||
if (!itemManager.moveGoldToInventory(item, msg.getNumItems()))
|
||||
return true;
|
||||
;
|
||||
|
||||
UpdateGoldMsg goldMes = new UpdateGoldMsg(player);
|
||||
goldMes.configure();
|
||||
|
||||
dispatch = Dispatch.borrow(player, goldMes);
|
||||
DispatchMessage.dispatchMsgDispatch(dispatch, DispatchChannel.SECONDARY);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// Not gold, process update here
|
||||
|
||||
if (!itemManager.hasRoomInventory(item.template.item_wt))
|
||||
return true;
|
||||
|
||||
if (itemManager.moveItemToInventory(item) == false)
|
||||
return true;
|
||||
|
||||
dispatch = Dispatch.borrow(player, msg);
|
||||
DispatchMessage.dispatchMsgDispatch(dispatch, DispatchChannel.SECONDARY);
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,93 @@
|
||||
// • ▌ ▄ ·. ▄▄▄· ▄▄ • ▪ ▄▄· ▄▄▄▄· ▄▄▄· ▐▄▄▄ ▄▄▄ .
|
||||
// ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌·
|
||||
// ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀
|
||||
// ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌
|
||||
// ▀▀ █▪▀▀▀ ▀ ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀ ▀ ▀ ▀▀ █▪ ▀▀▀
|
||||
// Magicbane Emulator Project © 2013 - 2022
|
||||
// www.magicbane.com
|
||||
|
||||
package engine.net.client.handlers;
|
||||
|
||||
import engine.Enum;
|
||||
import engine.Enum.DispatchChannel;
|
||||
import engine.exception.MsgSendException;
|
||||
import engine.gameManager.NPCManager;
|
||||
import engine.net.Dispatch;
|
||||
import engine.net.DispatchMessage;
|
||||
import engine.net.client.ClientConnection;
|
||||
import engine.net.client.msg.ClientNetMsg;
|
||||
import engine.net.client.msg.ErrorPopupMsg;
|
||||
import engine.net.client.msg.TransferItemToBankMsg;
|
||||
import engine.net.client.msg.UpdateGoldMsg;
|
||||
import engine.objects.CharacterItemManager;
|
||||
import engine.objects.Item;
|
||||
import engine.objects.PlayerCharacter;
|
||||
|
||||
public class TransferItemToBankMsgHandler extends AbstractClientMsgHandler {
|
||||
|
||||
public TransferItemToBankMsgHandler() {
|
||||
super(TransferItemToBankMsg.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean _handleNetMsg(ClientNetMsg baseMsg, ClientConnection origin) throws MsgSendException {
|
||||
|
||||
PlayerCharacter player = origin.getPlayerCharacter();
|
||||
Dispatch dispatch;
|
||||
|
||||
if (player == null)
|
||||
return true;
|
||||
|
||||
TransferItemToBankMsg msg = (TransferItemToBankMsg) baseMsg;
|
||||
|
||||
if (!NPCManager.NPCVaultBankRangeCheck(player, origin, "bank"))
|
||||
return true;
|
||||
|
||||
CharacterItemManager itemManager = player.charItemManager;
|
||||
|
||||
if (itemManager == null)
|
||||
return true;
|
||||
|
||||
if (itemManager.getBankWeight() > 500) {
|
||||
ErrorPopupMsg.sendErrorPopup(player, 21);
|
||||
return true;
|
||||
}
|
||||
|
||||
int uuid = msg.getUUID();
|
||||
|
||||
Item item = itemManager.getItemByUUID(uuid);
|
||||
|
||||
if (item == null)
|
||||
return true;
|
||||
|
||||
//dupe check WTF CHECK BUT NO LOGGING?
|
||||
|
||||
if (!item.validForInventory(origin, player, itemManager))
|
||||
return true;
|
||||
|
||||
if (item.containerType == Enum.ItemContainerType.INVENTORY && itemManager.isBankOpen())
|
||||
if (item.template.item_type.equals(engine.Enum.ItemType.GOLD)) {
|
||||
if (!itemManager.moveGoldToBank(item, msg.getNumItems()))
|
||||
return true;
|
||||
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 true;
|
||||
|
||||
if (!itemManager.moveItemToBank(item))
|
||||
return true;
|
||||
|
||||
dispatch = Dispatch.borrow(player, msg);
|
||||
DispatchMessage.dispatchMsgDispatch(dispatch, DispatchChannel.SECONDARY);
|
||||
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
+8
-8
@@ -22,7 +22,7 @@ import engine.net.client.Protocol;
|
||||
* @author Eighty
|
||||
*/
|
||||
|
||||
public class TransferItemFromBankToInventoryMsg extends ClientNetMsg {
|
||||
public class TransferItemFromBankMsg extends ClientNetMsg {
|
||||
|
||||
private long playerCompID1;
|
||||
private long playerCompID2;
|
||||
@@ -36,9 +36,9 @@ public class TransferItemFromBankToInventoryMsg extends ClientNetMsg {
|
||||
/**
|
||||
* This is the general purpose constructor
|
||||
*/
|
||||
public TransferItemFromBankToInventoryMsg(long playerCompID1,
|
||||
long playerCompID2, int type, int objectUUID, int unknown1,
|
||||
int unknown2, int numItems, byte unknown4) {
|
||||
public TransferItemFromBankMsg(long playerCompID1,
|
||||
long playerCompID2, int type, int objectUUID, int unknown1,
|
||||
int unknown2, int numItems, byte unknown4) {
|
||||
super(Protocol.TRANSFERITEMFROMBANK);
|
||||
this.playerCompID1 = playerCompID1;
|
||||
this.playerCompID2 = playerCompID2;
|
||||
@@ -50,7 +50,7 @@ public class TransferItemFromBankToInventoryMsg extends ClientNetMsg {
|
||||
this.unknown4 = unknown4;
|
||||
}
|
||||
|
||||
public TransferItemFromBankToInventoryMsg(TransferItemFromInventoryToBankMsg msg) {
|
||||
public TransferItemFromBankMsg(TransferItemToBankMsg msg) {
|
||||
super(Protocol.TRANSFERITEMFROMBANK);
|
||||
this.playerCompID1 = msg.getPlayerCompID1();
|
||||
this.playerCompID2 = msg.getPlayerCompID2();
|
||||
@@ -65,7 +65,7 @@ public class TransferItemFromBankToInventoryMsg extends ClientNetMsg {
|
||||
/**
|
||||
* This is the general purpose constructor
|
||||
*/
|
||||
public TransferItemFromBankToInventoryMsg() {
|
||||
public TransferItemFromBankMsg() {
|
||||
super(Protocol.TRANSFERITEMFROMBANK);
|
||||
}
|
||||
|
||||
@@ -75,8 +75,8 @@ public class TransferItemFromBankToInventoryMsg extends ClientNetMsg {
|
||||
* past the limit) then this constructor Throws that Exception to the
|
||||
* caller.
|
||||
*/
|
||||
public TransferItemFromBankToInventoryMsg(AbstractConnection origin,
|
||||
ByteBufferReader reader) {
|
||||
public TransferItemFromBankMsg(AbstractConnection origin,
|
||||
ByteBufferReader reader) {
|
||||
super(Protocol.TRANSFERITEMFROMBANK, origin, reader);
|
||||
}
|
||||
|
||||
+8
-8
@@ -22,7 +22,7 @@ import engine.net.client.Protocol;
|
||||
* @author Eighty
|
||||
*/
|
||||
|
||||
public class TransferItemFromInventoryToBankMsg extends ClientNetMsg {
|
||||
public class TransferItemToBankMsg extends ClientNetMsg {
|
||||
|
||||
private long playerCompID1;
|
||||
private long playerCompID2;
|
||||
@@ -36,9 +36,9 @@ public class TransferItemFromInventoryToBankMsg extends ClientNetMsg {
|
||||
/**
|
||||
* This is the general purpose constructor
|
||||
*/
|
||||
public TransferItemFromInventoryToBankMsg(long playerCompID1,
|
||||
long playerCompID2, int type, int objectUUID, int unknown1,
|
||||
int unknown2, int numItems, byte unknown4) {
|
||||
public TransferItemToBankMsg(long playerCompID1,
|
||||
long playerCompID2, int type, int objectUUID, int unknown1,
|
||||
int unknown2, int numItems, byte unknown4) {
|
||||
super(Protocol.TRANSFERITEMTOBANK);
|
||||
this.playerCompID1 = playerCompID1;
|
||||
this.playerCompID2 = playerCompID2;
|
||||
@@ -50,7 +50,7 @@ public class TransferItemFromInventoryToBankMsg extends ClientNetMsg {
|
||||
this.unknown4 = unknown4;
|
||||
}
|
||||
|
||||
public TransferItemFromInventoryToBankMsg(TransferItemFromBankToInventoryMsg msg) {
|
||||
public TransferItemToBankMsg(TransferItemFromBankMsg msg) {
|
||||
super(Protocol.TRANSFERITEMTOBANK);
|
||||
this.playerCompID1 = msg.getPlayerCompID1();
|
||||
this.playerCompID2 = msg.getPlayerCompID2();
|
||||
@@ -65,7 +65,7 @@ public class TransferItemFromInventoryToBankMsg extends ClientNetMsg {
|
||||
/**
|
||||
* This is the general purpose constructor
|
||||
*/
|
||||
public TransferItemFromInventoryToBankMsg() {
|
||||
public TransferItemToBankMsg() {
|
||||
super(Protocol.TRANSFERITEMTOBANK);
|
||||
}
|
||||
|
||||
@@ -75,8 +75,8 @@ public class TransferItemFromInventoryToBankMsg extends ClientNetMsg {
|
||||
* past the limit) then this constructor Throws that Exception to the
|
||||
* caller.
|
||||
*/
|
||||
public TransferItemFromInventoryToBankMsg(AbstractConnection origin,
|
||||
ByteBufferReader reader) {
|
||||
public TransferItemToBankMsg(AbstractConnection origin,
|
||||
ByteBufferReader reader) {
|
||||
super(Protocol.TRANSFERITEMTOBANK, origin, reader);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user