diff --git a/Source/Game/Entities/Player/Player.PvP.cs b/Source/Game/Entities/Player/Player.PvP.cs index 77e57a537..49ff2fb45 100644 --- a/Source/Game/Entities/Player/Player.PvP.cs +++ b/Source/Game/Entities/Player/Player.PvP.cs @@ -536,10 +536,10 @@ namespace Game.Entities return Global.BattlegroundMgr.GetBattleground(GetBattlegroundId(), m_bgData.bgTypeID); } - public bool InBattlegroundQueue() + public bool InBattlegroundQueue(bool ignoreArena = false) { for (byte i = 0; i < SharedConst.MaxPlayerBGQueues; ++i) - if (m_bgBattlegroundQueueID[i].bgQueueTypeId != default) + if (m_bgBattlegroundQueueID[i].bgQueueTypeId != default && (!ignoreArena || m_bgBattlegroundQueueID[i].bgQueueTypeId.BattlemasterListId != (ushort)BattlegroundTypeId.AA)) return true; return false; } diff --git a/Source/Game/Groups/Group.cs b/Source/Game/Groups/Group.cs index 34c0b3d4c..c8e6731d3 100644 --- a/Source/Game/Groups/Group.cs +++ b/Source/Game/Groups/Group.cs @@ -1768,7 +1768,7 @@ namespace Game.Groups if (isInRandomBgQueue) return GroupJoinBattlegroundResult.InRandomBg; // don't let join to bg queue random if someone from the group is already in bg queue - if ((bgOrTemplate.GetTypeID() == BattlegroundTypeId.RB || bgOrTemplate.GetTypeID() == BattlegroundTypeId.RandomEpic) && member.InBattlegroundQueue() && !isInRandomBgQueue) + if ((bgOrTemplate.GetTypeID() == BattlegroundTypeId.RB || bgOrTemplate.GetTypeID() == BattlegroundTypeId.RandomEpic) && member.InBattlegroundQueue(true) && !isInRandomBgQueue) return GroupJoinBattlegroundResult.InNonRandomBg; // check for deserter debuff in case not arena queue if (bgOrTemplate.GetTypeID() != BattlegroundTypeId.AA && !member.CanJoinToBattleground(bgOrTemplate)) diff --git a/Source/Game/Handlers/BattleGroundHandler.cs b/Source/Game/Handlers/BattleGroundHandler.cs index 67f9f5450..c9d90ad3d 100644 --- a/Source/Game/Handlers/BattleGroundHandler.cs +++ b/Source/Game/Handlers/BattleGroundHandler.cs @@ -128,7 +128,7 @@ namespace Game return; } - if (_player.InBattlegroundQueue() && !isInRandomBgQueue && (bgTypeId == BattlegroundTypeId.RB || bgTypeId == BattlegroundTypeId.RandomEpic)) + if (_player.InBattlegroundQueue(true) && !isInRandomBgQueue && (bgTypeId == BattlegroundTypeId.RB || bgTypeId == BattlegroundTypeId.RandomEpic)) { // player is already in queue, can't start random queue Global.BattlegroundMgr.BuildBattlegroundStatusFailed(out battlefieldStatusFailed, bgQueueTypeId, GetPlayer(), 0, GroupJoinBattlegroundResult.InNonRandomBg);