From 3b95d3dcf95caa6df3f5b7897e8b29dbb1cb58e3 Mon Sep 17 00:00:00 2001 From: Shauren Date: Mon, 10 May 2021 13:09:59 +0200 Subject: Core/PacketIO: Fixed SMSG_GUILD_EVENT for empty MOTD broken after cd28423a4e813baf6833f38c93613a7f82a721f8 Closes #26522 --- src/server/game/Guilds/Guild.cpp | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) (limited to 'src/server/game/Guilds/Guild.cpp') diff --git a/src/server/game/Guilds/Guild.cpp b/src/server/game/Guilds/Guild.cpp index 41fbf0661ad..690ecc14e52 100644 --- a/src/server/game/Guilds/Guild.cpp +++ b/src/server/game/Guilds/Guild.cpp @@ -1894,7 +1894,7 @@ void Guild::SendLoginInfo(WorldSession* session) { WorldPackets::Guild::GuildEvent motd; motd.Type = GE_MOTD; - motd.Params[0] = m_motd.c_str(); + motd.Params.emplace_back(m_motd); session->SendPacket(motd.Write()); TC_LOG_DEBUG("guild", "SMSG_GUILD_EVENT [%s] MOTD", session->GetPlayerInfo().c_str()); @@ -2828,13 +2828,26 @@ void Guild::_SendBankContentUpdate(uint8 tabId, SlotIds slots) const _SendBankList(nullptr, tabId, false, &slots); } -void Guild::_BroadcastEvent(GuildEvents guildEvent, ObjectGuid guid, std::string_view param1, std::string_view param2, std::string_view param3) const +void Guild::_BroadcastEvent(GuildEvents guildEvent, ObjectGuid guid, + Optional param1 /*= {}*/, Optional param2 /*= {}*/, Optional param3 /*= {}*/) const { WorldPackets::Guild::GuildEvent event; event.Type = guildEvent; - event.Params[0] = param1; - event.Params[1] = param2; - event.Params[2] = param3; + if (param1) + event.Params.push_back(*param1); + + if (param2) + { + event.Params.resize(2); + event.Params[1] = *param2; + } + + if (param3) + { + event.Params.resize(3); + event.Params[2] = *param3; + } + event.Guid = guid; BroadcastPacket(event.Write()); -- cgit v1.2.3