From bd536a039d7d505a03e6d0206c0a030843240526 Mon Sep 17 00:00:00 2001 From: UltraNix <80540499+UltraNix@users.noreply.github.com> Date: Wed, 21 Sep 2022 19:17:38 +0200 Subject: [PATCH] =?UTF-8?q?fix(Core/Battlegrounds):=20`MinLevel`=20and=20`?= =?UTF-8?q?MaxLevel`=20from=20`battelground=E2=80=A6=20(#12880)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix(Core/Battlegrounds): `MinLevel` and `MaxLevel` from `battelground_template` should be taken into account while joining bg queue. Fixes #6781 --- src/server/game/Groups/Group.cpp | 5 +++++ src/server/game/Handlers/BattleGroundHandler.cpp | 8 ++++++++ 2 files changed, 13 insertions(+) diff --git a/src/server/game/Groups/Group.cpp b/src/server/game/Groups/Group.cpp index 4623f8ca7..7014c1506 100644 --- a/src/server/game/Groups/Group.cpp +++ b/src/server/game/Groups/Group.cpp @@ -1986,6 +1986,11 @@ GroupJoinBattlegroundResult Group::CanJoinBattlegroundQueue(Battleground const* // don't let Death Knights join BG queues when they are not allowed to be teleported yet if (member->getClass() == CLASS_DEATH_KNIGHT && member->GetMapId() == 609 && !member->IsGameMaster() && !member->HasSpell(50977)) return ERR_GROUP_JOIN_BATTLEGROUND_FAIL; + + if (!member->GetBGAccessByLevel(bgTemplate->GetBgTypeID())) + { + return ERR_BATTLEGROUND_JOIN_TIMED_OUT; + } } // for arenas: check party size is proper diff --git a/src/server/game/Handlers/BattleGroundHandler.cpp b/src/server/game/Handlers/BattleGroundHandler.cpp index 585927819..8bbe394c8 100644 --- a/src/server/game/Handlers/BattleGroundHandler.cpp +++ b/src/server/game/Handlers/BattleGroundHandler.cpp @@ -187,6 +187,10 @@ void WorldSession::HandleBattlemasterJoinOpcode(WorldPacket& recvData) { err = ERR_BATTLEGROUND_NONE; } + else if (!_player->GetBGAccessByLevel(bgTypeId)) + { + err = ERR_BATTLEGROUND_NONE; + } if (err <= 0) { @@ -236,6 +240,10 @@ void WorldSession::HandleBattlemasterJoinOpcode(WorldPacket& recvData) { err = ERR_BATTLEGROUND_NONE; } + else if (!member->GetBGAccessByLevel(bgTypeId)) + { + err = ERR_BATTLEGROUND_JOIN_TIMED_OUT; + } if (err < 0) {