From 083349b75b484301bbf1dc2fcb0f66097376b1f1 Mon Sep 17 00:00:00 2001 From: MagicBot Date: Sun, 24 Mar 2024 10:21:53 -0400 Subject: [PATCH] Handlers created for gold-vault interactions --- src/engine/net/client/ClientMessagePump.java | 39 ----------------- src/engine/net/client/Protocol.java | 4 +- .../handlers/GoldFromVaultMsgHandler.java | 43 +++++++++++++++++++ .../handlers/GoldToVaultMsgHandler.java | 43 +++++++++++++++++++ ...nventoryMsg.java => GoldFromVaultMsg.java} | 10 ++--- ...oryToVaultMsg.java => GoldToVaultMsg.java} | 8 ++-- src/engine/objects/Account.java | 4 +- 7 files changed, 99 insertions(+), 52 deletions(-) create mode 100644 src/engine/net/client/handlers/GoldFromVaultMsgHandler.java create mode 100644 src/engine/net/client/handlers/GoldToVaultMsgHandler.java rename src/engine/net/client/msg/{TransferGoldFromVaultToInventoryMsg.java => GoldFromVaultMsg.java} (88%) rename src/engine/net/client/msg/{TransferGoldFromInventoryToVaultMsg.java => GoldToVaultMsg.java} (90%) diff --git a/src/engine/net/client/ClientMessagePump.java b/src/engine/net/client/ClientMessagePump.java index c51b1b7d..f1a16f77 100644 --- a/src/engine/net/client/ClientMessagePump.java +++ b/src/engine/net/client/ClientMessagePump.java @@ -187,39 +187,6 @@ public class ClientMessagePump implements NetMsgHandler { ChatManager.chatInfoError(player, "Can't transfer to vault: " + reason); } - private static void transferGoldFromVaultToInventory(TransferGoldFromVaultToInventoryMsg msg, ClientConnection origin) { - - PlayerCharacter player = origin.getPlayerCharacter(); - - - if (player == null) - return; - - Account account = player.getAccount(); - - if (account == null) - return; - - account.transferGoldFromVaultToInventory(msg, origin); - } - - private static void transferGoldFromInventoryToVault(TransferGoldFromInventoryToVaultMsg msg, ClientConnection origin) { - - PlayerCharacter player = origin.getPlayerCharacter(); - Dispatch dispatch; - - if (player == null) - return; - - Account account = player.getAccount(); - - if (account == null) - return; - - account.transferGoldFromInventoryToVault(msg, origin); - - } - private static void DeleteItem(DeleteItemMsg msg, ClientConnection origin) { CharacterItemManager itemManager = origin.getPlayerCharacter().charItemManager; @@ -1144,12 +1111,6 @@ public class ClientMessagePump implements NetMsgHandler { case SHOWCOMBATINFO: show((ShowMsg) msg, origin); break; - case TRANSFERGOLDFROMVAULTTOINVENTORY: - transferGoldFromVaultToInventory((TransferGoldFromVaultToInventoryMsg) msg, origin); - break; - case GOLDTOVAULT: - transferGoldFromInventoryToVault((TransferGoldFromInventoryToVaultMsg) msg, origin); - break; case REQUESTTOTRADE: TradeManager.tradeRequest((TradeRequestMsg) msg, origin); break; diff --git a/src/engine/net/client/Protocol.java b/src/engine/net/client/Protocol.java index 9a62e9c7..35307b5c 100644 --- a/src/engine/net/client/Protocol.java +++ b/src/engine/net/client/Protocol.java @@ -99,7 +99,8 @@ public enum Protocol { FURNITURE(0xCE7FA503, FurnitureMsg.class, FurnitureHandler.class), GAMESERVERIPRESPONSE(0x6C95CF87, GameServerIPResponseMsg.class, null), // Game Server IP Response GLOBALCHANNELMESSAGE(0x2bf03fd2, null, null), - GOLDTOVAULT(0x3ABAEE49, TransferGoldFromInventoryToVaultMsg.class, null), // Transfer Gold from Inventory to Vault + GOLDFROMVAULT(0x011D0123, GoldFromVaultMsg.class, GoldFromVaultMsgHandler.class), // Transfer Gold from Vault to Inventory + GOLDTOVAULT(0x3ABAEE49, GoldToVaultMsg.class, GoldToVaultMsgHandler.class), // Transfer Gold from Inventory to Vault GROUPDISBAND(0xE2B85AA4, DisbandGroupMsg.class, DisbandGroupHandler.class), //Disband Group GROUPFOLLOW(0xC61B0476, FormationFollowMsg.class, FormationFollowHandler.class), //Toggle Follow, set Formation GROUPLEADERAPPOINT(0xEF778DD3, AppointGroupLeaderMsg.class, AppointGroupLeaderHandler.class), //Appoint new group leader @@ -221,7 +222,6 @@ public enum Protocol { TRAINERLIST(0x41FABA62, TrainerInfoMsg.class, null), //Req/Send Trainer Info/Pricing TRAINSKILL(0xB0BF68CD, TrainMsg.class, null), //Train skills/powers 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, TransferItemFromBankMsg.class, TransferItemFromBankMsgHandler.class), // Transfer Item from Bank to Inventory TRANSFERITEMTOBANK(0xD48C46FA, TransferItemToBankMsg.class, TransferItemToBankMsgHandler.class), // Transfer Item from Inventory to Bank diff --git a/src/engine/net/client/handlers/GoldFromVaultMsgHandler.java b/src/engine/net/client/handlers/GoldFromVaultMsgHandler.java new file mode 100644 index 00000000..63bc4dc7 --- /dev/null +++ b/src/engine/net/client/handlers/GoldFromVaultMsgHandler.java @@ -0,0 +1,43 @@ +// • ▌ ▄ ·. ▄▄▄· ▄▄ • ▪ ▄▄· ▄▄▄▄· ▄▄▄· ▐▄▄▄ ▄▄▄ . +// ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌· +// ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀ +// ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌ +// ▀▀ █▪▀▀▀ ▀ ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀ ▀ ▀ ▀▀ █▪ ▀▀▀ +// Magicbane Emulator Project © 2013 - 2022 +// www.magicbane.com + +package engine.net.client.handlers; + +import engine.exception.MsgSendException; +import engine.net.client.ClientConnection; +import engine.net.client.msg.ClientNetMsg; +import engine.net.client.msg.GoldFromVaultMsg; +import engine.objects.Account; +import engine.objects.PlayerCharacter; + +public class GoldFromVaultMsgHandler extends AbstractClientMsgHandler { + + public GoldFromVaultMsgHandler() { + super(GoldFromVaultMsg.class); + } + + @Override + protected boolean _handleNetMsg(ClientNetMsg baseMsg, ClientConnection origin) throws MsgSendException { + + PlayerCharacter player = origin.getPlayerCharacter(); + + GoldFromVaultMsg msg = (GoldFromVaultMsg) baseMsg; + + if (player == null) + return true; + + Account account = player.getAccount(); + + if (account == null) + return true; + + account.transferGoldFromVaultToInventory(msg, origin); + return true; + } + +} \ No newline at end of file diff --git a/src/engine/net/client/handlers/GoldToVaultMsgHandler.java b/src/engine/net/client/handlers/GoldToVaultMsgHandler.java new file mode 100644 index 00000000..7b75aaf4 --- /dev/null +++ b/src/engine/net/client/handlers/GoldToVaultMsgHandler.java @@ -0,0 +1,43 @@ +// • ▌ ▄ ·. ▄▄▄· ▄▄ • ▪ ▄▄· ▄▄▄▄· ▄▄▄· ▐▄▄▄ ▄▄▄ . +// ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌· +// ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀ +// ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌ +// ▀▀ █▪▀▀▀ ▀ ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀ ▀ ▀ ▀▀ █▪ ▀▀▀ +// Magicbane Emulator Project © 2013 - 2022 +// www.magicbane.com + +package engine.net.client.handlers; + +import engine.exception.MsgSendException; +import engine.net.client.ClientConnection; +import engine.net.client.msg.ClientNetMsg; +import engine.net.client.msg.GoldToVaultMsg; +import engine.objects.Account; +import engine.objects.PlayerCharacter; + +public class GoldToVaultMsgHandler extends AbstractClientMsgHandler { + + public GoldToVaultMsgHandler() { + super(GoldToVaultMsg.class); + } + + @Override + protected boolean _handleNetMsg(ClientNetMsg baseMsg, ClientConnection origin) throws MsgSendException { + + PlayerCharacter player = origin.getPlayerCharacter(); + + GoldToVaultMsg msg = (GoldToVaultMsg) baseMsg; + + if (player == null) + return true; + + Account account = player.getAccount(); + + if (account == null) + return true; + + account.transferGoldFromInventoryToVault(msg, origin); + return true; + } + +} \ No newline at end of file diff --git a/src/engine/net/client/msg/TransferGoldFromVaultToInventoryMsg.java b/src/engine/net/client/msg/GoldFromVaultMsg.java similarity index 88% rename from src/engine/net/client/msg/TransferGoldFromVaultToInventoryMsg.java rename to src/engine/net/client/msg/GoldFromVaultMsg.java index b76b68f6..cc55ecde 100644 --- a/src/engine/net/client/msg/TransferGoldFromVaultToInventoryMsg.java +++ b/src/engine/net/client/msg/GoldFromVaultMsg.java @@ -21,7 +21,7 @@ import engine.net.client.Protocol; * * @author Eighty */ -public class TransferGoldFromVaultToInventoryMsg extends ClientNetMsg { +public class GoldFromVaultMsg extends ClientNetMsg { private long unknown01; private long playerCompID; @@ -31,8 +31,8 @@ public class TransferGoldFromVaultToInventoryMsg extends ClientNetMsg { /** * This is the general purpose constructor */ - public TransferGoldFromVaultToInventoryMsg(long unknown01, long playerCompID, long accountCompID, int amount) { - super(Protocol.TRANSFERGOLDFROMVAULTTOINVENTORY); + public GoldFromVaultMsg(long unknown01, long playerCompID, long accountCompID, int amount) { + super(Protocol.GOLDFROMVAULT); this.unknown01 = unknown01; this.playerCompID = playerCompID; this.accountCompID = accountCompID; @@ -44,8 +44,8 @@ public class TransferGoldFromVaultToInventoryMsg extends ClientNetMsg { * past the limit) then this constructor Throws that Exception to the * caller. */ - public TransferGoldFromVaultToInventoryMsg(AbstractConnection origin, ByteBufferReader reader) { - super(Protocol.TRANSFERGOLDFROMVAULTTOINVENTORY, origin, reader); + public GoldFromVaultMsg(AbstractConnection origin, ByteBufferReader reader) { + super(Protocol.GOLDFROMVAULT, origin, reader); } /** diff --git a/src/engine/net/client/msg/TransferGoldFromInventoryToVaultMsg.java b/src/engine/net/client/msg/GoldToVaultMsg.java similarity index 90% rename from src/engine/net/client/msg/TransferGoldFromInventoryToVaultMsg.java rename to src/engine/net/client/msg/GoldToVaultMsg.java index 459bc61a..09231b11 100644 --- a/src/engine/net/client/msg/TransferGoldFromInventoryToVaultMsg.java +++ b/src/engine/net/client/msg/GoldToVaultMsg.java @@ -22,7 +22,7 @@ import engine.net.client.Protocol; * @author Eighty */ -public class TransferGoldFromInventoryToVaultMsg extends ClientNetMsg { +public class GoldToVaultMsg extends ClientNetMsg { private int playerID; private int accountID; @@ -33,12 +33,12 @@ public class TransferGoldFromInventoryToVaultMsg extends ClientNetMsg { /** * This is the general purpose constructor */ - public TransferGoldFromInventoryToVaultMsg() { + public GoldToVaultMsg() { super(Protocol.GOLDTOVAULT); } - public TransferGoldFromInventoryToVaultMsg(int playerID, int npcID, int accountID, int amount) { + public GoldToVaultMsg(int playerID, int npcID, int accountID, int amount) { super(Protocol.GOLDTOVAULT); this.playerID = playerID; this.npcID = npcID; @@ -52,7 +52,7 @@ public class TransferGoldFromInventoryToVaultMsg extends ClientNetMsg { * past the limit) then this constructor Throws that Exception to the * caller. */ - public TransferGoldFromInventoryToVaultMsg(AbstractConnection origin, ByteBufferReader reader) { + public GoldToVaultMsg(AbstractConnection origin, ByteBufferReader reader) { super(Protocol.GOLDTOVAULT, origin, reader); } diff --git a/src/engine/objects/Account.java b/src/engine/objects/Account.java index 32ba9211..5695ed8f 100644 --- a/src/engine/objects/Account.java +++ b/src/engine/objects/Account.java @@ -280,7 +280,7 @@ public class Account extends AbstractGameObject { } } - public synchronized void transferGoldFromVaultToInventory(TransferGoldFromVaultToInventoryMsg msg, ClientConnection origin) { + public synchronized void transferGoldFromVaultToInventory(GoldFromVaultMsg msg, ClientConnection origin) { PlayerCharacter player = origin.getPlayerCharacter(); Dispatch dispatch; @@ -332,7 +332,7 @@ public class Account extends AbstractGameObject { } - public synchronized void transferGoldFromInventoryToVault(TransferGoldFromInventoryToVaultMsg msg, ClientConnection origin) { + public synchronized void transferGoldFromInventoryToVault(GoldToVaultMsg msg, ClientConnection origin) { PlayerCharacter player = origin.getPlayerCharacter(); Dispatch dispatch;