diff --git a/src/server/game/Handlers/ChatHandler.cpp b/src/server/game/Handlers/ChatHandler.cpp index 0b3eafe93..50483e7fb 100644 --- a/src/server/game/Handlers/ChatHandler.cpp +++ b/src/server/game/Handlers/ChatHandler.cpp @@ -136,31 +136,50 @@ void WorldSession::HandleMessagechatOpcode(WorldPacket & recvData) case CHAT_MSG_RAID: case CHAT_MSG_GUILD: case CHAT_MSG_BATTLEGROUND: - case CHAT_MSG_WHISPER: - // check if addon messages are disabled - if (!sWorld->getBoolConfig(CONFIG_ADDON_CHANNEL)) - { - recvData.rfinish(); - return; - } + // check if addon messages are disabled + if (!sWorld->getBoolConfig(CONFIG_ADDON_CHANNEL)) + { + recvData.rfinish(); + return; + } - if (sWorld->getBoolConfig(CONFIG_CHATLOG_ADDON)) - { - std::string to, msg; - recvData >> to >> msg; - Player* receiver = ObjectAccessor::FindPlayerByName(to, false); + if (sWorld->getBoolConfig(CONFIG_CHATLOG_ADDON)) + { + std::string msg; + recvData >> msg; if (msg.empty()) return; - sScriptMgr->OnPlayerChat(sender, type, lang, msg, receiver); + sScriptMgr->OnPlayerChat(sender, type, lang, msg); #ifdef ELUNA - if (!sEluna->OnChat(sender, type, lang, msg, receiver)) + if (!sEluna->OnChat(sender, type, lang, msg)) return; #endif } - break; + break; + case CHAT_MSG_WHISPER: + // check if addon messages are disabled + if (!sWorld->getBoolConfig(CONFIG_ADDON_CHANNEL)) + { + recvData.rfinish(); + return; + } + + if (sWorld->getBoolConfig(CONFIG_CHATLOG_ADDON)) + { + std::string to, msg; + recvData >> to >> msg; + Player* receiver = ObjectAccessor::FindPlayerByName(to, false); + + if (msg.empty()) + return; + + sScriptMgr->OnPlayerChat(sender, type, lang, msg, receiver); + } + + break; default: sLog->outError("Player %s (GUID: %u) sent a chatmessage with an invalid language/message type combination", GetPlayer()->GetName().c_str(), GetPlayer()->GetGUIDLow());