diff options
author | Shauren <shauren.trinity@gmail.com> | 2025-02-08 19:58:34 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2025-02-08 19:58:34 +0100 |
commit | de9340ccec2d53d4b090bc6ebfadd67cc77d7f5a (patch) | |
tree | ab3a8dd6c8e3395b6519820cead0d793ac8dcb40 /src/server/game/Handlers/ArenaTeamHandler.cpp | |
parent | b4adab5515f4c9445957184d48e3cd2da9b9f0f1 (diff) |
Core/Battlegrounds: Port BattlegroundQueueTypeId changes from master branch
Diffstat (limited to 'src/server/game/Handlers/ArenaTeamHandler.cpp')
-rw-r--r-- | src/server/game/Handlers/ArenaTeamHandler.cpp | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/src/server/game/Handlers/ArenaTeamHandler.cpp b/src/server/game/Handlers/ArenaTeamHandler.cpp index 58d7b4c692d..077a8e18805 100644 --- a/src/server/game/Handlers/ArenaTeamHandler.cpp +++ b/src/server/game/Handlers/ArenaTeamHandler.cpp @@ -234,8 +234,12 @@ void WorldSession::HandleArenaTeamLeaveOpcode(WorldPacket& recvData) } // Player cannot be removed during queues - if (BattlegroundQueueTypeId bgQueue = BattlegroundMgr::BGQueueTypeId(BATTLEGROUND_AA, arenaTeam->GetType())) + for (uint32 i = 0; i < PLAYER_MAX_BATTLEGROUND_QUEUES; ++i) { + BattlegroundQueueTypeId bgQueue = _player->GetBattlegroundQueueTypeId(i); + if (bgQueue.BattlemasterListId != BATTLEGROUND_AA || bgQueue.TeamSize != arenaTeam->GetType()) + continue; + GroupQueueInfo ginfo; BattlegroundQueue& queue = sBattlegroundMgr->GetBattlegroundQueue(bgQueue); if (queue.GetPlayerGroupInfoData(_player->GetGUID(), &ginfo)) @@ -277,8 +281,12 @@ void WorldSession::HandleArenaTeamDisbandOpcode(WorldPacket& recvData) return; // Teams cannot be disbanded during queues - if (BattlegroundQueueTypeId bgQueue = BattlegroundMgr::BGQueueTypeId(BATTLEGROUND_AA, arenaTeam->GetType())) + for (uint32 i = 0; i < PLAYER_MAX_BATTLEGROUND_QUEUES; ++i) { + BattlegroundQueueTypeId bgQueue = _player->GetBattlegroundQueueTypeId(i); + if (bgQueue.BattlemasterListId != BATTLEGROUND_AA || bgQueue.TeamSize != arenaTeam->GetType()) + continue; + GroupQueueInfo ginfo; BattlegroundQueue& queue = sBattlegroundMgr->GetBattlegroundQueue(bgQueue); if (queue.GetPlayerGroupInfoData(_player->GetGUID(), &ginfo)) @@ -336,8 +344,12 @@ void WorldSession::HandleArenaTeamRemoveOpcode(WorldPacket& recvData) } // Team cannot be removed during queues - if (BattlegroundQueueTypeId bgQueue = BattlegroundMgr::BGQueueTypeId(BATTLEGROUND_AA, arenaTeam->GetType())) + for (uint32 i = 0; i < PLAYER_MAX_BATTLEGROUND_QUEUES; ++i) { + BattlegroundQueueTypeId bgQueue = _player->GetBattlegroundQueueTypeId(i); + if (bgQueue.BattlemasterListId != BATTLEGROUND_AA || bgQueue.TeamSize != arenaTeam->GetType()) + continue; + GroupQueueInfo ginfo; BattlegroundQueue& queue = sBattlegroundMgr->GetBattlegroundQueue(bgQueue); if (queue.GetPlayerGroupInfoData(_player->GetGUID(), &ginfo)) |