aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Guilds/Guild.cpp9
-rw-r--r--src/server/game/Handlers/GuildHandler.cpp7
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)