aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Server/Packets/GuildPackets.cpp147
-rw-r--r--src/server/game/Server/Packets/GuildPackets.h170
-rw-r--r--src/server/game/Server/Protocol/Opcodes.cpp12
-rw-r--r--src/server/game/Server/Protocol/Opcodes.h12
-rw-r--r--src/server/game/Server/WorldSession.h24
5 files changed, 365 insertions, 0 deletions
diff --git a/src/server/game/Server/Packets/GuildPackets.cpp b/src/server/game/Server/Packets/GuildPackets.cpp
index 1627aaf232d..c14f58ae8b3 100644
--- a/src/server/game/Server/Packets/GuildPackets.cpp
+++ b/src/server/game/Server/Packets/GuildPackets.cpp
@@ -661,6 +661,153 @@ void WorldPackets::Guild::GuildBankSwapItems::Read()
AutoStore = _worldPacket.ReadBit();
}
+void WorldPackets::Guild::DepositGuildBankItem::Read()
+{
+ _worldPacket >> Banker;
+ _worldPacket >> BankTab;
+ _worldPacket >> BankSlot;
+ _worldPacket >> ContainerItemSlot;
+
+ if (_worldPacket.ReadBit())
+ ContainerSlot = boost::in_place();
+
+ if (ContainerSlot)
+ _worldPacket >> *ContainerSlot;
+}
+
+void WorldPackets::Guild::StoreGuildBankItem::Read()
+{
+ _worldPacket >> Banker;
+ _worldPacket >> BankTab;
+ _worldPacket >> BankSlot;
+ _worldPacket >> ContainerItemSlot;
+
+ if (_worldPacket.ReadBit())
+ ContainerSlot = boost::in_place();
+
+ if (ContainerSlot)
+ _worldPacket >> *ContainerSlot;
+}
+
+void WorldPackets::Guild::SwapItemWithGuildBankItem::Read()
+{
+ _worldPacket >> Banker;
+ _worldPacket >> BankTab;
+ _worldPacket >> BankSlot;
+ _worldPacket >> ContainerItemSlot;
+
+ if (_worldPacket.ReadBit())
+ ContainerSlot = boost::in_place();
+
+ if (ContainerSlot)
+ _worldPacket >> *ContainerSlot;
+}
+
+void WorldPackets::Guild::SwapGuildBankItemWithGuildBankItem::Read()
+{
+ _worldPacket >> Banker;
+ _worldPacket >> BankTab[0];
+ _worldPacket >> BankSlot[0];
+ _worldPacket >> BankTab[1];
+ _worldPacket >> BankSlot[1];
+}
+
+void WorldPackets::Guild::MoveGuildBankItem::Read()
+{
+ _worldPacket >> Banker;
+ _worldPacket >> BankTab;
+ _worldPacket >> BankSlot;
+ _worldPacket >> BankTab1;
+ _worldPacket >> BankSlot1;
+}
+
+void WorldPackets::Guild::MergeItemWithGuildBankItem::Read()
+{
+ _worldPacket >> Banker;
+ _worldPacket >> BankTab;
+ _worldPacket >> BankSlot;
+ _worldPacket >> ContainerItemSlot;
+ _worldPacket >> StackCount;
+
+ if (_worldPacket.ReadBit())
+ ContainerSlot = boost::in_place();
+
+ if (ContainerSlot)
+ _worldPacket >> *ContainerSlot;
+}
+
+void WorldPackets::Guild::SplitItemToGuildBank::Read()
+{
+ _worldPacket >> Banker;
+ _worldPacket >> BankTab;
+ _worldPacket >> BankSlot;
+ _worldPacket >> ContainerItemSlot;
+ _worldPacket >> StackCount;
+
+ if (_worldPacket.ReadBit())
+ ContainerSlot = boost::in_place();
+
+ if (ContainerSlot)
+ _worldPacket >> *ContainerSlot;
+}
+
+void WorldPackets::Guild::MergeGuildBankItemWithItem::Read()
+{
+ _worldPacket >> Banker;
+ _worldPacket >> BankTab;
+ _worldPacket >> BankSlot;
+ _worldPacket >> ContainerItemSlot;
+ _worldPacket >> StackCount;
+
+ if (_worldPacket.ReadBit())
+ ContainerSlot = boost::in_place();
+
+ if (ContainerSlot)
+ _worldPacket >> *ContainerSlot;
+}
+
+void WorldPackets::Guild::SplitGuildBankItemToInventory::Read()
+{
+ _worldPacket >> Banker;
+ _worldPacket >> BankTab;
+ _worldPacket >> BankSlot;
+ _worldPacket >> ContainerItemSlot;
+ _worldPacket >> StackCount;
+
+ if (_worldPacket.ReadBit())
+ ContainerSlot = boost::in_place();
+
+ if (ContainerSlot)
+ _worldPacket >> *ContainerSlot;
+}
+
+void WorldPackets::Guild::AutoStoreGuildBankItem::Read()
+{
+ _worldPacket >> Banker;
+ _worldPacket >> BankTab;
+ _worldPacket >> BankSlot;
+}
+
+void WorldPackets::Guild::MergeGuildBankItemWithGuildBankItem::Read()
+{
+ _worldPacket >> Banker;
+ _worldPacket >> BankTab;
+ _worldPacket >> BankSlot;
+ _worldPacket >> BankTab1;
+ _worldPacket >> BankSlot1;
+ _worldPacket >> StackCount;
+}
+
+void WorldPackets::Guild::SplitGuildBankItem::Read()
+{
+ _worldPacket >> Banker;
+ _worldPacket >> BankTab;
+ _worldPacket >> BankSlot;
+ _worldPacket >> BankTab1;
+ _worldPacket >> BankSlot1;
+ _worldPacket >> StackCount;
+}
+
void WorldPackets::Guild::GuildBankLogQuery::Read()
{
_worldPacket >> Tab;
diff --git a/src/server/game/Server/Packets/GuildPackets.h b/src/server/game/Server/Packets/GuildPackets.h
index c99b498c4dd..be277c2e38c 100644
--- a/src/server/game/Server/Packets/GuildPackets.h
+++ b/src/server/game/Server/Packets/GuildPackets.h
@@ -851,6 +851,176 @@ namespace WorldPackets
bool BankOnly = false;
};
+ class DepositGuildBankItem final : public ClientPacket
+ {
+ public:
+ DepositGuildBankItem(WorldPacket&& packet) : ClientPacket(CMSG_DEPOSIT_GUILD_BANK_ITEM, std::move(packet)) { }
+
+ void Read() override;
+
+ ObjectGuid Banker;
+ uint8 BankTab = 0;
+ uint8 BankSlot = 0;
+ Optional<uint8> ContainerSlot;
+ uint8 ContainerItemSlot = 0;
+ };
+
+ class StoreGuildBankItem final : public ClientPacket
+ {
+ public:
+ StoreGuildBankItem(WorldPacket&& packet) : ClientPacket(CMSG_STORE_GUILD_BANK_ITEM, std::move(packet)) { }
+
+ void Read() override;
+
+ ObjectGuid Banker;
+ uint8 BankTab = 0;
+ uint8 BankSlot = 0;
+ Optional<uint8> ContainerSlot;
+ uint8 ContainerItemSlot = 0;
+ };
+
+ class SwapItemWithGuildBankItem final : public ClientPacket
+ {
+ public:
+ SwapItemWithGuildBankItem(WorldPacket&& packet) : ClientPacket(CMSG_SWAP_ITEM_WITH_GUILD_BANK_ITEM, std::move(packet)) { }
+
+ void Read() override;
+
+ ObjectGuid Banker;
+ uint8 BankTab = 0;
+ uint8 BankSlot = 0;
+ Optional<uint8> ContainerSlot;
+ uint8 ContainerItemSlot = 0;
+ };
+
+ class SwapGuildBankItemWithGuildBankItem final : public ClientPacket
+ {
+ public:
+ SwapGuildBankItemWithGuildBankItem(WorldPacket&& packet) : ClientPacket(CMSG_SWAP_GUILD_BANK_ITEM_WITH_GUILD_BANK_ITEM, std::move(packet)) { }
+
+ void Read() override;
+
+ ObjectGuid Banker;
+ std::array<uint8, 2> BankTab = { };
+ std::array<uint8, 2> BankSlot = { };
+ };
+
+ class MoveGuildBankItem final : public ClientPacket
+ {
+ public:
+ MoveGuildBankItem(WorldPacket&& packet) : ClientPacket(CMSG_MOVE_GUILD_BANK_ITEM, std::move(packet)) { }
+
+ void Read() override;
+
+ ObjectGuid Banker;
+ uint8 BankTab = 0;
+ uint8 BankSlot = 0;
+ uint8 BankTab1 = 0;
+ uint8 BankSlot1 = 0;
+ };
+
+ class MergeItemWithGuildBankItem final : public ClientPacket
+ {
+ public:
+ MergeItemWithGuildBankItem(WorldPacket&& packet) : ClientPacket(CMSG_MERGE_ITEM_WITH_GUILD_BANK_ITEM, std::move(packet)) { }
+
+ void Read() override;
+
+ ObjectGuid Banker;
+ uint8 BankTab = 0;
+ uint8 BankSlot = 0;
+ Optional<uint8> ContainerSlot;
+ uint8 ContainerItemSlot = 0;
+ uint32 StackCount = 0;
+ };
+
+ class SplitItemToGuildBank final : public ClientPacket
+ {
+ public:
+ SplitItemToGuildBank(WorldPacket&& packet) : ClientPacket(CMSG_SPLIT_ITEM_TO_GUILD_BANK, std::move(packet)) { }
+
+ void Read() override;
+
+ ObjectGuid Banker;
+ uint8 BankTab = 0;
+ uint8 BankSlot = 0;
+ Optional<uint8> ContainerSlot;
+ uint8 ContainerItemSlot = 0;
+ uint32 StackCount = 0;
+ };
+
+ class MergeGuildBankItemWithItem final : public ClientPacket
+ {
+ public:
+ MergeGuildBankItemWithItem(WorldPacket&& packet) : ClientPacket(CMSG_MERGE_GUILD_BANK_ITEM_WITH_ITEM, std::move(packet)) { }
+
+ void Read() override;
+
+ ObjectGuid Banker;
+ uint8 BankTab = 0;
+ uint8 BankSlot = 0;
+ Optional<uint8> ContainerSlot;
+ uint8 ContainerItemSlot = 0;
+ uint32 StackCount = 0;
+ };
+
+ class SplitGuildBankItemToInventory final : public ClientPacket
+ {
+ public:
+ SplitGuildBankItemToInventory(WorldPacket&& packet) : ClientPacket(CMSG_SPLIT_GUILD_BANK_ITEM_TO_INVENTORY, std::move(packet)) { }
+
+ void Read() override;
+
+ ObjectGuid Banker;
+ uint8 BankTab = 0;
+ uint8 BankSlot = 0;
+ Optional<uint8> ContainerSlot;
+ uint8 ContainerItemSlot = 0;
+ uint32 StackCount = 0;
+ };
+
+ class AutoStoreGuildBankItem final : public ClientPacket
+ {
+ public:
+ AutoStoreGuildBankItem(WorldPacket&& packet) : ClientPacket(CMSG_AUTO_STORE_GUILD_BANK_ITEM, std::move(packet)) { }
+
+ void Read() override;
+
+ ObjectGuid Banker;
+ uint8 BankTab = 0;
+ uint8 BankSlot = 0;
+ };
+
+ class MergeGuildBankItemWithGuildBankItem final : public ClientPacket
+ {
+ public:
+ MergeGuildBankItemWithGuildBankItem(WorldPacket&& packet) : ClientPacket(CMSG_MERGE_GUILD_BANK_ITEM_WITH_GUILD_BANK_ITEM, std::move(packet)) { }
+
+ void Read() override;
+
+ ObjectGuid Banker;
+ uint8 BankTab = 0;
+ uint8 BankSlot = 0;
+ uint8 BankTab1 = 0;
+ uint8 BankSlot1 = 0;
+ uint32 StackCount = 0;
+ };
+
+ class SplitGuildBankItem final : public ClientPacket
+ {
+ public:
+ SplitGuildBankItem(WorldPacket&& packet) : ClientPacket(CMSG_SPLIT_GUILD_BANK_ITEM, std::move(packet)) { }
+
+ void Read() override;
+
+ ObjectGuid Banker;
+ uint8 BankTab = 0;
+ uint8 BankSlot = 0;
+ uint8 BankTab1 = 0;
+ uint8 BankSlot1 = 0;
+ uint32 StackCount = 0;
+ };
+
class GuildBankLogQuery final : public ClientPacket
{
public:
diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp
index ddbabb4822a..c698eab64b7 100644
--- a/src/server/game/Server/Protocol/Opcodes.cpp
+++ b/src/server/game/Server/Protocol/Opcodes.cpp
@@ -180,6 +180,7 @@ void OpcodeTable::Initialize()
DEFINE_HANDLER(CMSG_AUTO_EQUIP_ITEM, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleAutoEquipItemOpcode);
DEFINE_HANDLER(CMSG_AUTO_EQUIP_ITEM_SLOT, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleAutoEquipItemSlotOpcode);
DEFINE_HANDLER(CMSG_AUTO_STORE_BAG_ITEM, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleAutoStoreBagItemOpcode);
+ DEFINE_HANDLER(CMSG_AUTO_STORE_GUILD_BANK_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_AZERITE_EMPOWERED_ITEM_SELECT_POWER, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleAzeriteEmpoweredItemSelectPower);
DEFINE_HANDLER(CMSG_AZERITE_EMPOWERED_ITEM_VIEWED, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleAzeriteEmpoweredItemViewed);
DEFINE_HANDLER(CMSG_AZERITE_ESSENCE_ACTIVATE_ESSENCE, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleAzeriteEssenceActivateEssence);
@@ -364,6 +365,7 @@ void OpcodeTable::Initialize()
DEFINE_HANDLER(CMSG_DELETE_EQUIPMENT_SET, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleDeleteEquipmentSet);
DEFINE_HANDLER(CMSG_DEL_FRIEND, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleDelFriendOpcode);
DEFINE_HANDLER(CMSG_DEL_IGNORE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleDelIgnoreOpcode);
+ DEFINE_HANDLER(CMSG_DEPOSIT_GUILD_BANK_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_DEPOSIT_REAGENT_BANK, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_DESTROY_ITEM, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleDestroyItemOpcode);
DEFINE_HANDLER(CMSG_DF_BOOT_PLAYER_VOTE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleLfgSetBootVoteOpcode);
@@ -548,6 +550,9 @@ void OpcodeTable::Initialize()
DEFINE_HANDLER(CMSG_MAIL_TAKE_MONEY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMailTakeMoney);
DEFINE_HANDLER(CMSG_MAKE_CONTITIONAL_APPEARANCE_PERMANENT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_MASTER_LOOT_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleLootMasterGiveOpcode);
+ DEFINE_HANDLER(CMSG_MERGE_GUILD_BANK_ITEM_WITH_GUILD_BANK_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
+ DEFINE_HANDLER(CMSG_MERGE_GUILD_BANK_ITEM_WITH_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
+ DEFINE_HANDLER(CMSG_MERGE_ITEM_WITH_GUILD_BANK_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_MINIMAP_PING, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMinimapPingOpcode);
DEFINE_HANDLER(CMSG_MISSILE_TRAJECTORY_COLLISION, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMissileTrajectoryCollision);
DEFINE_HANDLER(CMSG_MOUNT_CLEAR_FANFARE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
@@ -578,6 +583,7 @@ void OpcodeTable::Initialize()
DEFINE_HANDLER(CMSG_MOVE_FORCE_WALK_SPEED_CHANGE_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleForceSpeedChangeAck);
DEFINE_HANDLER(CMSG_MOVE_GRAVITY_DISABLE_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMovementAckMessage);
DEFINE_HANDLER(CMSG_MOVE_GRAVITY_ENABLE_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMovementAckMessage);
+ DEFINE_HANDLER(CMSG_MOVE_GUILD_BANK_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_MOVE_HEARTBEAT, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes);
DEFINE_HANDLER(CMSG_MOVE_HOVER_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMovementAckMessage);
DEFINE_HANDLER(CMSG_MOVE_INIT_ACTIVE_MOVER_COMPLETE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
@@ -833,11 +839,15 @@ void OpcodeTable::Initialize()
DEFINE_HANDLER(CMSG_SORT_REAGENT_BANK_BAGS, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleSortReagentBankBags);
DEFINE_HANDLER(CMSG_SPELL_CLICK, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleSpellClick);
DEFINE_HANDLER(CMSG_SPIRIT_HEALER_ACTIVATE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSpiritHealerActivate);
+ DEFINE_HANDLER(CMSG_SPLIT_GUILD_BANK_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
+ DEFINE_HANDLER(CMSG_SPLIT_GUILD_BANK_ITEM_TO_INVENTORY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_SPLIT_ITEM, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleSplitItemOpcode);
+ DEFINE_HANDLER(CMSG_SPLIT_ITEM_TO_GUILD_BANK, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_STAND_STATE_CHANGE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleStandStateChangeOpcode);
DEFINE_HANDLER(CMSG_START_CHALLENGE_MODE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_START_SPECTATOR_WAR_GAME, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_START_WAR_GAME, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL);
+ DEFINE_HANDLER(CMSG_STORE_GUILD_BANK_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_SUBMIT_USER_FEEDBACK, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSubmitUserFeedback);
DEFINE_HANDLER(CMSG_SUBSCRIPTION_INTERSTITIAL_RESPONSE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_SUMMON_RESPONSE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSummonResponseOpcode);
@@ -845,8 +855,10 @@ void OpcodeTable::Initialize()
DEFINE_HANDLER(CMSG_SURRENDER_ARENA, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_SUSPEND_COMMS_ACK, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_SUSPEND_TOKEN_RESPONSE, STATUS_TRANSFER, PROCESS_THREADUNSAFE, &WorldSession::HandleSuspendTokenResponse);
+ DEFINE_HANDLER(CMSG_SWAP_GUILD_BANK_ITEM_WITH_GUILD_BANK_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_SWAP_INV_ITEM, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleSwapInvItemOpcode);
DEFINE_HANDLER(CMSG_SWAP_ITEM, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleSwapItem);
+ DEFINE_HANDLER(CMSG_SWAP_ITEM_WITH_GUILD_BANK_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_SWAP_SUB_GROUPS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSwapSubGroupsOpcode);
DEFINE_HANDLER(CMSG_SWAP_VOID_ITEM, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleVoidSwapItem);
DEFINE_HANDLER(CMSG_TABARD_VENDOR_ACTIVATE, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleTabardVendorActivateOpcode);
diff --git a/src/server/game/Server/Protocol/Opcodes.h b/src/server/game/Server/Protocol/Opcodes.h
index afad1fccf3f..9e7250813df 100644
--- a/src/server/game/Server/Protocol/Opcodes.h
+++ b/src/server/game/Server/Protocol/Opcodes.h
@@ -94,6 +94,7 @@ enum OpcodeClient : uint16
CMSG_AUTO_EQUIP_ITEM = 0x399A,
CMSG_AUTO_EQUIP_ITEM_SLOT = 0x399F,
CMSG_AUTO_STORE_BAG_ITEM = 0x399B,
+ CMSG_AUTO_STORE_GUILD_BANK_ITEM = 0x34C6,
CMSG_AZERITE_EMPOWERED_ITEM_SELECT_POWER = 0x3386,
CMSG_AZERITE_EMPOWERED_ITEM_VIEWED = 0x3368,
CMSG_AZERITE_ESSENCE_ACTIVATE_ESSENCE = 0x3388,
@@ -278,6 +279,7 @@ enum OpcodeClient : uint16
CMSG_DELETE_EQUIPMENT_SET = 0x3519,
CMSG_DEL_FRIEND = 0x36D1,
CMSG_DEL_IGNORE = 0x36D5,
+ CMSG_DEPOSIT_GUILD_BANK_ITEM = 0x34BD,
CMSG_DEPOSIT_REAGENT_BANK = 0x334A,
CMSG_DESTROY_ITEM = 0x32A1,
CMSG_DF_BOOT_PLAYER_VOTE = 0x3615,
@@ -462,6 +464,9 @@ enum OpcodeClient : uint16
CMSG_MAIL_TAKE_MONEY = 0x3549,
CMSG_MAKE_CONTITIONAL_APPEARANCE_PERMANENT = 0x322E,
CMSG_MASTER_LOOT_ITEM = 0x3216,
+ CMSG_MERGE_GUILD_BANK_ITEM_WITH_GUILD_BANK_ITEM = 0x34C7,
+ CMSG_MERGE_GUILD_BANK_ITEM_WITH_ITEM = 0x34C4,
+ CMSG_MERGE_ITEM_WITH_GUILD_BANK_ITEM = 0x34C2,
CMSG_MINIMAP_PING = 0x364B,
CMSG_MISSILE_TRAJECTORY_COLLISION = 0x318B,
CMSG_MOUNT_CLEAR_FANFARE = 0x312D,
@@ -492,6 +497,7 @@ enum OpcodeClient : uint16
CMSG_MOVE_FORCE_WALK_SPEED_CHANGE_ACK = 0x3A20,
CMSG_MOVE_GRAVITY_DISABLE_ACK = 0x3A34,
CMSG_MOVE_GRAVITY_ENABLE_ACK = 0x3A35,
+ CMSG_MOVE_GUILD_BANK_ITEM = 0x34C1,
CMSG_MOVE_HEARTBEAT = 0x3A0F,
CMSG_MOVE_HOVER_ACK = 0x3A12,
CMSG_MOVE_INIT_ACTIVE_MOVER_COMPLETE = 0x3A43,
@@ -747,11 +753,15 @@ enum OpcodeClient : uint16
CMSG_SORT_REAGENT_BANK_BAGS = 0x3349,
CMSG_SPELL_CLICK = 0x349B,
CMSG_SPIRIT_HEALER_ACTIVATE = 0x34B5,
+ CMSG_SPLIT_GUILD_BANK_ITEM = 0x34C8,
+ CMSG_SPLIT_GUILD_BANK_ITEM_TO_INVENTORY = 0x34C5,
CMSG_SPLIT_ITEM = 0x399E,
+ CMSG_SPLIT_ITEM_TO_GUILD_BANK = 0x34C3,
CMSG_STAND_STATE_CHANGE = 0x318A,
CMSG_START_CHALLENGE_MODE = 0x355C,
CMSG_START_SPECTATOR_WAR_GAME = 0x35DF,
CMSG_START_WAR_GAME = 0x35DE,
+ CMSG_STORE_GUILD_BANK_ITEM = 0x34BE,
CMSG_SUBMIT_USER_FEEDBACK = 0x3697,
CMSG_SUBSCRIPTION_INTERSTITIAL_RESPONSE = 0x33E9,
CMSG_SUMMON_RESPONSE = 0x366A,
@@ -759,8 +769,10 @@ enum OpcodeClient : uint16
CMSG_SURRENDER_ARENA = 0x3174,
CMSG_SUSPEND_COMMS_ACK = 0x3764,
CMSG_SUSPEND_TOKEN_RESPONSE = 0x376A,
+ CMSG_SWAP_GUILD_BANK_ITEM_WITH_GUILD_BANK_ITEM = 0x34C0,
CMSG_SWAP_INV_ITEM = 0x399D,
CMSG_SWAP_ITEM = 0x399C,
+ CMSG_SWAP_ITEM_WITH_GUILD_BANK_ITEM = 0x34BF,
CMSG_SWAP_SUB_GROUPS = 0x364D,
CMSG_SWAP_VOID_ITEM = 0x31A6,
CMSG_TABARD_VENDOR_ACTIVATE = 0x32B9,
diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h
index 3a84425e49c..f030d9fa046 100644
--- a/src/server/game/Server/WorldSession.h
+++ b/src/server/game/Server/WorldSession.h
@@ -363,6 +363,18 @@ namespace WorldPackets
class GuildBankDepositMoney;
class GuildBankWithdrawMoney;
class GuildBankSwapItems;
+ class DepositGuildBankItem;
+ class StoreGuildBankItem;
+ class SwapItemWithGuildBankItem;
+ class SwapGuildBankItemWithGuildBankItem;
+ class MoveGuildBankItem;
+ class MergeItemWithGuildBankItem;
+ class SplitItemToGuildBank;
+ class MergeGuildBankItemWithItem;
+ class SplitGuildBankItemToInventory;
+ class AutoStoreGuildBankItem;
+ class MergeGuildBankItemWithGuildBankItem;
+ class SplitGuildBankItem;
class GuildBankBuyTab;
class GuildBankUpdateTab;
class GuildBankLogQuery;
@@ -1635,6 +1647,18 @@ class TC_GAME_API WorldSession
void HandleGuildBankDepositMoney(WorldPackets::Guild::GuildBankDepositMoney& packet);
void HandleGuildBankWithdrawMoney(WorldPackets::Guild::GuildBankWithdrawMoney& packet);
void HandleGuildBankSwapItems(WorldPackets::Guild::GuildBankSwapItems& packet);
+ void HandleDepositGuildBankItem(WorldPackets::Guild::DepositGuildBankItem& depositGuildBankItem);
+ void HandleStoreGuildBankItem(WorldPackets::Guild::StoreGuildBankItem& storeGuildBankItem);
+ void HandleSwapItemWithGuildBankItem(WorldPackets::Guild::SwapItemWithGuildBankItem& swapItemWithGuildBankItem);
+ void HandleSwapGuildBankItemWithGuildBankItem(WorldPackets::Guild::SwapGuildBankItemWithGuildBankItem& swapGuildBankItemWithGuildBankItem);
+ void HandleMoveGuildBankItem(WorldPackets::Guild::MoveGuildBankItem& moveGuildBankItem);
+ void HandleMergeItemWithGuildBankItem(WorldPackets::Guild::MergeItemWithGuildBankItem& mergeItemWithGuildBankItem);
+ void HandleSplitItemToGuildBank(WorldPackets::Guild::SplitItemToGuildBank& splitItemToGuildBank);
+ void HandleMergeGuildBankItemWithItem(WorldPackets::Guild::MergeGuildBankItemWithItem& mergeGuildBankItemWithItem);
+ void HandleSplitGuildBankItemToInventory(WorldPackets::Guild::SplitGuildBankItemToInventory& splitGuildBankItemToInventory);
+ void HandleAutoStoreGuildBankItem(WorldPackets::Guild::AutoStoreGuildBankItem& autoStoreGuildBankItem);
+ void HandleMergeGuildBankItemWithGuildBankItem(WorldPackets::Guild::MergeGuildBankItemWithGuildBankItem& mergeGuildBankItemWithGuildBankItem);
+ void HandleSplitGuildBankItem(WorldPackets::Guild::SplitGuildBankItem& splitGuildBankItem);
void HandleGuildBankUpdateTab(WorldPackets::Guild::GuildBankUpdateTab& packet);
void HandleGuildBankBuyTab(WorldPackets::Guild::GuildBankBuyTab& packet);