aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/AI/CoreAI/PetAI.cpp2
-rw-r--r--src/server/game/Spells/Spell.cpp7
2 files changed, 7 insertions, 2 deletions
diff --git a/src/server/game/AI/CoreAI/PetAI.cpp b/src/server/game/AI/CoreAI/PetAI.cpp
index 8032568434f..4bce9113082 100644
--- a/src/server/game/AI/CoreAI/PetAI.cpp
+++ b/src/server/game/AI/CoreAI/PetAI.cpp
@@ -246,8 +246,6 @@ void PetAI::UpdateAI(uint32 diff)
me->SendUpdateToPlayer(owner->ToPlayer());
}
- me->AddCreatureSpellCooldown(spell->m_spellInfo->Id);
-
spell->prepare(&targets);
}
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index 1245ef71a4d..c81b3ebc6fe 100644
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -3420,7 +3420,14 @@ void Spell::SendSpellCooldown()
{
Player* _player = m_caster->ToPlayer();
if (!_player)
+ {
+ // Handle pet cooldowns here if needed instead of in PetAI to avoid hidden cooldown restarts
+ Creature* _creature = m_caster->ToCreature();
+ if (_creature && _creature->IsPet())
+ _creature->AddCreatureSpellCooldown(m_spellInfo->Id);
+
return;
+ }
// mana/health/etc potions, disabled by client (until combat out as declarate)
if (m_CastItem && (m_CastItem->IsPotion() || m_spellInfo->IsCooldownStartedOnEvent()))