local interrupts={[57994]=true,[6552]=true,[102060]=true,[47528]=true,[1766]=true,[96231]=true,[116705]=true,[80965]={80964,106839},[34490]=147362,[2139]=true,[19647]={115781,132409,24259,115782},[15487]=true,[23920]=true,}local SpellStopCasting = SpellStopCasting
local AF=CreateFrame('Frame')
AF:RegisterEvent('COMBAT_LOG_EVENT_UNFILTERED')
AF:SetScript('OnEvent',function(self,event,...)
if(event=='COMBAT_LOG_EVENT_UNFILTERED')then
local _,eventType,_,_,_,srcFlags,_,destGUID,_,_,_,spellID = ...
if ( bit.band(srcFlags, COMBATLOG_OBJECT_REACTION_HOSTILE) ~= 0 ) and ( destGUID == UnitGUID('player') ) then
if ( eventType == 'SPELL_CAST_SUCCESS' or eventType == 'SPELL_AURA_APPLIED' ) and ( interrupts[spellID] ) then
local casting,_,_,_,_,endf,_,_,intable = UnitCastingInfo('player')
if ( casting ) and ( not intable) then
if ( endf / 1000 - GetTime() > 0.17 ) then
SpellStopCasting()
end
end
end
end
end
end)