mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-26 11:52:32 +01:00
Core/Packets:
* updated remaining guild bank client opcodes to packet class * corrected gem socket data naming for guild bank query packet * renamed several opcodes to match master branch namings
This commit is contained in:
@@ -3632,9 +3632,9 @@ void Guild::_SendBankContentUpdate(uint8 tabId, SlotIds slots) const
|
||||
{
|
||||
if (uint32 enchantId = tabItem->GetEnchantmentId(EnchantmentSlot(enchSlot)))
|
||||
{
|
||||
WorldPackets::Item::ItemGemData gem;
|
||||
gem.EnchantmentId = enchantId;
|
||||
gem.Slot = slotIndex;
|
||||
WorldPackets::Guild::GuildBankItemInfo::GuildBankSocketEnchant gem;
|
||||
gem.SocketIndex = slotIndex;
|
||||
gem.SocketEnchantID = enchantId;
|
||||
itemInfo.SocketEnchant.push_back(gem);
|
||||
}
|
||||
slotIndex++;
|
||||
@@ -3741,9 +3741,9 @@ void Guild::SendBankList(WorldSession* session, uint8 tabId, bool fullUpdate) co
|
||||
{
|
||||
if (uint32 enchantId = tabItem->GetEnchantmentId(EnchantmentSlot(enchSlot)))
|
||||
{
|
||||
WorldPackets::Item::ItemGemData gem;
|
||||
gem.EnchantmentId = enchantId;
|
||||
gem.Slot = slotIndex;
|
||||
WorldPackets::Guild::GuildBankItemInfo::GuildBankSocketEnchant gem;
|
||||
gem.SocketIndex = slotIndex;
|
||||
gem.SocketEnchantID = enchantId;
|
||||
itemInfo.SocketEnchant.push_back(gem);
|
||||
}
|
||||
slotIndex++;
|
||||
|
||||
@@ -379,17 +379,17 @@ void WorldSession::HandleGuildEventLogQueryOpcode(WorldPacket& /* recvPacket */)
|
||||
guild->SendEventLog(this);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildBankMoneyWithdrawn(WorldPacket& /* recvPacket */)
|
||||
void WorldSession::HandleGuildBankMoneyWithdrawn(WorldPackets::Guild::GuildBankRemainingWithdrawMoneyQuery& /*recvPacket */)
|
||||
{
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_BANK_MONEY_WITHDRAWN [%s]", GetPlayerInfo().c_str());
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_BANK_REMAINING_WITHDRAW_MONEY_QUERY [%s]", GetPlayerInfo().c_str());
|
||||
|
||||
if (Guild* guild = GetPlayer()->GetGuild())
|
||||
guild->SendMoneyInfo(this);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildPermissions(WorldPacket& /* recvPacket */)
|
||||
void WorldSession::HandleGuildPermissionsQuery(WorldPackets::Guild::GuildPermissionsQuery& /*packet*/)
|
||||
{
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_PERMISSIONS [%s]", GetPlayerInfo().c_str());
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_PERMISSIONS_QUERY [%s]", GetPlayerInfo().c_str());
|
||||
|
||||
if (Guild* guild = GetPlayer()->GetGuild())
|
||||
guild->SendPermissions(this);
|
||||
@@ -426,114 +426,50 @@ void WorldSession::HandleGuildBankQueryTab(WorldPackets::Guild::GuildBankQueryTa
|
||||
guild->SendBankList(this, packet.Tab, packet.FullUpdate);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildBankDepositMoney(WorldPacket& recvPacket)
|
||||
void WorldSession::HandleGuildBankDepositMoney(WorldPackets::Guild::GuildBankDepositMoney& packet)
|
||||
{
|
||||
ObjectGuid guid;
|
||||
uint64 money;
|
||||
recvPacket >> guid >> money;
|
||||
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_BANK_DEPOSIT_MONEY [%s]: [%s], money: " UI64FMTD,
|
||||
GetPlayerInfo().c_str(), guid.ToString().c_str(), money);
|
||||
GetPlayerInfo().c_str(), packet.Banker.ToString().c_str(), packet.Money);
|
||||
|
||||
if (GetPlayer()->GetGameObjectIfCanInteractWith(guid, GAMEOBJECT_TYPE_GUILD_BANK))
|
||||
if (money && GetPlayer()->HasEnoughMoney(money))
|
||||
if (GetPlayer()->GetGameObjectIfCanInteractWith(packet.Banker, GAMEOBJECT_TYPE_GUILD_BANK))
|
||||
if (packet.Money && GetPlayer()->HasEnoughMoney(packet.Money))
|
||||
if (Guild* guild = GetPlayer()->GetGuild())
|
||||
guild->HandleMemberDepositMoney(this, money);
|
||||
guild->HandleMemberDepositMoney(this, packet.Money);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildBankWithdrawMoney(WorldPacket& recvPacket)
|
||||
void WorldSession::HandleGuildBankWithdrawMoney(WorldPackets::Guild::GuildBankWithdrawMoney& packet)
|
||||
{
|
||||
ObjectGuid guid;
|
||||
uint64 money;
|
||||
recvPacket >> guid >> money;
|
||||
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_BANK_WITHDRAW_MONEY [%s]: [%s], money: " UI64FMTD,
|
||||
GetPlayerInfo().c_str(), guid.ToString().c_str(), money);
|
||||
GetPlayerInfo().c_str(), packet.Banker.ToString().c_str(), packet.Money);
|
||||
|
||||
if (money && GetPlayer()->GetGameObjectIfCanInteractWith(guid, GAMEOBJECT_TYPE_GUILD_BANK))
|
||||
if (packet.Money && GetPlayer()->GetGameObjectIfCanInteractWith(packet.Banker, GAMEOBJECT_TYPE_GUILD_BANK))
|
||||
if (Guild* guild = GetPlayer()->GetGuild())
|
||||
guild->HandleMemberWithdrawMoney(this, money);
|
||||
guild->HandleMemberWithdrawMoney(this, packet.Money);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildBankSwapItems(WorldPacket& recvPacket)
|
||||
void WorldSession::HandleGuildBankSwapItems(WorldPackets::Guild::GuildBankSwapItems& packet)
|
||||
{
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_BANK_SWAP_ITEMS [%s]", GetPlayerInfo().c_str());
|
||||
|
||||
ObjectGuid GoGuid;
|
||||
recvPacket >> GoGuid;
|
||||
|
||||
if (!GetPlayer()->GetGameObjectIfCanInteractWith(GoGuid, GAMEOBJECT_TYPE_GUILD_BANK))
|
||||
{
|
||||
recvPacket.rfinish(); // Prevent additional spam at rejected packet
|
||||
if (!GetPlayer()->GetGameObjectIfCanInteractWith(packet.Banker, GAMEOBJECT_TYPE_GUILD_BANK))
|
||||
return;
|
||||
}
|
||||
|
||||
Guild* guild = GetPlayer()->GetGuild();
|
||||
if (!guild)
|
||||
{
|
||||
recvPacket.rfinish(); // Prevent additional spam at rejected packet
|
||||
return;
|
||||
}
|
||||
|
||||
uint8 bankToBank;
|
||||
recvPacket >> bankToBank;
|
||||
|
||||
uint8 tabId;
|
||||
uint8 slotId;
|
||||
uint32 itemEntry;
|
||||
uint32 splitedAmount = 0;
|
||||
|
||||
if (bankToBank)
|
||||
if (packet.BankOnly)
|
||||
{
|
||||
uint8 destTabId;
|
||||
recvPacket >> destTabId;
|
||||
|
||||
uint8 destSlotId;
|
||||
recvPacket >> destSlotId;
|
||||
|
||||
uint32 destItemEntry;
|
||||
recvPacket >> destItemEntry;
|
||||
|
||||
recvPacket >> tabId;
|
||||
recvPacket >> slotId;
|
||||
recvPacket >> itemEntry;
|
||||
recvPacket.read_skip<uint8>(); // Always 0
|
||||
recvPacket >> splitedAmount;
|
||||
|
||||
guild->SwapItems(GetPlayer(), tabId, slotId, destTabId, destSlotId, splitedAmount);
|
||||
guild->SwapItems(GetPlayer(), packet.BankTab1, packet.BankSlot1, packet.BankTab, packet.BankSlot, packet.StackCount);
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8 playerBag = NULL_BAG;
|
||||
uint8 playerSlotId = NULL_SLOT;
|
||||
uint8 toChar = 1;
|
||||
|
||||
recvPacket >> tabId;
|
||||
recvPacket >> slotId;
|
||||
recvPacket >> itemEntry;
|
||||
|
||||
uint8 autoStore;
|
||||
recvPacket >> autoStore;
|
||||
if (autoStore)
|
||||
{
|
||||
recvPacket.read_skip<uint32>(); // autoStoreCount
|
||||
recvPacket.read_skip<uint8>(); // ToChar (?), always and expected to be 1 (autostore only triggered in Bank -> Char)
|
||||
recvPacket.read_skip<uint32>(); // Always 0
|
||||
}
|
||||
else
|
||||
{
|
||||
recvPacket >> playerBag;
|
||||
recvPacket >> playerSlotId;
|
||||
recvPacket >> toChar;
|
||||
recvPacket >> splitedAmount;
|
||||
}
|
||||
|
||||
// Player <-> Bank
|
||||
// Allow to work with inventory only
|
||||
if (!Player::IsInventoryPos(playerBag, playerSlotId) && !(playerBag == NULL_BAG && playerSlotId == NULL_SLOT))
|
||||
if (!Player::IsInventoryPos(packet.ContainerSlot, packet.ContainerItemSlot) && !packet.AutoStore)
|
||||
GetPlayer()->SendEquipError(EQUIP_ERR_INTERNAL_BAG_ERROR, nullptr);
|
||||
else
|
||||
guild->SwapItemsWithInventory(GetPlayer(), toChar != 0, tabId, slotId, playerBag, playerSlotId, splitedAmount);
|
||||
guild->SwapItemsWithInventory(GetPlayer(), packet.ToSlot != 0, packet.BankTab, packet.BankSlot, packet.ContainerSlot, packet.ContainerItemSlot, packet.StackCount);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -556,69 +492,35 @@ void WorldSession::HandleGuildBankUpdateTab(WorldPackets::Guild::GuildBankUpdate
|
||||
guild->HandleSetBankTabInfo(this, packet.BankTab, packet.Name, packet.Icon);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildBankLogQuery(WorldPacket& recvPacket)
|
||||
void WorldSession::HandleGuildBankLogQuery(WorldPackets::Guild::GuildBankLogQuery& packet)
|
||||
{
|
||||
uint32 tabId;
|
||||
recvPacket >> tabId;
|
||||
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_BANK_LOG_QUERY [%s]: TabId: %u", GetPlayerInfo().c_str(), tabId);
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_BANK_LOG_QUERY [%s]: TabId: %u", GetPlayerInfo().c_str(), packet.Tab);
|
||||
|
||||
if (Guild* guild = GetPlayer()->GetGuild())
|
||||
guild->SendBankLog(this, tabId);
|
||||
guild->SendBankLog(this, packet.Tab);
|
||||
}
|
||||
|
||||
void WorldSession::HandleQueryGuildBankTabText(WorldPacket &recvPacket)
|
||||
void WorldSession::HandleGuildBankTextQuery(WorldPackets::Guild::GuildBankTextQuery& packet)
|
||||
{
|
||||
uint8 tabId;
|
||||
recvPacket >> tabId;
|
||||
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_BANK_QUERY_TEXT [%s]: TabId: %u", GetPlayerInfo().c_str(), tabId);
|
||||
TC_LOG_DEBUG("guild", "CMSG_GUILD_BANK_TEXT_QUERY [%s]: TabId: %u", GetPlayerInfo().c_str(), packet.Tab);
|
||||
|
||||
if (Guild* guild = GetPlayer()->GetGuild())
|
||||
guild->SendBankTabText(this, tabId);
|
||||
guild->SendBankTabText(this, packet.Tab);
|
||||
}
|
||||
|
||||
void WorldSession::HandleSetGuildBankTabText(WorldPacket& recvPacket)
|
||||
void WorldSession::HandleGuildBankSetTabText(WorldPackets::Guild::GuildBankSetTabText& packet)
|
||||
{
|
||||
uint32 tabId;
|
||||
recvPacket >> tabId;
|
||||
|
||||
uint32 textLen = recvPacket.ReadBits(14);
|
||||
std::string text = recvPacket.ReadString(textLen);
|
||||
|
||||
TC_LOG_DEBUG("guild", "CMSG_SET_GUILD_BANK_TEXT [%s]: TabId: %u, Text: %s", GetPlayerInfo().c_str(), tabId, text.c_str());
|
||||
TC_LOG_DEBUG("guild", "CMSG_SET_GUILD_BANK_TEXT [%s]: TabId: %u, Text: %s", GetPlayerInfo().c_str(), packet.Tab, packet.TabText.c_str());
|
||||
|
||||
if (Guild* guild = GetPlayer()->GetGuild())
|
||||
guild->SetBankTabText(tabId, text);
|
||||
guild->SetBankTabText(packet.Tab, packet.TabText);
|
||||
}
|
||||
|
||||
void WorldSession::HandleGuildQueryXPOpcode(WorldPacket& recvPacket)
|
||||
void WorldSession::HandleGuildXPQueryOpcode(WorldPackets::Guild::GuildXPQuery& packet)
|
||||
{
|
||||
TC_LOG_DEBUG("network", "WORLD: Received CMSG_QUERY_GUILD_XP");
|
||||
TC_LOG_DEBUG("guild", "CMSG_QUERY_GUILD_XP [%s]: Guild: %s", GetPlayerInfo().c_str(), packet.GuildGUID.ToString().c_str());
|
||||
|
||||
ObjectGuid guildGuid;
|
||||
|
||||
guildGuid[2] = recvPacket.ReadBit();
|
||||
guildGuid[1] = recvPacket.ReadBit();
|
||||
guildGuid[0] = recvPacket.ReadBit();
|
||||
guildGuid[5] = recvPacket.ReadBit();
|
||||
guildGuid[4] = recvPacket.ReadBit();
|
||||
guildGuid[7] = recvPacket.ReadBit();
|
||||
guildGuid[6] = recvPacket.ReadBit();
|
||||
guildGuid[3] = recvPacket.ReadBit();
|
||||
|
||||
recvPacket.ReadByteSeq(guildGuid[7]);
|
||||
recvPacket.ReadByteSeq(guildGuid[2]);
|
||||
recvPacket.ReadByteSeq(guildGuid[3]);
|
||||
recvPacket.ReadByteSeq(guildGuid[6]);
|
||||
recvPacket.ReadByteSeq(guildGuid[1]);
|
||||
recvPacket.ReadByteSeq(guildGuid[5]);
|
||||
recvPacket.ReadByteSeq(guildGuid[0]);
|
||||
recvPacket.ReadByteSeq(guildGuid[4]);
|
||||
|
||||
TC_LOG_DEBUG("guild", "CMSG_QUERY_GUILD_XP [%s]: Guild: %s", GetPlayerInfo().c_str(), guildGuid.ToString().c_str());
|
||||
|
||||
if (Guild* guild = sGuildMgr->GetGuildByGuid(guildGuid))
|
||||
if (Guild* guild = sGuildMgr->GetGuildByGuid(packet.GuildGUID))
|
||||
if (guild->IsMember(_player->GetGUID()))
|
||||
guild->SendGuildXP(this);
|
||||
}
|
||||
|
||||
@@ -44,6 +44,94 @@ void WorldPackets::Guild::GuildBankUpdateTab::Read()
|
||||
_worldPacket >> Icon;
|
||||
}
|
||||
|
||||
void WorldPackets::Guild::GuildBankDepositMoney::Read()
|
||||
{
|
||||
_worldPacket >> Banker;
|
||||
_worldPacket >> Money;
|
||||
}
|
||||
|
||||
void WorldPackets::Guild::GuildBankWithdrawMoney::Read()
|
||||
{
|
||||
_worldPacket >> Banker;
|
||||
_worldPacket >> Money;
|
||||
}
|
||||
|
||||
void WorldPackets::Guild::GuildBankLogQuery::Read()
|
||||
{
|
||||
_worldPacket >> Tab;
|
||||
}
|
||||
|
||||
void WorldPackets::Guild::GuildBankSwapItems::Read()
|
||||
{
|
||||
_worldPacket >> Banker;
|
||||
_worldPacket >> BankOnly;
|
||||
|
||||
if (BankOnly)
|
||||
{
|
||||
_worldPacket >> BankTab;
|
||||
_worldPacket >> BankSlot;
|
||||
_worldPacket >> ItemID;
|
||||
_worldPacket >> BankTab1;
|
||||
_worldPacket >> BankSlot1;
|
||||
_worldPacket >> ItemID1;
|
||||
_worldPacket >> ToSlot;
|
||||
_worldPacket >> StackCount;
|
||||
}
|
||||
else
|
||||
{
|
||||
_worldPacket >> BankTab;
|
||||
_worldPacket >> BankSlot;
|
||||
_worldPacket >> ItemID;
|
||||
_worldPacket >> AutoStore;
|
||||
if (AutoStore)
|
||||
{
|
||||
_worldPacket >> StackCount;
|
||||
_worldPacket >> ToSlot;
|
||||
_worldPacket >> BankItemCount;
|
||||
}
|
||||
else
|
||||
{
|
||||
_worldPacket >> ContainerSlot;
|
||||
_worldPacket >> ContainerItemSlot;
|
||||
_worldPacket >> ToSlot;
|
||||
_worldPacket >> StackCount;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void WorldPackets::Guild::GuildBankTextQuery::Read()
|
||||
{
|
||||
_worldPacket >> Tab;
|
||||
}
|
||||
|
||||
void WorldPackets::Guild::GuildBankSetTabText::Read()
|
||||
{
|
||||
_worldPacket >> Tab;
|
||||
uint32 length = _worldPacket.ReadBits(14);
|
||||
TabText = _worldPacket.ReadString(length);
|
||||
}
|
||||
|
||||
void WorldPackets::Guild::GuildXPQuery::Read()
|
||||
{
|
||||
GuildGUID[2] = _worldPacket.ReadBit();
|
||||
GuildGUID[1] = _worldPacket.ReadBit();
|
||||
GuildGUID[0] = _worldPacket.ReadBit();
|
||||
GuildGUID[5] = _worldPacket.ReadBit();
|
||||
GuildGUID[4] = _worldPacket.ReadBit();
|
||||
GuildGUID[7] = _worldPacket.ReadBit();
|
||||
GuildGUID[6] = _worldPacket.ReadBit();
|
||||
GuildGUID[3] = _worldPacket.ReadBit();
|
||||
|
||||
_worldPacket.ReadByteSeq(GuildGUID[7]);
|
||||
_worldPacket.ReadByteSeq(GuildGUID[2]);
|
||||
_worldPacket.ReadByteSeq(GuildGUID[3]);
|
||||
_worldPacket.ReadByteSeq(GuildGUID[6]);
|
||||
_worldPacket.ReadByteSeq(GuildGUID[1]);
|
||||
_worldPacket.ReadByteSeq(GuildGUID[5]);
|
||||
_worldPacket.ReadByteSeq(GuildGUID[0]);
|
||||
_worldPacket.ReadByteSeq(GuildGUID[4]);
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Guild::GuildBankQueryResults::Write()
|
||||
{
|
||||
_worldPacket.WriteBit(FullUpdate);
|
||||
@@ -73,8 +161,11 @@ WorldPacket const* WorldPackets::Guild::GuildBankQueryResults::Write()
|
||||
|
||||
for (GuildBankItemInfo const& item : ItemInfo)
|
||||
{
|
||||
for (Item::ItemGemData const& socketEnchant : item.SocketEnchant)
|
||||
_worldPacket << socketEnchant;
|
||||
for (Guild::GuildBankItemInfo::GuildBankSocketEnchant const& socketEnchant : item.SocketEnchant)
|
||||
{
|
||||
_worldPacket << socketEnchant.SocketIndex;
|
||||
_worldPacket << socketEnchant.SocketEnchantID;
|
||||
}
|
||||
|
||||
_worldPacket << uint32(item.EnchantmentID);
|
||||
_worldPacket << uint32(item.ReforgeEnchantmentID);
|
||||
|
||||
@@ -74,8 +74,116 @@ namespace WorldPackets
|
||||
std::string Icon;
|
||||
};
|
||||
|
||||
class GuildBankDepositMoney final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
GuildBankDepositMoney(WorldPacket&& packet) : ClientPacket(CMSG_GUILD_BANK_DEPOSIT_MONEY, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
ObjectGuid Banker;
|
||||
uint64 Money = 0;
|
||||
};
|
||||
|
||||
class GuildBankWithdrawMoney final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
GuildBankWithdrawMoney(WorldPacket&& packet) : ClientPacket(CMSG_GUILD_BANK_WITHDRAW_MONEY, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
ObjectGuid Banker;
|
||||
uint64 Money = 0;
|
||||
};
|
||||
|
||||
class GuildPermissionsQuery final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
GuildPermissionsQuery(WorldPacket&& packet) : ClientPacket(CMSG_GUILD_PERMISSIONS_QUERY, std::move(packet)) { }
|
||||
|
||||
void Read() override { }
|
||||
};
|
||||
|
||||
class GuildBankRemainingWithdrawMoneyQuery final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
GuildBankRemainingWithdrawMoneyQuery(WorldPacket&& packet) : ClientPacket(CMSG_GUILD_BANK_REMAINING_WITHDRAW_MONEY_QUERY, std::move(packet)) { }
|
||||
|
||||
void Read() override { }
|
||||
};
|
||||
|
||||
class GuildBankLogQuery final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
GuildBankLogQuery(WorldPacket&& packet) : ClientPacket(CMSG_GUILD_BANK_LOG_QUERY, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
int32 Tab = 0;
|
||||
};
|
||||
|
||||
class GuildBankSwapItems final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
GuildBankSwapItems(WorldPacket&& packet) : ClientPacket(std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
ObjectGuid Banker;
|
||||
int32 StackCount = 0;
|
||||
int32 BankItemCount = 0;
|
||||
uint32 ItemID = 0;
|
||||
uint32 ItemID1 = 0;
|
||||
uint8 ToSlot = 0;
|
||||
uint8 BankSlot = 0;
|
||||
uint8 BankSlot1 = 0;
|
||||
uint8 BankTab = 0;
|
||||
uint8 BankTab1 = 0;
|
||||
uint8 ContainerSlot = 0;
|
||||
uint8 ContainerItemSlot = 0;
|
||||
bool AutoStore = false;
|
||||
bool BankOnly = false;
|
||||
};
|
||||
|
||||
class GuildBankTextQuery final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
GuildBankTextQuery(WorldPacket&& packet) : ClientPacket(CMSG_GUILD_BANK_TEXT_QUERY, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
int32 Tab = 0;
|
||||
};
|
||||
|
||||
class GuildBankSetTabText final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
GuildBankSetTabText(WorldPacket&& packet) : ClientPacket(CMSG_GUILD_BANK_SET_TAB_TEXT, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
int32 Tab = 0;
|
||||
std::string TabText;
|
||||
};
|
||||
|
||||
class GuildXPQuery final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
GuildXPQuery(WorldPacket&& packet) : ClientPacket(CMSG_GUILD_XP_QUERY, std::move(packet)) { }
|
||||
|
||||
ObjectGuid GuildGUID;
|
||||
|
||||
void Read() override;
|
||||
};
|
||||
|
||||
struct GuildBankItemInfo
|
||||
{
|
||||
struct GuildBankSocketEnchant
|
||||
{
|
||||
int32 SocketIndex = 0;
|
||||
int32 SocketEnchantID = 0;
|
||||
};
|
||||
|
||||
WorldPackets::Item::ItemInstance Item;
|
||||
int32 Slot = 0;
|
||||
int32 Count = 0;
|
||||
@@ -87,7 +195,7 @@ namespace WorldPackets
|
||||
int32 RandomPropertiesSeed = 0;
|
||||
int32 Flags = 0;
|
||||
bool Locked = false;
|
||||
std::vector<Item::ItemGemData> SocketEnchant;
|
||||
std::vector<GuildBankSocketEnchant> SocketEnchant;
|
||||
};
|
||||
|
||||
struct GuildBankTabInfo
|
||||
|
||||
@@ -323,9 +323,10 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_HANDLER(CMSG_GUILD_BANK_BUY_TAB, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildBankBuyTab );
|
||||
DEFINE_HANDLER(CMSG_GUILD_BANK_DEPOSIT_MONEY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildBankDepositMoney );
|
||||
DEFINE_HANDLER(CMSG_GUILD_BANK_LOG_QUERY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildBankLogQuery );
|
||||
DEFINE_HANDLER(CMSG_GUILD_BANK_MONEY_WITHDRAWN_QUERY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildBankMoneyWithdrawn );
|
||||
DEFINE_HANDLER(CMSG_GUILD_BANK_REMAINING_WITHDRAW_MONEY_QUERY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildBankMoneyWithdrawn );
|
||||
DEFINE_HANDLER(CMSG_GUILD_BANK_QUERY_TAB, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildBankQueryTab );
|
||||
DEFINE_HANDLER(CMSG_GUILD_BANK_QUERY_TEXT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleQueryGuildBankTabText );
|
||||
DEFINE_HANDLER(CMSG_GUILD_BANK_TEXT_QUERY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildBankTextQuery );
|
||||
DEFINE_HANDLER(CMSG_GUILD_BANK_SET_TAB_TEXT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildBankSetTabText );
|
||||
DEFINE_HANDLER(CMSG_GUILD_BANK_SWAP_ITEMS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildBankSwapItems );
|
||||
DEFINE_HANDLER(CMSG_GUILD_BANK_UPDATE_TAB, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildBankUpdateTab );
|
||||
DEFINE_HANDLER(CMSG_GUILD_BANK_WITHDRAW_MONEY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildBankWithdrawMoney );
|
||||
@@ -341,7 +342,7 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_HANDLER(CMSG_GUILD_MEMBER_SEND_SOR_REQUEST, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_HANDLER(CMSG_GUILD_MOTD, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildMOTDOpcode );
|
||||
DEFINE_HANDLER(CMSG_GUILD_NEWS_UPDATE_STICKY, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleGuildNewsUpdateStickyOpcode);
|
||||
DEFINE_HANDLER(CMSG_GUILD_PERMISSIONS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildPermissions );
|
||||
DEFINE_HANDLER(CMSG_GUILD_PERMISSIONS_QUERY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildPermissionsQuery );
|
||||
DEFINE_HANDLER(CMSG_GUILD_PROMOTE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildPromoteOpcode );
|
||||
DEFINE_HANDLER(CMSG_GUILD_QUERY, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildQueryOpcode );
|
||||
DEFINE_HANDLER(CMSG_GUILD_QUERY_NEWS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildQueryNewsOpcode );
|
||||
@@ -357,6 +358,7 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_HANDLER(CMSG_GUILD_SET_NOTE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildSetNoteOpcode );
|
||||
DEFINE_HANDLER(CMSG_GUILD_SET_RANK_PERMISSIONS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildSetRankPermissionsOpcode);
|
||||
DEFINE_HANDLER(CMSG_GUILD_SWITCH_RANK, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildSwitchRank );
|
||||
DEFINE_HANDLER(CMSG_GUILD_XP_QUERY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildXPQueryOpcode );
|
||||
DEFINE_HANDLER(CMSG_HEARTH_AND_RESURRECT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleHearthAndResurrect );
|
||||
DEFINE_HANDLER(CMSG_IGNORE_TRADE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleIgnoreTradeOpcode );
|
||||
DEFINE_HANDLER(CMSG_INITIATE_TRADE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleInitiateTradeOpcode );
|
||||
@@ -493,7 +495,6 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_HANDLER(CMSG_QUERY_GUILD_MEMBER_RECIPES, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_HANDLER(CMSG_QUERY_GUILD_RECIPES, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_HANDLER(CMSG_QUERY_GUILD_REWARDS, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleGuildRewardsQueryOpcode );
|
||||
DEFINE_HANDLER(CMSG_QUERY_GUILD_XP, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildQueryXPOpcode ); // STATUS_AUTHED
|
||||
DEFINE_HANDLER(CMSG_QUERY_INSPECT_ACHIEVEMENTS, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleQueryInspectAchievements );
|
||||
DEFINE_HANDLER(CMSG_QUERY_QUESTS_COMPLETED, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleQueryQuestsCompleted );
|
||||
DEFINE_HANDLER(CMSG_QUERY_TIME, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleQueryTimeOpcode );
|
||||
@@ -562,7 +563,6 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_HANDLER(CMSG_SET_EVERYONE_IS_ASSISTANT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
DEFINE_HANDLER(CMSG_SET_FACTION_ATWAR, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetFactionAtWar );
|
||||
DEFINE_HANDLER(CMSG_SET_FACTION_INACTIVE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetFactionInactiveOpcode );
|
||||
DEFINE_HANDLER(CMSG_SET_GUILD_BANK_TEXT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetGuildBankTabText );
|
||||
DEFINE_HANDLER(CMSG_SET_PET_SLOT, STATUS_LOGGEDIN , PROCESS_THREADUNSAFE, &WorldSession::HandleSetPetSlot );
|
||||
DEFINE_HANDLER(CMSG_SET_PLAYER_DECLINED_NAMES, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetPlayerDeclinedNames );
|
||||
DEFINE_HANDLER(CMSG_SET_PREFERED_CEMETERY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
|
||||
@@ -238,10 +238,11 @@ enum Opcodes : uint16
|
||||
CMSG_GUILD_BANK_BUY_TAB = 0x0C37,
|
||||
CMSG_GUILD_BANK_DEPOSIT_MONEY = 0x0707,
|
||||
CMSG_GUILD_BANK_LOG_QUERY = 0x3224,
|
||||
CMSG_GUILD_BANK_MONEY_WITHDRAWN_QUERY = 0x1225,
|
||||
CMSG_GUILD_BANK_REMAINING_WITHDRAW_MONEY_QUERY = 0x1225,
|
||||
CMSG_GUILD_BANK_NOTE = 0x0000,
|
||||
CMSG_GUILD_BANK_QUERY_TAB = 0x2E35,
|
||||
CMSG_GUILD_BANK_QUERY_TEXT = 0x3220,
|
||||
CMSG_GUILD_BANK_TEXT_QUERY = 0x3220,
|
||||
CMSG_GUILD_BANK_SET_TAB_TEXT = 0x3023,
|
||||
CMSG_GUILD_BANK_SWAP_ITEMS = 0x2315,
|
||||
CMSG_GUILD_BANK_UPDATE_TAB = 0x0106,
|
||||
CMSG_GUILD_BANK_WITHDRAW_MONEY = 0x0037,
|
||||
@@ -258,7 +259,7 @@ enum Opcodes : uint16
|
||||
CMSG_GUILD_MEMBER_SEND_SOR_REQUEST = 0x3225,
|
||||
CMSG_GUILD_MOTD = 0x1035,
|
||||
CMSG_GUILD_NEWS_UPDATE_STICKY = 0x3223,
|
||||
CMSG_GUILD_PERMISSIONS = 0x3022,
|
||||
CMSG_GUILD_PERMISSIONS_QUERY = 0x3022,
|
||||
CMSG_GUILD_PROMOTE = 0x1030,
|
||||
CMSG_GUILD_QUERY = 0x4426,
|
||||
CMSG_GUILD_QUERY_NEWS = 0x3020,
|
||||
@@ -274,6 +275,7 @@ enum Opcodes : uint16
|
||||
CMSG_GUILD_SET_NOTE = 0x1233,
|
||||
CMSG_GUILD_SET_RANK_PERMISSIONS = 0x1024,
|
||||
CMSG_GUILD_SWITCH_RANK = 0x1221,
|
||||
CMSG_GUILD_XP_QUERY = 0x1237,
|
||||
CMSG_HEARTH_AND_RESURRECT = 0x4B34,
|
||||
CMSG_IGNORE_TRADE = 0x7112,
|
||||
CMSG_INITIATE_TRADE = 0x7916,
|
||||
@@ -420,7 +422,6 @@ enum Opcodes : uint16
|
||||
CMSG_QUERY_GUILD_MEMBER_RECIPES = 0x1037,
|
||||
CMSG_QUERY_GUILD_RECIPES = 0x3033,
|
||||
CMSG_QUERY_GUILD_REWARDS = 0x3012,
|
||||
CMSG_QUERY_GUILD_XP = 0x1237,
|
||||
CMSG_QUERY_INSPECT_ACHIEVEMENTS = 0x4D27,
|
||||
CMSG_QUERY_QUESTS_COMPLETED = 0x2317,
|
||||
CMSG_QUERY_TIME = 0x0A36,
|
||||
@@ -499,7 +500,6 @@ enum Opcodes : uint16
|
||||
CMSG_SET_FACTION_ATWAR = 0x0706,
|
||||
CMSG_SET_FACTION_CHEAT = 0x0000,
|
||||
CMSG_SET_FACTION_INACTIVE = 0x0E37,
|
||||
CMSG_SET_GUILD_BANK_TEXT = 0x3023,
|
||||
CMSG_SET_LFG_COMMENT = 0x0000,
|
||||
CMSG_SET_PET_SLOT = 0x3A04,
|
||||
CMSG_SET_PLAYER_DECLINED_NAMES = 0x6316,
|
||||
|
||||
@@ -1316,7 +1316,7 @@ uint32 WorldSession::DosProtection::GetMaxPacketCounterAllowed(uint16 opcode) co
|
||||
case CMSG_TAXIQUERYAVAILABLENODES: // 0 1.5
|
||||
case CMSG_QUESTGIVER_QUERY_QUEST: // 0 1.5
|
||||
case CMSG_PAGE_TEXT_QUERY: // 0 1.5
|
||||
case CMSG_GUILD_BANK_QUERY_TEXT: // 0 1.5
|
||||
case CMSG_GUILD_BANK_TEXT_QUERY: // 0 1.5
|
||||
case MSG_CORPSE_QUERY: // 0 1.5
|
||||
case MSG_MOVE_SET_FACING: // 0 1.5
|
||||
case CMSG_REQUEST_PARTY_MEMBER_STATS: // 0 1.5
|
||||
@@ -1495,7 +1495,7 @@ uint32 WorldSession::DosProtection::GetMaxPacketCounterAllowed(uint16 opcode) co
|
||||
case CMSG_GUILD_BANK_WITHDRAW_MONEY: // not profiled
|
||||
case CMSG_GUILD_BANK_BUY_TAB: // not profiled
|
||||
case CMSG_GUILD_BANK_UPDATE_TAB: // not profiled
|
||||
case CMSG_SET_GUILD_BANK_TEXT: // not profiled
|
||||
case CMSG_GUILD_BANK_SET_TAB_TEXT: // not profiled
|
||||
case MSG_SAVE_GUILD_EMBLEM: // not profiled
|
||||
case MSG_PETITION_RENAME: // not profiled
|
||||
case MSG_TALENT_WIPE_CONFIRM: // not profiled
|
||||
|
||||
@@ -104,6 +104,15 @@ namespace WorldPackets
|
||||
class GuildBankQueryTab;
|
||||
class GuildBankBuyTab;
|
||||
class GuildBankUpdateTab;
|
||||
class GuildBankDepositMoney;
|
||||
class GuildBankWithdrawMoney;
|
||||
class GuildPermissionsQuery;
|
||||
class GuildBankRemainingWithdrawMoneyQuery;
|
||||
class GuildBankLogQuery;
|
||||
class GuildBankSwapItems;
|
||||
class GuildBankTextQuery;
|
||||
class GuildBankSetTabText;
|
||||
class GuildXPQuery;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -725,6 +734,7 @@ class TC_GAME_API WorldSession
|
||||
void HandleAutoDeclineGuildInvites(WorldPacket& recvPacket);
|
||||
void HandleGuildSwitchRankOpcode(WorldPacket& recvPacket);
|
||||
void HandleGuildRequestChallengeUpdate(WorldPacket& recvPacket);
|
||||
void HandleGuildXPQueryOpcode(WorldPackets::Guild::GuildXPQuery& packet);
|
||||
|
||||
// Guild Finder
|
||||
void HandleGuildFinderAddRecruit(WorldPacket& recvPacket);
|
||||
@@ -1029,19 +1039,18 @@ class TC_GAME_API WorldSession
|
||||
void HandleSetTaxiBenchmarkOpcode(WorldPacket& recvData);
|
||||
|
||||
// Guild Bank
|
||||
void HandleGuildPermissions(WorldPacket& recvData);
|
||||
void HandleGuildBankMoneyWithdrawn(WorldPacket& recvData);
|
||||
void HandleGuildPermissionsQuery(WorldPackets::Guild::GuildPermissionsQuery& packet);
|
||||
void HandleGuildBankMoneyWithdrawn(WorldPackets::Guild::GuildBankRemainingWithdrawMoneyQuery& packet);
|
||||
void HandleGuildBankActivate(WorldPackets::Guild::GuildBankActivate& packet);
|
||||
void HandleGuildBankQueryTab(WorldPackets::Guild::GuildBankQueryTab& packet);
|
||||
void HandleGuildBankLogQuery(WorldPacket& recvData);
|
||||
void HandleGuildBankDepositMoney(WorldPacket& recvData);
|
||||
void HandleGuildBankWithdrawMoney(WorldPacket& recvData);
|
||||
void HandleGuildBankSwapItems(WorldPacket& recvData);
|
||||
void HandleGuildBankLogQuery(WorldPackets::Guild::GuildBankLogQuery& packet);
|
||||
void HandleGuildBankDepositMoney(WorldPackets::Guild::GuildBankDepositMoney& packet);
|
||||
void HandleGuildBankWithdrawMoney(WorldPackets::Guild::GuildBankWithdrawMoney& packet);
|
||||
void HandleGuildBankSwapItems(WorldPackets::Guild::GuildBankSwapItems& packet);
|
||||
void HandleGuildBankUpdateTab(WorldPackets::Guild::GuildBankUpdateTab& packet);
|
||||
void HandleGuildBankBuyTab(WorldPackets::Guild::GuildBankBuyTab& packet);
|
||||
void HandleQueryGuildBankTabText(WorldPacket& recvData);
|
||||
void HandleSetGuildBankTabText(WorldPacket& recvData);
|
||||
void HandleGuildQueryXPOpcode(WorldPacket& recvData);
|
||||
void HandleGuildBankTextQuery(WorldPackets::Guild::GuildBankTextQuery& packet);
|
||||
void HandleGuildBankSetTabText(WorldPackets::Guild::GuildBankSetTabText& packet);
|
||||
|
||||
// Refer-a-Friend
|
||||
void HandleGrantLevel(WorldPacket& recvData);
|
||||
|
||||
Reference in New Issue
Block a user