Core/Chat: Fixed addon chat messages using C_ChatInfo.SendAddonMessageLogged

Closes #22926
This commit is contained in:
Shauren
2019-01-11 18:23:10 +01:00
parent 50cfeb9aa4
commit 3a323f2b60
8 changed files with 20 additions and 19 deletions

View File

@@ -413,15 +413,16 @@ void WorldSession::HandleChatMessage(ChatMsg type, uint32 lang, std::string msg,
void WorldSession::HandleChatAddonMessageOpcode(WorldPackets::Chat::ChatAddonMessage& chatAddonMessage)
{
HandleChatAddonMessage(chatAddonMessage.Params.Type, chatAddonMessage.Params.Prefix, chatAddonMessage.Params.Text);
HandleChatAddonMessage(chatAddonMessage.Params.Type, chatAddonMessage.Params.Prefix, chatAddonMessage.Params.Text, chatAddonMessage.Params.IsLogged);
}
void WorldSession::HandleChatAddonMessageTargetedOpcode(WorldPackets::Chat::ChatAddonMessageTargeted& chatAddonMessageTargeted)
{
HandleChatAddonMessage(chatAddonMessageTargeted.Params.Type, chatAddonMessageTargeted.Params.Prefix, chatAddonMessageTargeted.Params.Text, chatAddonMessageTargeted.Target);
HandleChatAddonMessage(chatAddonMessageTargeted.Params.Type, chatAddonMessageTargeted.Params.Prefix, chatAddonMessageTargeted.Params.Text,
chatAddonMessageTargeted.Params.IsLogged, chatAddonMessageTargeted.Target);
}
void WorldSession::HandleChatAddonMessage(ChatMsg type, std::string prefix, std::string text, std::string target /*= ""*/)
void WorldSession::HandleChatAddonMessage(ChatMsg type, std::string prefix, std::string text, bool isLogged, std::string target /*= ""*/)
{
Player* sender = GetPlayer();
@@ -439,7 +440,7 @@ void WorldSession::HandleChatAddonMessage(ChatMsg type, std::string prefix, std:
{
if (sender->GetGuildId())
if (Guild* guild = sGuildMgr->GetGuildById(sender->GetGuildId()))
guild->BroadcastAddonToGuild(this, type == CHAT_MSG_OFFICER, text, prefix);
guild->BroadcastAddonToGuild(this, type == CHAT_MSG_OFFICER, text, prefix, isLogged);
break;
}
case CHAT_MSG_WHISPER:
@@ -454,7 +455,7 @@ void WorldSession::HandleChatAddonMessage(ChatMsg type, std::string prefix, std:
if (!receiver)
break;
sender->WhisperAddon(text, prefix, receiver);
sender->WhisperAddon(text, prefix, isLogged, receiver);
break;
}
// Messages sent to "RAID" while in a party will get delivered to "PARTY"
@@ -478,14 +479,14 @@ void WorldSession::HandleChatAddonMessage(ChatMsg type, std::string prefix, std:
}
WorldPackets::Chat::Chat packet;
packet.Initialize(type, LANG_ADDON, sender, nullptr, text, 0, "", DEFAULT_LOCALE, prefix);
packet.Initialize(type, isLogged ? LANG_ADDON_LOGGED : LANG_ADDON, sender, nullptr, text, 0, "", DEFAULT_LOCALE, prefix);
group->BroadcastAddonMessagePacket(packet.Write(), prefix, true, subGroup, sender->GetGUID());
break;
}
case CHAT_MSG_CHANNEL:
{
if (Channel* chn = ChannelMgr::GetChannelForPlayerByNamePart(target, sender))
chn->AddonSay(sender->GetGUID(), prefix, text.c_str());
chn->AddonSay(sender->GetGUID(), prefix, text.c_str(), isLogged);
break;
}
default: