aboutsummaryrefslogtreecommitdiff
path: root/src/server/game
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2019-01-11 18:23:10 +0100
committerShauren <shauren.trinity@gmail.com>2019-01-11 18:23:10 +0100
commit3a323f2b60ed84e8f72deb4dab8f80f6f5ffe31d (patch)
tree280f7f2d0bda435f1618045e8ca3e9eadbb4bc88 /src/server/game
parent50cfeb9aa406b9f81a6aa51dcd87201e5f3bae1e (diff)
Core/Chat: Fixed addon chat messages using C_ChatInfo.SendAddonMessageLogged
Closes #22926
Diffstat (limited to 'src/server/game')
-rw-r--r--src/server/game/Chat/Channels/Channel.cpp6
-rw-r--r--src/server/game/Chat/Channels/Channel.h2
-rw-r--r--src/server/game/Entities/Player/Player.cpp6
-rw-r--r--src/server/game/Entities/Player/Player.h2
-rw-r--r--src/server/game/Guilds/Guild.cpp4
-rw-r--r--src/server/game/Guilds/Guild.h2
-rw-r--r--src/server/game/Handlers/ChatHandler.cpp15
-rw-r--r--src/server/game/Server/WorldSession.h2
8 files changed, 20 insertions, 19 deletions
diff --git a/src/server/game/Chat/Channels/Channel.cpp b/src/server/game/Chat/Channels/Channel.cpp
index f111891a7cc..00eceb0f9fc 100644
--- a/src/server/game/Chat/Channels/Channel.cpp
+++ b/src/server/game/Chat/Channels/Channel.cpp
@@ -749,7 +749,7 @@ void Channel::Say(ObjectGuid const& guid, std::string const& what, uint32 lang)
SendToAll(builder, !playerInfo.IsModerator() ? guid : ObjectGuid::Empty);
}
-void Channel::AddonSay(ObjectGuid const& guid, std::string const& prefix, std::string const& what) const
+void Channel::AddonSay(ObjectGuid const& guid, std::string const& prefix, std::string const& what, bool isLogged) const
{
if (what.empty())
return;
@@ -777,10 +777,10 @@ void Channel::AddonSay(ObjectGuid const& guid, std::string const& prefix, std::s
WorldPackets::Chat::Chat* packet = new WorldPackets::Chat::Chat();
if (Player* player = ObjectAccessor::FindConnectedPlayer(guid))
- packet->Initialize(CHAT_MSG_CHANNEL, LANG_ADDON, player, player, what, 0, GetName(localeIdx), DEFAULT_LOCALE, prefix);
+ packet->Initialize(CHAT_MSG_CHANNEL, isLogged ? LANG_ADDON_LOGGED : LANG_ADDON, player, player, what, 0, GetName(localeIdx), DEFAULT_LOCALE, prefix);
else
{
- packet->Initialize(CHAT_MSG_CHANNEL, LANG_ADDON, nullptr, nullptr, what, 0, GetName(localeIdx), DEFAULT_LOCALE, prefix);
+ packet->Initialize(CHAT_MSG_CHANNEL, isLogged ? LANG_ADDON_LOGGED : LANG_ADDON, nullptr, nullptr, what, 0, GetName(localeIdx), DEFAULT_LOCALE, prefix);
packet->SenderGUID = guid;
packet->TargetGUID = guid;
}
diff --git a/src/server/game/Chat/Channels/Channel.h b/src/server/game/Chat/Channels/Channel.h
index 5425d516d69..3604958c20c 100644
--- a/src/server/game/Chat/Channels/Channel.h
+++ b/src/server/game/Chat/Channels/Channel.h
@@ -222,7 +222,7 @@ class TC_GAME_API Channel
void List(Player const* player);
void Announce(Player const* player);
void Say(ObjectGuid const& guid, std::string const& what, uint32 lang) const;
- void AddonSay(ObjectGuid const& guid, std::string const& prefix, std::string const& what) const;
+ void AddonSay(ObjectGuid const& guid, std::string const& prefix, std::string const& what, bool isLogged) const;
void DeclineInvite(Player const* player);
void Invite(Player const* player, std::string const& newp);
void JoinNotify(Player const* player);
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index d4112703334..0e0592eb3b2 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -21479,16 +21479,16 @@ void Player::TextEmote(std::string const& text, WorldObject const* /*= nullptr*/
SendMessageToSetInRange(packet.Write(), sWorld->getFloatConfig(CONFIG_LISTEN_RANGE_TEXTEMOTE), true, !GetSession()->HasPermission(rbac::RBAC_PERM_TWO_SIDE_INTERACTION_CHAT));
}
-void Player::WhisperAddon(std::string const& text, const std::string& prefix, Player* receiver)
+void Player::WhisperAddon(std::string const& text, std::string const& prefix, bool isLogged, Player* receiver)
{
std::string _text(text);
- sScriptMgr->OnPlayerChat(this, CHAT_MSG_WHISPER, uint32(LANG_ADDON), _text, receiver);
+ sScriptMgr->OnPlayerChat(this, CHAT_MSG_WHISPER, uint32(isLogged ? LANG_ADDON_LOGGED : LANG_ADDON), _text, receiver);
if (!receiver->GetSession()->IsAddonRegistered(prefix))
return;
WorldPackets::Chat::Chat packet;
- packet.Initialize(CHAT_MSG_WHISPER, LANG_ADDON, this, this, text, 0, "", DEFAULT_LOCALE, prefix);
+ packet.Initialize(CHAT_MSG_WHISPER, isLogged ? LANG_ADDON_LOGGED : LANG_ADDON, this, this, text, 0, "", DEFAULT_LOCALE, prefix);
receiver->SendDirectMessage(packet.Write());
}
diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h
index e0201e7befa..b2c46670849 100644
--- a/src/server/game/Entities/Player/Player.h
+++ b/src/server/game/Entities/Player/Player.h
@@ -1161,7 +1161,7 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
/// Handles whispers from Addons and players based on sender, receiver's guid and language.
void Whisper(std::string const& text, Language language, Player* receiver, bool = false) override;
void Whisper(uint32 textId, Player* target, bool isBossWhisper = false) override;
- void WhisperAddon(std::string const& text, std::string const& prefix, Player* receiver);
+ void WhisperAddon(std::string const& text, std::string const& prefix, bool isLogged, Player* receiver);
/*********************************************************/
/*** STORAGE SYSTEM ***/
diff --git a/src/server/game/Guilds/Guild.cpp b/src/server/game/Guilds/Guild.cpp
index ca2e3aeba83..c8f95d6f242 100644
--- a/src/server/game/Guilds/Guild.cpp
+++ b/src/server/game/Guilds/Guild.cpp
@@ -2566,12 +2566,12 @@ void Guild::BroadcastToGuild(WorldSession* session, bool officerOnly, std::strin
}
}
-void Guild::BroadcastAddonToGuild(WorldSession* session, bool officerOnly, std::string const& msg, std::string const& prefix) const
+void Guild::BroadcastAddonToGuild(WorldSession* session, bool officerOnly, std::string const& msg, std::string const& prefix, bool isLogged) const
{
if (session && session->GetPlayer() && _HasRankRight(session->GetPlayer(), officerOnly ? GR_RIGHT_OFFCHATSPEAK : GR_RIGHT_GCHATSPEAK))
{
WorldPackets::Chat::Chat packet;
- packet.Initialize(officerOnly ? CHAT_MSG_OFFICER : CHAT_MSG_GUILD, LANG_ADDON, session->GetPlayer(), nullptr, msg, 0, "", DEFAULT_LOCALE, prefix);
+ packet.Initialize(officerOnly ? CHAT_MSG_OFFICER : CHAT_MSG_GUILD, isLogged ? LANG_ADDON_LOGGED : LANG_ADDON, session->GetPlayer(), nullptr, msg, 0, "", DEFAULT_LOCALE, prefix);
WorldPacket const* data = packet.Write();
for (Members::const_iterator itr = m_members.begin(); itr != m_members.end(); ++itr)
if (Player* player = itr->second->FindPlayer())
diff --git a/src/server/game/Guilds/Guild.h b/src/server/game/Guilds/Guild.h
index 3618d8d71c4..b39d258b438 100644
--- a/src/server/game/Guilds/Guild.h
+++ b/src/server/game/Guilds/Guild.h
@@ -816,7 +816,7 @@ class TC_GAME_API Guild
// Broadcasts
void BroadcastToGuild(WorldSession* session, bool officerOnly, std::string const& msg, uint32 language = LANG_UNIVERSAL) const;
- void BroadcastAddonToGuild(WorldSession* session, bool officerOnly, std::string const& msg, std::string const& prefix) const;
+ void BroadcastAddonToGuild(WorldSession* session, bool officerOnly, std::string const& msg, std::string const& prefix, bool isLogged) const;
void BroadcastPacketToRank(WorldPacket const* packet, uint8 rankId) const;
void BroadcastPacket(WorldPacket const* packet) const;
void BroadcastPacketIfTrackingAchievement(WorldPacket const* packet, uint32 criteriaId) const;
diff --git a/src/server/game/Handlers/ChatHandler.cpp b/src/server/game/Handlers/ChatHandler.cpp
index 776765cfcbf..bf71dc44379 100644
--- a/src/server/game/Handlers/ChatHandler.cpp
+++ b/src/server/game/Handlers/ChatHandler.cpp
@@ -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:
diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h
index 3cb70b5c4c2..40f3eff4def 100644
--- a/src/server/game/Server/WorldSession.h
+++ b/src/server/game/Server/WorldSession.h
@@ -1453,7 +1453,7 @@ class TC_GAME_API WorldSession
void HandleChatMessage(ChatMsg type, uint32 lang, std::string msg, std::string target = "");
void HandleChatAddonMessageOpcode(WorldPackets::Chat::ChatAddonMessage& chatAddonMessage);
void HandleChatAddonMessageTargetedOpcode(WorldPackets::Chat::ChatAddonMessageTargeted& chatAddonMessageTargeted);
- void HandleChatAddonMessage(ChatMsg type, std::string prefix, std::string text, std::string target = "");
+ void HandleChatAddonMessage(ChatMsg type, std::string prefix, std::string text, bool isLogged, std::string target = "");
void HandleChatMessageAFKOpcode(WorldPackets::Chat::ChatMessageAFK& chatMessageAFK);
void HandleChatMessageDNDOpcode(WorldPackets::Chat::ChatMessageDND& chatMessageDND);
void HandleChatMessageEmoteOpcode(WorldPackets::Chat::ChatMessageEmote& chatMessageEmote);