aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Groups/Group.cpp
diff options
context:
space:
mode:
authorTreeston <treeston.mmoc@gmail.com>2019-07-12 14:14:01 +0200
committerShauren <shauren.trinity@gmail.com>2021-12-15 23:31:31 +0100
commita69a061d76fe4e142e84c775230e2fcbd6ddb9d4 (patch)
tree1573037ff6f0f016a8fa350c77b47b0ed93e0b1a /src/server/game/Groups/Group.cpp
parentb4b581de1b9d2fd6afef02d1734e69b3ce6a8e63 (diff)
Battleground/Arena: Properly check RBAC arena join permission before allowing queue. Closes #23000.
(cherry picked from commit af082664ca8ff76cc8ef1947d6ce76310d65b58b)
Diffstat (limited to 'src/server/game/Groups/Group.cpp')
-rw-r--r--src/server/game/Groups/Group.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/server/game/Groups/Group.cpp b/src/server/game/Groups/Group.cpp
index bd89e252b87..9533d3657d8 100644
--- a/src/server/game/Groups/Group.cpp
+++ b/src/server/game/Groups/Group.cpp
@@ -1900,6 +1900,9 @@ GroupJoinBattlegroundResult Group::CanJoinBattlegroundQueue(Battleground const*
// offline member? don't let join
if (!member)
return ERR_BATTLEGROUND_JOIN_FAILED;
+ // rbac permissions
+ if (!member->CanJoinToBattleground(bgOrTemplate))
+ return ERR_BATTLEGROUND_JOIN_TIMED_OUT;
// don't allow cross-faction join as group
if (member->GetTeam() != team)
{
@@ -1925,7 +1928,7 @@ GroupJoinBattlegroundResult Group::CanJoinBattlegroundQueue(Battleground const*
if ((bgOrTemplate->GetTypeID() == BATTLEGROUND_RB || bgOrTemplate->GetTypeID() == BATTLEGROUND_RANDOM_EPIC) && member->InBattlegroundQueue(true) && !isInRandomBgQueue)
return ERR_IN_NON_RANDOM_BG;
// check for deserter debuff in case not arena queue
- if (bgOrTemplate->GetTypeID() != BATTLEGROUND_AA && !member->CanJoinToBattleground(bgOrTemplate))
+ if (bgOrTemplate->GetTypeID() != BATTLEGROUND_AA && member->IsDeserter())
return ERR_GROUP_JOIN_BATTLEGROUND_DESERTERS;
// check if member can join any more battleground queues
if (!member->HasFreeBattlegroundQueueId())