diff --git a/src/server/game/DungeonFinding/LFGMgr.cpp b/src/server/game/DungeonFinding/LFGMgr.cpp index cd3bd6465..9e097ab9b 100644 --- a/src/server/game/DungeonFinding/LFGMgr.cpp +++ b/src/server/game/DungeonFinding/LFGMgr.cpp @@ -1628,6 +1628,7 @@ namespace lfg } ObjectGuid oldGroupGUID; + bool hasRandomLfgMember = proposal.group.IsEmpty(); for (LfgGuidList::const_iterator it = players.begin(); it != players.end(); ++it) { ObjectGuid pguid = (*it); @@ -1644,8 +1645,16 @@ namespace lfg SetState(grp->GetGUID(), LFG_STATE_PROPOSAL); } + if (auto const proposalPlayer = proposal.players.find(pguid); proposalPlayer != proposal.players.end()) + { + if (!hasRandomLfgMember && (proposalPlayer->second.group.IsEmpty() || proposalPlayer->second.group != proposal.group)) + hasRandomLfgMember = true; + } + else + hasRandomLfgMember = true; + // Xinef: Apply Random Buff - if (grp && !grp->IsLfgWithBuff()) + if (grp && !grp->IsLfgWithBuff() && hasRandomLfgMember) { if (!group || group->GetGUID() != oldGroupGUID) grp->AddLfgBuffFlag();