fix(Core/Spell): further limit exploit prevention standup to non-triggered spells (#24688)

This commit is contained in:
sogladev
2026-02-15 23:43:46 +01:00
committed by GitHub
parent b17ccafe76
commit 24f84ee849

View File

@@ -3587,10 +3587,9 @@ SpellCastResult Spell::prepare(SpellCastTargets const* targets, AuraEffect const
LOG_DEBUG("spells.aura", "Spell::prepare: spell id {} source {} caster {} customCastFlags {} mask {}", m_spellInfo->Id, m_caster->GetEntry(), m_originalCaster ? m_originalCaster->GetEntry() : -1, _triggeredCastFlags, m_targets.GetTargetMask());
if (!(m_spellInfo->AuraInterruptFlags & AURA_INTERRUPT_FLAG_NOT_SEATED) && !(m_spellInfo->Attributes & SPELL_ATTR0_ALLOW_WHILE_SITTING) && !m_triggeredByAuraSpell && m_caster->IsSitState())
{
// prevent exploit that allows to cast spell while sitting
if (!IsTriggered() && !(m_spellInfo->AuraInterruptFlags & AURA_INTERRUPT_FLAG_NOT_SEATED) && !(m_spellInfo->Attributes & SPELL_ATTR0_ALLOW_WHILE_SITTING) && !m_triggeredByAuraSpell && m_caster->IsSitState())
m_caster->SetStandState(UNIT_STAND_STATE_STAND);
}
//Containers for channeled spells have to be set
//TODO:Apply this to all casted spells if needed