From e835ab5014345962d84590cdd2ce71cc27608c80 Mon Sep 17 00:00:00 2001 From: Shauren Date: Fri, 23 Feb 2024 14:21:05 +0100 Subject: Core/Chat: Control CHAT_MSG_PARTY_LEADER serverside Closes #14868 Closes #29689 --- src/server/game/Handlers/ChatHandler.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/server/game/Handlers/ChatHandler.cpp b/src/server/game/Handlers/ChatHandler.cpp index 133e0e74ad0..50f5cefe9eb 100644 --- a/src/server/game/Handlers/ChatHandler.cpp +++ b/src/server/game/Handlers/ChatHandler.cpp @@ -381,8 +381,10 @@ void WorldSession::HandleMessagechatOpcode(WorldPacket& recvData) return; } - if (type == CHAT_MSG_PARTY_LEADER && !group->IsLeader(sender->GetGUID())) - return; + // control LEADER messages on the server + // in a scenario where player has both Group and OriginalGroup, + // client will incorrectly send LEADER type when sending message to OriginalGroup while being a leader in regular group + type = group->IsLeader(sender->GetGUID()) ? CHAT_MSG_PARTY_LEADER : CHAT_MSG_PARTY; sScriptMgr->OnPlayerChat(GetPlayer(), type, lang, msg, group); -- cgit v1.2.3