diff options
author | Treeston <treeston.mmoc@gmail.com> | 2017-07-28 02:45:57 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-07-28 02:45:57 +0200 |
commit | 508c9d2fc1b20dc2cb40df533e823e1dfe2becc3 (patch) | |
tree | a1628961443cdd4a93accf811dc9eb01f1bc7e13 /src/server/game/Handlers/ChatHandler.cpp | |
parent | a0bdf7e836870ff836357686e5273ede2cc259fb (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.cpp | 12 |
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); |