diff --git a/src/server/game/DungeonFinding/LFGGroupData.cpp b/src/server/game/DungeonFinding/LFGGroupData.cpp index c6fb1ce7a..eed5cef24 100644 --- a/src/server/game/DungeonFinding/LFGGroupData.cpp +++ b/src/server/game/DungeonFinding/LFGGroupData.cpp @@ -22,7 +22,7 @@ namespace lfg { LfgGroupData::LfgGroupData(): m_State(LFG_STATE_NONE), m_OldState(LFG_STATE_NONE), - m_Dungeon(0), m_KicksLeft(sWorld->getIntConfig(CONFIG_LFG_MAX_KICK_COUNT)) + m_Dungeon(0), _isLFGGroup(false), m_KicksLeft(sWorld->getIntConfig(CONFIG_LFG_MAX_KICK_COUNT)) { } LfgGroupData::~LfgGroupData() @@ -30,11 +30,23 @@ namespace lfg bool LfgGroupData::IsLfgGroup() { - return m_OldState != LFG_STATE_NONE; + return _isLFGGroup; } void LfgGroupData::SetState(LfgState state) { + switch (state) + { + case LFG_STATE_DUNGEON: + _isLFGGroup = true; + break; + case LFG_STATE_FINISHED_DUNGEON: + _isLFGGroup = false; + break; + default: + break; + } + switch (state) { case LFG_STATE_NONE: diff --git a/src/server/game/DungeonFinding/LFGGroupData.h b/src/server/game/DungeonFinding/LFGGroupData.h index f90e1fa6b..4afe3066c 100644 --- a/src/server/game/DungeonFinding/LFGGroupData.h +++ b/src/server/game/DungeonFinding/LFGGroupData.h @@ -68,6 +68,7 @@ namespace lfg LfgGuidSet m_Players; ///< Players in group // Dungeon uint32 m_Dungeon; ///< Dungeon entry + bool _isLFGGroup; // Vote Kick uint8 m_KicksLeft; ///< Number of kicks left }; diff --git a/src/server/game/DungeonFinding/LFGQueue.cpp b/src/server/game/DungeonFinding/LFGQueue.cpp index b02d491da..c8fea1191 100644 --- a/src/server/game/DungeonFinding/LFGQueue.cpp +++ b/src/server/game/DungeonFinding/LFGQueue.cpp @@ -407,7 +407,7 @@ namespace lfg } proposal.queues = strGuids; - proposal.isNew = numLfgGroups != 1 || sLFGMgr->GetOldState(proposal.group) != LFG_STATE_DUNGEON; + proposal.isNew = numLfgGroups != 1; if (!sLFGMgr->AllQueued(check)) // can't create proposal return LFG_COMPATIBILITY_PENDING;