diff options
author | Shauren <shauren.trinity@gmail.com> | 2020-03-19 18:29:05 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2020-03-19 18:29:05 +0100 |
commit | 1cf8163c5823eadc5558ffcb82e530c37f64c8f6 (patch) | |
tree | 2febdd755c3a15ddca1c2f891c6423580a8a788b /src | |
parent | ca0c50bc450f5259acc6af0f4123690969b7e9cb (diff) |
Core/Guilds: Restore guild bank contents hack
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Guilds/Guild.cpp | 9 | ||||
-rw-r--r-- | src/server/game/Handlers/GuildHandler.cpp | 7 |
2 files changed, 9 insertions, 7 deletions
diff --git a/src/server/game/Guilds/Guild.cpp b/src/server/game/Guilds/Guild.cpp index 2030d8cb3f0..c7d88d5865f 100644 --- a/src/server/game/Guilds/Guild.cpp +++ b/src/server/game/Guilds/Guild.cpp @@ -1936,11 +1936,10 @@ void Guild::SendMoneyInfo(WorldSession* session) const void Guild::SendLoginInfo(WorldSession* session) { - WorldPacket data(SMSG_GUILD_EVENT, 1 + 1 + m_motd.size() + 1); - data << uint8(GE_MOTD); - data << uint8(1); - data << m_motd; - session->SendPacket(&data); + WorldPackets::Guild::GuildEvent motd; + motd.Type = GE_MOTD; + motd.Params[0] = m_motd.c_str(); + session->SendPacket(motd.Write()); TC_LOG_DEBUG("guild", "SMSG_GUILD_EVENT [%s] MOTD", session->GetPlayerInfo().c_str()); diff --git a/src/server/game/Handlers/GuildHandler.cpp b/src/server/game/Handlers/GuildHandler.cpp index fb0968d8cd2..888ea924247 100644 --- a/src/server/game/Handlers/GuildHandler.cpp +++ b/src/server/game/Handlers/GuildHandler.cpp @@ -171,7 +171,7 @@ void WorldSession::HandleGuildRankOpcode(WorldPackets::Guild::GuildSetRankPermis GuildBankRightsAndSlotsVec rightsAndSlots(GUILD_BANK_MAX_TABS); for (uint8 tabId = 0; tabId < GUILD_BANK_MAX_TABS; ++tabId) - rightsAndSlots[tabId] = GuildBankRightsAndSlots(tabId, uint8(packet.TabFlags[tabId]), uint8(packet.TabWithdrawItemLimit[tabId])); + rightsAndSlots[tabId] = GuildBankRightsAndSlots(tabId, uint8(packet.TabFlags[tabId]), uint32(packet.TabWithdrawItemLimit[tabId])); TC_LOG_DEBUG("guild", "CMSG_GUILD_RANK [%s]: Rank: %s (%u)", GetPlayerInfo().c_str(), packet.RankName.c_str(), packet.RankID); @@ -275,7 +275,10 @@ void WorldSession::HandleGuildBankQueryTab(WorldPackets::Guild::GuildBankQueryTa if (GetPlayer()->GetGameObjectIfCanInteractWith(packet.Banker, GAMEOBJECT_TYPE_GUILD_BANK)) if (Guild* guild = GetPlayer()->GetGuild()) - guild->SendBankTabData(this, packet.Tab, packet.FullUpdate); + guild->SendBankTabData(this, packet.Tab, true /*packet.FullUpdate*/); + // HACK: client doesn't query entire tab content if it had received SMSG_GUILD_BANK_LIST in this session + // but we broadcast bank updates to entire guild when *ANYONE* changes anything, incorrectly initializing clients + // tab content with only data for that change } void WorldSession::HandleGuildBankDepositMoney(WorldPackets::Guild::GuildBankDepositMoney& packet) |