aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/ChatHandler.cpp
diff options
context:
space:
mode:
authorTreeston <treeston.mmoc@gmail.com>2017-07-28 02:45:57 +0200
committerGitHub <noreply@github.com>2017-07-28 02:45:57 +0200
commit508c9d2fc1b20dc2cb40df533e823e1dfe2becc3 (patch)
treea1628961443cdd4a93accf811dc9eb01f1bc7e13 /src/server/game/Handlers/ChatHandler.cpp
parenta0bdf7e836870ff836357686e5273ede2cc259fb (diff)
Core/Chat: Provide a fully-formed protocol for addons to interact with GM commands (#20074)
Send success/fail state, allow interleaving, and indicate end of output. Add framework for supporting non-human-readable output in commands.
Diffstat (limited to 'src/server/game/Handlers/ChatHandler.cpp')
-rw-r--r--src/server/game/Handlers/ChatHandler.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/server/game/Handlers/ChatHandler.cpp b/src/server/game/Handlers/ChatHandler.cpp
index eb3200ea87d..85fe6f4e48a 100644
--- a/src/server/game/Handlers/ChatHandler.cpp
+++ b/src/server/game/Handlers/ChatHandler.cpp
@@ -126,7 +126,7 @@ void WorldSession::HandleMessagechatOpcode(WorldPacket& recvData)
// LANG_ADDON should not be changed nor be affected by flood control
else
{
- // send in universal language if player in .gmon mode (ignore spell effects)
+ // send in universal language if player in .gm on mode (ignore spell effects)
if (sender->IsGameMaster())
lang = LANG_UNIVERSAL;
else
@@ -216,11 +216,15 @@ void WorldSession::HandleMessagechatOpcode(WorldPacket& recvData)
if (msg.empty())
return;
- if (ChatHandler(this).ParseCommands(msg.c_str()))
- return;
-
+ if (lang == LANG_ADDON)
+ {
+ if (AddonChannelCommandHandler(this).ParseCommands(msg.c_str()))
+ return;
+ }
if (lang != LANG_ADDON)
{
+ if (ChatHandler(this).ParseCommands(msg.c_str()))
+ return;
// Strip invisible characters for non-addon messages
if (sWorld->getBoolConfig(CONFIG_CHAT_FAKE_MESSAGE_PREVENTING))
stripLineInvisibleChars(msg);