From 0afc3cf11050a1ec77ac23503d86abc2f89437ba Mon Sep 17 00:00:00 2001 From: Machiavelli Date: Sun, 31 Jul 2011 14:40:15 +0200 Subject: Core/ChatLog: Properly filter out addon messages in whisper, party, raid and battleground. Original patch by tassader1000 --- src/server/scripts/World/chat_log.cpp | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) (limited to 'src/server/scripts/World') diff --git a/src/server/scripts/World/chat_log.cpp b/src/server/scripts/World/chat_log.cpp index 60fa01f7127..2e13411336a 100755 --- a/src/server/scripts/World/chat_log.cpp +++ b/src/server/scripts/World/chat_log.cpp @@ -55,33 +55,44 @@ public: } } - void OnChat(Player* player, uint32 /*type*/, uint32 /*lang*/, std::string& msg, Player* receiver) + void OnChat(Player* player, uint32 /*type*/, uint32 lang, std::string& msg, Player* receiver) { - if (sWorld->getBoolConfig(CONFIG_CHATLOG_WHISPER)) + if (lang != LANG_ADDON && sWorld->getBoolConfig(CONFIG_CHATLOG_WHISPER)) sLog->outChat("[WHISPER] Player %s tells %s: %s", player->GetName(), receiver ? receiver->GetName() : "", msg.c_str()); + else if (lang == LANG_ADDON && sWorld->getBoolConfig(CONFIG_CHATLOG_ADDON)) + sLog->outChat("[ADDON] Player %s tells %s: %s", + player->GetName(), receiver ? receiver->GetName() : "", msg.c_str()); } - void OnChat(Player* player, uint32 type, uint32 /*lang*/, std::string& msg, Group* group) + void OnChat(Player* player, uint32 type, uint32 lang, std::string& msg, Group* group) { + //! NOTE: + //! LANG_ADDON can only be sent by client in "PARTY", "RAID", "GUILD", "BATTLEGROUND", "WHISPER" switch (type) { case CHAT_MSG_PARTY: - if (sWorld->getBoolConfig(CONFIG_CHATLOG_PARTY)) + if (lang != LANG_ADDON && sWorld->getBoolConfig(CONFIG_CHATLOG_PARTY)) sLog->outChat("[PARTY] Player %s tells group with leader %s: %s", player->GetName(), group ? group->GetLeaderName() : "", msg.c_str()); + else if (lang == LANG_ADDON && sWorld->getBoolConfig(CONFIG_CHATLOG_ADDON)) + sLog->outChat("[ADDON] Player %s tells group with leader %s: %s", + player->GetName(), group ? group->GetLeaderName() : "", msg.c_str()); break; case CHAT_MSG_PARTY_LEADER: - if (sWorld->getBoolConfig(CONFIG_CHATLOG_PARTY)) + if (lang != LANG_ADDON && sWorld->getBoolConfig(CONFIG_CHATLOG_PARTY)) sLog->outChat("[PARTY] Leader %s tells group: %s", player->GetName(), msg.c_str()); break; case CHAT_MSG_RAID: - if (sWorld->getBoolConfig(CONFIG_CHATLOG_RAID)) + if (lang != LANG_ADDON && sWorld->getBoolConfig(CONFIG_CHATLOG_RAID)) sLog->outChat("[RAID] Player %s tells raid with leader %s: %s", player->GetName(), group ? group->GetLeaderName() : "", msg.c_str()); + else if (lang == LANG_ADDON && sWorld->getBoolConfig(CONFIG_CHATLOG_ADDON)) + sLog->outChat("[ADDON] Player %s tells raid with leader %s: %s", + player->GetName(), group ? group->GetLeaderName() : "", msg.c_str()); break; case CHAT_MSG_RAID_LEADER: @@ -97,9 +108,12 @@ public: break; case CHAT_MSG_BATTLEGROUND: - if (sWorld->getBoolConfig(CONFIG_CHATLOG_BGROUND)) + if (lang != LANG_ADDON && sWorld->getBoolConfig(CONFIG_CHATLOG_BGROUND)) sLog->outChat("[BATTLEGROUND] Player %s tells battleground with leader %s: %s", player->GetName(), group ? group->GetLeaderName() : "", msg.c_str()); + else if (lang == LANG_ADDON && sWorld->getBoolConfig(CONFIG_CHATLOG_ADDON)) + sLog->outChat("[ADDON] Player %s tells battleground with leader %s: %s", + player->GetName(), group ? group->GetLeaderName() : "", msg.c_str()); break; case CHAT_MSG_BATTLEGROUND_LEADER: -- cgit v1.2.3