From 13c6719104992ade141fc2dedfd248f23d5db631 Mon Sep 17 00:00:00 2001 From: killerwife Date: Mon, 27 Oct 2025 11:30:11 +0100 Subject: [PATCH] fix(Core/Arena): flying upon arrival in arena if joining on flying mount (#23440) --- src/server/game/Battlegrounds/Battleground.cpp | 9 ++++++--- src/server/game/Entities/Player/Player.cpp | 11 ----------- 2 files changed, 6 insertions(+), 14 deletions(-) diff --git a/src/server/game/Battlegrounds/Battleground.cpp b/src/server/game/Battlegrounds/Battleground.cpp index 7ddd4e87e..7b4b13613 100644 --- a/src/server/game/Battlegrounds/Battleground.cpp +++ b/src/server/game/Battlegrounds/Battleground.cpp @@ -1178,16 +1178,19 @@ void Battleground::AddPlayer(Player* player) sBattlegroundMgr->BuildPlayerJoinedBattlegroundPacket(&data, player); SendPacketToTeam(teamId, &data, player, false); - player->RemoveAurasByType(SPELL_AURA_MOUNTED); - // add arena specific auras if (isArena()) { // restore pets health before remove - if (Pet* pet = player->GetPet()) + Pet* pet = player->GetPet(); + if (pet) if (pet->IsAlive()) pet->SetHealth(pet->GetMaxHealth()); + player->RemoveArenaAuras(); + if (pet) + pet->RemoveArenaAuras(); + player->RemoveArenaSpellCooldowns(true); player->RemoveArenaEnchantments(TEMP_ENCHANTMENT_SLOT); player->DestroyConjuredItems(true); player->UnsummonPetTemporaryIfAny(); diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 9e481658b..0052f200f 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -1533,17 +1533,6 @@ bool Player::TeleportTo(uint32 mapid, float x, float y, float z, float orientati CombatStop(); - // remove arena spell coldowns/buffs now to also remove pet's cooldowns before it's temporarily unsummoned - if (mEntry->IsBattleArena() && (HasPendingSpectatorForBG(0) || !HasPendingSpectatorForBG(GetBattlegroundId()))) - { - // KEEP THIS ORDER! - RemoveArenaAuras(); - if (pet) - pet->RemoveArenaAuras(); - - RemoveArenaSpellCooldowns(true); - } - // remove pet on map change if (pet) UnsummonPetTemporaryIfAny();