From 35b6bedd81e7d8799a58d8fcf7ce2893994f25fc Mon Sep 17 00:00:00 2001 From: Shard <30301841+Shard-MW@users.noreply.github.com> Date: Sun, 26 Jan 2020 16:25:48 +0100 Subject: [PATCH] fix(Core/DK): Don't allow starter dk to queue bg (#2584) --- src/server/game/Groups/Group.cpp | 5 ++++- src/server/game/Handlers/BattleGroundHandler.cpp | 3 +++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/server/game/Groups/Group.cpp b/src/server/game/Groups/Group.cpp index f47f03ebd..41c601b7c 100644 --- a/src/server/game/Groups/Group.cpp +++ b/src/server/game/Groups/Group.cpp @@ -1875,6 +1875,10 @@ GroupJoinBattlegroundResult Group::CanJoinBattlegroundQueue(Battleground const* // don't let join to bg queue random if someone from the group is already in bg queue if (bgTemplate->GetBgTypeID() == BATTLEGROUND_RB && member->InBattlegroundQueue()) return ERR_IN_NON_RANDOM_BG; + + // 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; } // for arenas: check party size is proper @@ -2335,4 +2339,3 @@ void Group::ToggleGroupMemberFlag(member_witerator slot, uint8 flag, bool apply) else slot->flags &= ~flag; } - diff --git a/src/server/game/Handlers/BattleGroundHandler.cpp b/src/server/game/Handlers/BattleGroundHandler.cpp index 08039bd12..58bc0504e 100644 --- a/src/server/game/Handlers/BattleGroundHandler.cpp +++ b/src/server/game/Handlers/BattleGroundHandler.cpp @@ -158,6 +158,9 @@ void WorldSession::HandleBattlemasterJoinOpcode(WorldPacket & recvData) _player->InBattlegroundQueueForBattlegroundQueueType(BATTLEGROUND_QUEUE_3v3) || _player->InBattlegroundQueueForBattlegroundQueueType(BATTLEGROUND_QUEUE_5v5)) // can't be already queued for arenas err = ERR_BATTLEGROUND_QUEUED_FOR_RATED; + // don't let Death Knights join BG queues when they are not allowed to be teleported yet + else if (_player->getClass() == CLASS_DEATH_KNIGHT && _player->GetMapId() == 609 && !_player->IsGameMaster() && !_player->HasSpell(50977)) + err = ERR_BATTLEGROUND_NONE; if (err <= 0) {