aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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);