aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/ChatHandler.cpp
diff options
context:
space:
mode:
authorNay <dnpd.dd@gmail.com>2012-12-27 17:53:34 +0000
committerNay <dnpd.dd@gmail.com>2012-12-27 17:53:34 +0000
commit7e196e8e58800c3e0cde80a07f20c4ecccd1a842 (patch)
treed77aa80f8e6bd417eb2d8b368006fd3d7fc8fa19 /src/server/game/Handlers/ChatHandler.cpp
parent79b1895223bbf16bfd6484e34e067beea457e4cc (diff)
parent7fe2d7309ae3b850f3a7c75fc9bb6ec18bea00a1 (diff)
Merge remote-tracking branch 'origin/master' into mmaps
Diffstat (limited to 'src/server/game/Handlers/ChatHandler.cpp')
-rw-r--r--src/server/game/Handlers/ChatHandler.cpp51
1 files changed, 31 insertions, 20 deletions
diff --git a/src/server/game/Handlers/ChatHandler.cpp b/src/server/game/Handlers/ChatHandler.cpp
index e4989816998..560cc904974 100644
--- a/src/server/game/Handlers/ChatHandler.cpp
+++ b/src/server/game/Handlers/ChatHandler.cpp
@@ -440,40 +440,51 @@ void WorldSession::HandleMessagechatOpcode(WorldPacket& recvData)
} break;
case CHAT_MSG_AFK:
{
- if ((msg.empty() || !_player->isAFK()) && !_player->isInCombat())
+ if (!_player->isInCombat())
{
- if (!_player->isAFK())
+ if (_player->isAFK()) // Already AFK
{
if (msg.empty())
- msg = GetTrinityString(LANG_PLAYER_AFK_DEFAULT);
- _player->afkMsg = msg;
+ _player->ToggleAFK(); // Remove AFK
+ else
+ _player->autoReplyMsg = msg; // Update message
}
+ else // New AFK mode
+ {
+ _player->autoReplyMsg = msg.empty() ? GetTrinityString(LANG_PLAYER_AFK_DEFAULT) : msg;
- sScriptMgr->OnPlayerChat(_player, type, lang, msg);
+ if (_player->isDND())
+ _player->ToggleDND();
+
+ _player->ToggleAFK();
+ }
- _player->ToggleAFK();
- if (_player->isAFK() && _player->isDND())
- _player->ToggleDND();
+ sScriptMgr->OnPlayerChat(_player, type, lang, msg);
}
- } break;
+ break;
+ }
case CHAT_MSG_DND:
{
- if (msg.empty() || !_player->isDND())
+ if (_player->isDND()) // Already DND
{
- if (!_player->isDND())
- {
- if (msg.empty())
- msg = GetTrinityString(LANG_PLAYER_DND_DEFAULT);
- _player->dndMsg = msg;
- }
+ if (msg.empty())
+ _player->ToggleDND(); // Remove DND
+ else
+ _player->autoReplyMsg = msg; // Update message
+ }
+ else // New DND mode
+ {
+ _player->autoReplyMsg = msg.empty() ? GetTrinityString(LANG_PLAYER_DND_DEFAULT) : msg;
- sScriptMgr->OnPlayerChat(_player, type, lang, msg);
+ if (_player->isAFK())
+ _player->ToggleAFK();
_player->ToggleDND();
- if (_player->isDND() && _player->isAFK())
- _player->ToggleAFK();
}
- } break;
+
+ sScriptMgr->OnPlayerChat(_player, type, lang, msg);
+ break;
+ }
default:
sLog->outError(LOG_FILTER_NETWORKIO, "CHAT: unknown message type %u, lang: %u", type, lang);
break;