fix(Core/DungeonFinder): Fixed joining to LFG dungeon if there is alr… (#10062)

* fix(Core/DungeonFinder): Fixed joining to LFG dungeon if there is already a LFG group inside it.iterator

Fixes #9824

* Buildfix.
This commit is contained in:
UltraNix
2022-01-30 13:48:00 +01:00
committed by GitHub
parent 21e7954e84
commit d9e1cf40c0
3 changed files with 16 additions and 3 deletions

View File

@@ -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:

View File

@@ -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
};

View File

@@ -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;