diff options
author | tobmaps <spambot42@yandex.ru> | 2011-07-24 03:14:28 +0700 |
---|---|---|
committer | tobmaps <spambot42@yandex.ru> | 2011-07-24 03:14:28 +0700 |
commit | 5a370392d48806ffae894ac874d6d579994fdde8 (patch) | |
tree | d06eb9542d6e519d014e69bb1cdfb6819d3442e1 /src | |
parent | f526b61e1a1eeefec761cac7ab01cf73a3d013f4 (diff) |
Core/Chat: Prevent turning whispers on, receive spam about AFK or DND in case of whispering with addon message
Diffstat (limited to 'src')
-rwxr-xr-x | src/server/game/Entities/Player/Player.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 851c92222ef..0534500fb33 100755 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -19266,7 +19266,9 @@ void Player::TextEmote(const std::string& text) void Player::Whisper(const std::string& text, uint32 language, uint64 receiver) { - if (language != LANG_ADDON) // if not addon data + bool isAddonMessage = language == LANG_ADDON; + + if (!isAddonMessage) // if not addon data language = LANG_UNIVERSAL; // whispers should always be readable Player *rPlayer = sObjectMgr->GetPlayer(receiver); @@ -19282,17 +19284,21 @@ void Player::Whisper(const std::string& text, uint32 language, uint64 receiver) rPlayer->GetSession()->SendPacket(&data); // not send confirmation for addon messages - if (language != LANG_ADDON) + if (!isAddonMessage) { data.Initialize(SMSG_MESSAGECHAT, 200); rPlayer->BuildPlayerChat(&data, CHAT_MSG_WHISPER_INFORM, _text, language); GetSession()->SendPacket(&data); } } - else + else if (!isAddonMessage) // announce to player that player he is whispering to is dnd and cannot receive his message ChatHandler(this).PSendSysMessage(LANG_PLAYER_DND, rPlayer->GetName(), rPlayer->dndMsg.c_str()); + // rest stuff shouldn't happen in case of addon message + if (isAddonMessage) + return; + if (!isAcceptWhispers() && !isGameMaster() && !rPlayer->isGameMaster()) { SetAcceptWhispers(true); |