From d5080b02a9bbd956677e1d97dd0effd7e502f706 Mon Sep 17 00:00:00 2001 From: hondacrx Date: Sun, 23 May 2021 17:12:34 -0400 Subject: [PATCH] Core/PacketIO: Add new guild bank interaction opcodes Port From (https://github.com/TrinityCore/TrinityCore/commit/9d4ccbda34cc7213b155bba308fe10be87e17b66) --- Source/Framework/Constants/Network/Opcodes.cs | 20 +- .../Game/Networking/Packets/GuildPackets.cs | 220 ++++++++++++++---- 2 files changed, 186 insertions(+), 54 deletions(-) diff --git a/Source/Framework/Constants/Network/Opcodes.cs b/Source/Framework/Constants/Network/Opcodes.cs index 3b8574639..3c277e330 100644 --- a/Source/Framework/Constants/Network/Opcodes.cs +++ b/Source/Framework/Constants/Network/Opcodes.cs @@ -62,13 +62,14 @@ namespace Framework.Constants AuctionSetFavoriteItem = 0x3735, AuthContinuedSession = 0x3766, AuthSession = 0x3765, - AutobankItem = 0x3996, - AutobankReagent = 0x3998, - AutostoreBankItem = 0x3997, - AutostoreBankReagent = 0x3999, + AutobankItem = 0x3997, + AutobankReagent = 0x3999, + AutostoreBankItem = 0x3996, + AutostoreBankReagent = 0x3998, AutoEquipItem = 0x399a, AutoEquipItemSlot = 0x399f, AutoStoreBagItem = 0x399b, + AutoStoreGuildBankItem = 0x34c6, AzeriteEmpoweredItemSelectPower = 0x3386, AzeriteEmpoweredItemViewed = 0x3368, AzeriteEssenceActivateEssence = 0x3388, @@ -253,6 +254,7 @@ namespace Framework.Constants DeleteEquipmentSet = 0x3519, DelFriend = 0x36d1, DelIgnore = 0x36d5, + DepositGuildBankItem = 0x34bd, DepositReagentBank = 0x334a, DestroyItem = 0x32a1, DfBootPlayerVote = 0x3615, @@ -446,6 +448,9 @@ namespace Framework.Constants MailTakeMoney = 0x3549, MakeContitionalAppearancePermanent = 0x322e, MasterLootItem = 0x3216, + MergeGuildBankItemWithGuildBankItem = 0x34c7, + MergeGuildBankItemWithItem = 0x34c4, + MergeItemWithGuildBankItem = 0x34c2, MinimapPing = 0x364b, MissileTrajectoryCollision = 0x318b, MountClearFanfare = 0x312d, @@ -476,6 +481,7 @@ namespace Framework.Constants MoveForceWalkSpeedChangeAck = 0x3a20, MoveGravityDisableAck = 0x3a34, MoveGravityEnableAck = 0x3a35, + MoveGuildBankItem = 0x34c1, MoveHeartbeat = 0x3a0f, MoveHoverAck = 0x3a12, MoveInitActiveMoverComplete = 0x3a43, @@ -731,11 +737,15 @@ namespace Framework.Constants SortReagentBankBags = 0x3349, SpellClick = 0x349b, SpiritHealerActivate = 0x34b5, + SplitGuildBankItem = 0x34c8, + SplitGuildBankItemToInventory = 0x34c5, SplitItem = 0x399e, + SplitItemToGuildBank = 0x34C3, StandStateChange = 0x318a, StartChallengeMode = 0x355c, StartSpectatorWarGame = 0x35df, StartWarGame = 0x35de, + StoreGuildBankItem = 0x34be, SubmitUserFeedback = 0x3697, SubscriptionInterstitialResponse = 0x33e9, SummonResponse = 0x366a, @@ -743,8 +753,10 @@ namespace Framework.Constants SurrenderArena = 0x3174, SuspendCommsAck = 0x3764, SuspendTokenResponse = 0x376a, + SwapGuildBankItemWithGuildBankItem = 0x34c0, SwapInvItem = 0x399d, SwapItem = 0x399c, + SwapItemWithGuildBankItem = 0x34bf, SwapSubGroups = 0x364d, SwapVoidItem = 0x31a6, TabardVendorActivate = 0x32b9, diff --git a/Source/Game/Networking/Packets/GuildPackets.cs b/Source/Game/Networking/Packets/GuildPackets.cs index acadb44ef..002a2fee1 100644 --- a/Source/Game/Networking/Packets/GuildPackets.cs +++ b/Source/Game/Networking/Packets/GuildPackets.cs @@ -1076,110 +1076,209 @@ namespace Game.Networking.Packets public bool FullUpdate; } - public class GuildBankTransferItem : ClientPacket + class DepositGuildBankItem : ClientPacket { - public GuildBankTransferItem(WorldPacket packet) : base(packet) { } + public DepositGuildBankItem(WorldPacket packet) : base(packet) { } public override void Read() { Banker = _worldPacket.ReadPackedGuid(); BankTab = _worldPacket.ReadUInt8(); - BankSlot = _worldPacket.ReadUInt8(); - PlayerSlot = _worldPacket.ReadUInt8(); + BankSlot = _worldPacket.ReadUInt8(); ; + ContainerItemSlot = _worldPacket.ReadUInt8(); - HasBag = _worldPacket.HasBit(); - _worldPacket.ResetBitPos(); - - if (HasBag) - PlayerBag = _worldPacket.ReadUInt8(); + if (_worldPacket.HasBit()) + ContainerSlot.Set(_worldPacket.ReadUInt8()); } public ObjectGuid Banker; public byte BankTab; public byte BankSlot; - public byte PlayerSlot; - public bool HasBag; - public byte PlayerBag; + public Optional ContainerSlot; + public byte ContainerItemSlot; } - class GuildBankMoveItemInBank : ClientPacket + class StoreGuildBankItem : ClientPacket { - public GuildBankMoveItemInBank(WorldPacket packet) : base(packet) { } + public StoreGuildBankItem(WorldPacket packet) : base(packet) { } public override void Read() { Banker = _worldPacket.ReadPackedGuid(); BankTab = _worldPacket.ReadUInt8(); - BankSlot = _worldPacket.ReadUInt8(); - NewBankTab = _worldPacket.ReadUInt8(); - NewBankSlot = _worldPacket.ReadUInt8(); + BankSlot = _worldPacket.ReadUInt8(); ; + ContainerItemSlot = _worldPacket.ReadUInt8(); + + if (_worldPacket.HasBit()) + ContainerSlot.Set(_worldPacket.ReadUInt8()); } public ObjectGuid Banker; public byte BankTab; public byte BankSlot; - public byte NewBankTab; - public byte NewBankSlot; + public Optional ContainerSlot; + public byte ContainerItemSlot; } - class GuildBankCombineItemStack : ClientPacket + + class SwapItemWithGuildBankItem : ClientPacket { - public GuildBankCombineItemStack(WorldPacket packet) : base(packet) { } + public SwapItemWithGuildBankItem(WorldPacket packet) : base(packet) { } + + public override void Read() + { + Banker = _worldPacket.ReadPackedGuid(); + BankTab = _worldPacket.ReadUInt8(); + BankSlot = _worldPacket.ReadUInt8(); ; + ContainerItemSlot = _worldPacket.ReadUInt8(); + + if (_worldPacket.HasBit()) + ContainerSlot.Set(_worldPacket.ReadUInt8()); + } + + public ObjectGuid Banker; + public byte BankTab; + public byte BankSlot; + public Optional ContainerSlot; + public byte ContainerItemSlot; + } + + class SwapGuildBankItemWithGuildBankItem : ClientPacket + { + public SwapGuildBankItemWithGuildBankItem(WorldPacket packet) : base(packet) { } + + public override void Read() + { + Banker = _worldPacket.ReadPackedGuid(); + BankTab[0] = _worldPacket.ReadUInt8(); + BankSlot[0] = _worldPacket.ReadUInt8(); + BankTab[1] = _worldPacket.ReadUInt8(); + BankSlot[1] = _worldPacket.ReadUInt8(); + } + + public ObjectGuid Banker; + public byte[] BankTab = new byte[2]; + public byte[] BankSlot = new byte[2]; + } + + class MoveGuildBankItem : ClientPacket + { + public MoveGuildBankItem(WorldPacket packet) : base(packet) { } public override void Read() { Banker = _worldPacket.ReadPackedGuid(); BankTab = _worldPacket.ReadUInt8(); BankSlot = _worldPacket.ReadUInt8(); - PlayerSlot = _worldPacket.ReadUInt8(); + BankTab1 = _worldPacket.ReadUInt8(); + BankSlot1 = _worldPacket.ReadUInt8(); + } + + public ObjectGuid Banker; + public byte BankTab; + public byte BankSlot; + public byte BankTab1; + public byte BankSlot1; + } + + class MergeItemWithGuildBankItem : ClientPacket + { + public MergeItemWithGuildBankItem(WorldPacket packet) : base(packet) { } + + public override void Read() + { + Banker = _worldPacket.ReadPackedGuid(); + BankTab = _worldPacket.ReadUInt8(); + BankSlot = _worldPacket.ReadUInt8(); ; + ContainerItemSlot = _worldPacket.ReadUInt8(); StackCount = _worldPacket.ReadUInt32(); - HasBag = _worldPacket.HasBit(); - _worldPacket.ResetBitPos(); - - if (HasBag) - PlayerBag = _worldPacket.ReadUInt8(); + if (_worldPacket.HasBit()) + ContainerSlot.Set(_worldPacket.ReadUInt8()); } public ObjectGuid Banker; public byte BankTab; public byte BankSlot; - public byte PlayerSlot; + public Optional ContainerSlot; + public byte ContainerItemSlot; public uint StackCount; - public bool HasBag; - public byte PlayerBag; } - class GuildBankTransferItemStack : ClientPacket + class SplitItemToGuildBank : ClientPacket { - public GuildBankTransferItemStack(WorldPacket packet) : base(packet) { } + public SplitItemToGuildBank(WorldPacket packet) : base(packet) { } public override void Read() { Banker = _worldPacket.ReadPackedGuid(); BankTab = _worldPacket.ReadUInt8(); - BankSlot = _worldPacket.ReadUInt8(); - PlayerSlot = _worldPacket.ReadUInt8(); + BankSlot = _worldPacket.ReadUInt8(); ; + ContainerItemSlot = _worldPacket.ReadUInt8(); StackCount = _worldPacket.ReadUInt32(); - HasBag = _worldPacket.HasBit(); - _worldPacket.ResetBitPos(); - - if (HasBag) - PlayerBag = _worldPacket.ReadUInt8(); + if (_worldPacket.HasBit()) + ContainerSlot.Set(_worldPacket.ReadUInt8()); } public ObjectGuid Banker; public byte BankTab; public byte BankSlot; - public byte PlayerSlot; + public Optional ContainerSlot; + public byte ContainerItemSlot; public uint StackCount; - public bool HasBag; - public byte PlayerBag; } - class GuildBankTransferItemAutoStore : ClientPacket + class MergeGuildBankItemWithItem : ClientPacket { - public GuildBankTransferItemAutoStore(WorldPacket packet) : base(packet) { } + public MergeGuildBankItemWithItem(WorldPacket packet) : base(packet) { } + + public override void Read() + { + Banker = _worldPacket.ReadPackedGuid(); + BankTab = _worldPacket.ReadUInt8(); + BankSlot = _worldPacket.ReadUInt8(); ; + ContainerItemSlot = _worldPacket.ReadUInt8(); + StackCount = _worldPacket.ReadUInt32(); + + if (_worldPacket.HasBit()) + ContainerSlot.Set(_worldPacket.ReadUInt8()); + } + + public ObjectGuid Banker; + public byte BankTab; + public byte BankSlot; + public Optional ContainerSlot; + public byte ContainerItemSlot; + public uint StackCount; + } + + class SplitGuildBankItemToInventory : ClientPacket + { + public SplitGuildBankItemToInventory(WorldPacket packet) : base(packet) { } + + public override void Read() + { + Banker = _worldPacket.ReadPackedGuid(); + BankTab = _worldPacket.ReadUInt8(); + BankSlot = _worldPacket.ReadUInt8(); ; + ContainerItemSlot = _worldPacket.ReadUInt8(); + StackCount = _worldPacket.ReadUInt32(); + + if (_worldPacket.HasBit()) + ContainerSlot.Set(_worldPacket.ReadUInt8()); + } + + public ObjectGuid Banker; + public byte BankTab; + public byte BankSlot; + public Optional ContainerSlot; + public byte ContainerItemSlot; + public uint StackCount; + } + + class AutoStoreGuildBankItem : ClientPacket + { + public AutoStoreGuildBankItem(WorldPacket packet) : base(packet) { } public override void Read() { @@ -1193,28 +1292,49 @@ namespace Game.Networking.Packets public byte BankSlot; } - class GuildBankCombineItemStackInBank : ClientPacket + class MergeGuildBankItemWithGuildBankItem : ClientPacket { - public GuildBankCombineItemStackInBank(WorldPacket packet) : base(packet) { } + public MergeGuildBankItemWithGuildBankItem(WorldPacket packet) : base(packet) { } public override void Read() { Banker = _worldPacket.ReadPackedGuid(); BankTab = _worldPacket.ReadUInt8(); BankSlot = _worldPacket.ReadUInt8(); - NewBankTab = _worldPacket.ReadUInt8(); - NewBankSlot = _worldPacket.ReadUInt8(); + BankTab1 = _worldPacket.ReadUInt8(); + BankSlot1 = _worldPacket.ReadUInt8(); StackCount = _worldPacket.ReadUInt32(); } public ObjectGuid Banker; public byte BankTab; public byte BankSlot; - public byte NewBankTab; - public byte NewBankSlot; + public byte BankTab1; + public byte BankSlot1; public uint StackCount; } + class SplitGuildBankItem : ClientPacket + { + public SplitGuildBankItem(WorldPacket packet) : base(packet) { } + + public override void Read() + { + Banker = _worldPacket.ReadPackedGuid(); + BankTab = _worldPacket.ReadUInt8(); + BankSlot = _worldPacket.ReadUInt8(); + BankTab1 = _worldPacket.ReadUInt8(); + BankSlot1 = _worldPacket.ReadUInt8(); + StackCount = _worldPacket.ReadUInt32(); + } + + public ObjectGuid Banker; + public byte BankTab; + public byte BankSlot; + public byte BankTab1; + public byte BankSlot1; + public uint StackCount; + } public class GuildBankLogQuery : ClientPacket { public GuildBankLogQuery(WorldPacket packet) : base(packet) { }