fix(Core/Spells): Properly handle pet spell auras with infinity cooldown. (#9576)

Fixes #9339
This commit is contained in:
UltraNix
2021-12-12 15:43:22 +01:00
committed by GitHub
parent b1303e0e96
commit 4e70e60427
3 changed files with 34 additions and 13 deletions

View File

@@ -750,7 +750,10 @@ void WorldSession::HandlePetActionHelper(Unit* pet, ObjectGuid guid1, uint32 spe
if (result == SPELL_CAST_OK)
{
pet->ToCreature()->AddSpellCooldown(spellid, 0, spellInfo->IsCooldownStartedOnEvent() ? infinityCooldownDelay : 0);
if (!spellInfo->IsCooldownStartedOnEvent())
{
pet->ToCreature()->AddSpellCooldown(spellid, 0, 0);
}
unit_target = spell->m_targets.GetUnitTarget();

View File

@@ -553,16 +553,6 @@ void WorldSession::HandlePetCancelAuraOpcode(WorldPacket& recvPacket)
}
pet->RemoveOwnedAura(spellId, ObjectGuid::Empty, 0, AURA_REMOVE_BY_CANCEL);
if (spellInfo->IsCooldownStartedOnEvent())
{
pet->AddSpellCooldown(spellId, 0, 0);
WorldPacket data(SMSG_COOLDOWN_EVENT, 4 + 8);
data << uint32(spellInfo->Id);
data << pet->GetGUID();
_player->SendDirectMessage(&data);
}
}
void WorldSession::HandleCancelGrowthAuraOpcode(WorldPacket& /*recvPacket*/)