summaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Player/PlayerUpdates.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Entities/Player/PlayerUpdates.cpp')
-rw-r--r--src/server/game/Entities/Player/PlayerUpdates.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/server/game/Entities/Player/PlayerUpdates.cpp b/src/server/game/Entities/Player/PlayerUpdates.cpp
index b0c7a85218..469131a65c 100644
--- a/src/server/game/Entities/Player/PlayerUpdates.cpp
+++ b/src/server/game/Entities/Player/PlayerUpdates.cpp
@@ -319,6 +319,23 @@ void Player::Update(uint32 p_time)
{
m_regenTimer += p_time;
RegenerateAll();
+
+ // Apply buffs from items with Apply on Equip trigger if they are not present.
+ for (uint8 i = 0; i < INVENTORY_SLOT_BAG_END; ++i)
+ {
+ if (!m_items[i])
+ continue;
+
+ std::vector<uint32> spellIDs;
+ m_items[i]->GetOnEquipSpellIDs(spellIDs);
+ bool apply = false;
+ for (uint32 spellID : spellIDs)
+ if (!apply && !HasAura(spellID))
+ apply = true;
+
+ if (apply)
+ ApplyItemEquipSpell(m_items[i], true, false);
+ }
}
if (m_deathState == DeathState::JustDied)