diff options
Diffstat (limited to 'src/server/game/Entities/Player/PlayerUpdates.cpp')
| -rw-r--r-- | src/server/game/Entities/Player/PlayerUpdates.cpp | 17 |
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) |
