aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/GuildHandler.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2020-03-19 18:29:05 +0100
committerShauren <shauren.trinity@gmail.com>2020-03-19 18:29:05 +0100
commit1cf8163c5823eadc5558ffcb82e530c37f64c8f6 (patch)
tree2febdd755c3a15ddca1c2f891c6423580a8a788b /src/server/game/Handlers/GuildHandler.cpp
parentca0c50bc450f5259acc6af0f4123690969b7e9cb (diff)
Core/Guilds: Restore guild bank contents hack
Diffstat (limited to 'src/server/game/Handlers/GuildHandler.cpp')
-rw-r--r--src/server/game/Handlers/GuildHandler.cpp7
1 files changed, 5 insertions, 2 deletions
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)