aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/ChatHandler.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2024-02-23 14:21:05 +0100
committerShauren <shauren.trinity@gmail.com>2024-02-23 14:21:05 +0100
commite835ab5014345962d84590cdd2ce71cc27608c80 (patch)
tree16f8686045bfb1f8048829b6b247423e116c3248 /src/server/game/Handlers/ChatHandler.cpp
parent39fd26ef41b802f937695a57ae10dbfc476d51c0 (diff)
Core/Chat: Control CHAT_MSG_PARTY_LEADER serverside
Closes #14868 Closes #29689
Diffstat (limited to 'src/server/game/Handlers/ChatHandler.cpp')
-rw-r--r--src/server/game/Handlers/ChatHandler.cpp6
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);