fix(Core/Arena): flying upon arrival in arena if joining on flying mount (#23440)

This commit is contained in:
killerwife 2025-10-27 11:30:11 +01:00 committed by GitHub
parent 48736cfc89
commit 13c6719104
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 6 additions and 14 deletions

View File

@ -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();

View File

@ -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();