diff options
author | Treeston <treeston.mmoc@gmail.com> | 2019-07-12 14:14:01 +0200 |
---|---|---|
committer | Treeston <treeston.mmoc@gmail.com> | 2019-07-12 14:14:01 +0200 |
commit | af082664ca8ff76cc8ef1947d6ce76310d65b58b (patch) | |
tree | 7c352532bc317d675affbc18f45c8410082b99ef /src/server/game/Groups | |
parent | daf423a6c3c0fdd13e421f02ccd791103f7bdd5b (diff) |
Battleground/Arena: Properly check RBAC arena join permission before allowing queue. Closes #23000.
Diffstat (limited to 'src/server/game/Groups')
-rw-r--r-- | src/server/game/Groups/Group.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/server/game/Groups/Group.cpp b/src/server/game/Groups/Group.cpp index 1057e8bd0d3..c0824e58ba1 100644 --- a/src/server/game/Groups/Group.cpp +++ b/src/server/game/Groups/Group.cpp @@ -1996,6 +1996,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) return ERR_BATTLEGROUND_JOIN_TIMED_OUT; @@ -2016,7 +2019,7 @@ GroupJoinBattlegroundResult Group::CanJoinBattlegroundQueue(Battleground const* if (bgOrTemplate->GetTypeID() == BATTLEGROUND_RB && member->InBattlegroundQueue(true)) 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()) |