diff options
Diffstat (limited to 'src/server/game/Entities')
| -rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 19 | ||||
| -rw-r--r-- | src/server/game/Entities/Player/Player.h | 1 |
2 files changed, 7 insertions, 13 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index f50918a2b44..a62d8873264 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -22178,20 +22178,13 @@ void Player::LeaveBattleground(bool teleportToEntryPoint) bool Player::CanJoinToBattleground(Battleground const* bg) const { - // check Deserter debuff - if (HasAura(26013)) - return false; - - if (bg->isArena() && !GetSession()->HasPermission(rbac::RBAC_PERM_JOIN_ARENAS)) - return false; - - if (bg->IsRandom() && !GetSession()->HasPermission(rbac::RBAC_PERM_JOIN_RANDOM_BG)) - return false; - - if (!GetSession()->HasPermission(rbac::RBAC_PERM_JOIN_NORMAL_BG)) - return false; + uint32 perm = rbac::RBAC_PERM_JOIN_NORMAL_BG; + if (bg->isArena()) + perm = rbac::RBAC_PERM_JOIN_ARENAS; + else if (bg->IsRandom()) + perm = rbac::RBAC_PERM_JOIN_RANDOM_BG; - return true; + return GetSession()->HasPermission(perm); } bool Player::CanReportAfkDueToLimit() diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index 74bf97fd81c..00ee3aa2bf8 100644 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -1903,6 +1903,7 @@ class TC_GAME_API Player : public Unit, public GridObject<Player> Battleground* GetBattleground() const; bool InBattlegroundQueue(bool ignoreArena = false) const; + bool IsDeserter() const { return HasAura(26013); } BattlegroundQueueTypeId GetBattlegroundQueueTypeId(uint32 index) const; uint32 GetBattlegroundQueueIndex(BattlegroundQueueTypeId bgQueueTypeId) const; |
