From 413999de364131d14ee0b486b37df8592de078fe Mon Sep 17 00:00:00 2001 From: hondacrx Date: Wed, 4 May 2022 09:43:20 -0400 Subject: [PATCH] Core/LFG: Handle vote kick as failed if there cannot be 3 votes agreeing Port From (https://github.com/TrinityCore/TrinityCore/commit/d1bea3e8b39c53b5427bfef9806e0282624e891f) --- Source/Game/DungeonFinding/LFGManager.cs | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/Source/Game/DungeonFinding/LFGManager.cs b/Source/Game/DungeonFinding/LFGManager.cs index cc1c21622..cfd7a3e43 100644 --- a/Source/Game/DungeonFinding/LFGManager.cs +++ b/Source/Game/DungeonFinding/LFGManager.cs @@ -1219,20 +1219,25 @@ namespace Game.DungeonFinding boot.votes[guid] = (LfgAnswer)Convert.ToInt32(accept); - byte votesNum = 0; byte agreeNum = 0; - foreach (var itVotes in boot.votes) + byte denyNum = 0; + foreach (var (_, answer) in boot.votes) { - if (itVotes.Value != LfgAnswer.Pending) + switch (answer) { - ++votesNum; - if (itVotes.Value == LfgAnswer.Agree) + case LfgAnswer.Pending: + break; + case LfgAnswer.Agree: ++agreeNum; + break; + case LfgAnswer.Deny: + ++denyNum; + break; } } // if we don't have enough votes (agree or deny) do nothing - if (agreeNum < SharedConst.LFGKickVotesNeeded && (votesNum - agreeNum) < SharedConst.LFGKickVotesNeeded) + if (agreeNum < SharedConst.LFGKickVotesNeeded && (boot.votes.Count - denyNum) >= SharedConst.LFGKickVotesNeeded) return; // Send update info to all players