diff options
Diffstat (limited to 'src/server/game/Handlers/ChatHandler.cpp')
| -rw-r--r-- | src/server/game/Handlers/ChatHandler.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/server/game/Handlers/ChatHandler.cpp b/src/server/game/Handlers/ChatHandler.cpp index 58af17fe724..3250a5f4dbd 100644 --- a/src/server/game/Handlers/ChatHandler.cpp +++ b/src/server/game/Handlers/ChatHandler.cpp @@ -591,6 +591,9 @@ void WorldSession::HandleAddonMessagechatOpcode(WorldPacket& recvData) break; } + if (prefix.empty() || prefix.length() > 16) + return; + // Logging enabled? if (sWorld->getBoolConfig(CONFIG_CHATLOG_ADDON)) { @@ -614,7 +617,7 @@ void WorldSession::HandleAddonMessagechatOpcode(WorldPacket& recvData) return; WorldPacket data; - ChatHandler::BuildChatPacket(data, type, LANG_ADDON, sender, NULL, message, 0U, "", DEFAULT_LOCALE, prefix.c_str()); + ChatHandler::BuildChatPacket(data, type, LANG_ADDON, sender, NULL, message, 0U, "", DEFAULT_LOCALE, prefix); group->BroadcastAddonMessagePacket(&data, prefix, false); break; } @@ -630,7 +633,7 @@ void WorldSession::HandleAddonMessagechatOpcode(WorldPacket& recvData) { if (!normalizePlayerName(targetName)) break; - Player* receiver = sObjectAccessor->FindPlayerByName(targetName.c_str()); + Player* receiver = sObjectAccessor->FindPlayerByName(targetName); if (!receiver) break; @@ -647,7 +650,7 @@ void WorldSession::HandleAddonMessagechatOpcode(WorldPacket& recvData) break; WorldPacket data; - ChatHandler::BuildChatPacket(data, type, LANG_ADDON, sender, NULL, message, 0U, "", DEFAULT_LOCALE, prefix.c_str()); + ChatHandler::BuildChatPacket(data, type, LANG_ADDON, sender, NULL, message, 0U, "", DEFAULT_LOCALE, prefix); group->BroadcastAddonMessagePacket(&data, prefix, true, -1, group->GetMemberGroup(sender->GetGUID())); break; } |
