diff options
author | Shauren <shauren.trinity@gmail.com> | 2024-02-23 14:21:05 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2024-02-23 14:21:05 +0100 |
commit | e835ab5014345962d84590cdd2ce71cc27608c80 (patch) | |
tree | 16f8686045bfb1f8048829b6b247423e116c3248 /src | |
parent | 39fd26ef41b802f937695a57ae10dbfc476d51c0 (diff) |
Core/Chat: Control CHAT_MSG_PARTY_LEADER serverside
Closes #14868
Closes #29689
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Handlers/ChatHandler.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
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); |