aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Entities')
-rw-r--r--src/server/game/Entities/Player/Player.cpp19
-rw-r--r--src/server/game/Entities/Player/Player.h1
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;