File Details
JustAC_v4.19.4
- R
- Apr 15, 2026
- 439.00 KB
- 3.1K
- 12.0.5+1
- Retail
File Name
JustAC_v4.19.4.zip
Supported Versions
- 12.0.5
- 12.0.1
[4.19.4] - 2026-04-14
Fixed
- Interrupt/CC CD detection broken — Kick re-recommended while on cooldown:
IsInterruptOnCooldown()inSpellDB.luawas always fail-open. A file-scopeLibStub("JustAC-BlizzardAPI", true)captured nil becauseSpellDB.lualoads beforeBlizzardAPI.luainJustAC.toc. Every call hit the nil guard and returned false, making every spell appear ready regardless of actual cooldown state. Fixed with a lazy getter that resolves on first call after all libraries are loaded. CheckCooldownCompletionsprematurely clearing interrupt/defensive CDs: Was treatingisOnGCD == truefromSPELL_UPDATE_COOLDOWNas "real CD done" for all tracked categories. For unflagged spells (Kick, Blind, defensives etc.),isOnGCD == truefires during the GCD window after the cast — not as a CD-expiry signal. Restricted this clear to"rotation"category only (the only category that reliably uses Blizzard's flaggednil → false → nilCD state machine).CheckUsabilityFlipsclearing local CDs viaACTION_USABLE_CHANGED: Was wipinglocalCooldowns[spellID]wheneverusable=truefired for a slot, assuming it meant the CD expired.IsUsableActionreturns true even while a spell is on cooldown, so energy ticks and target changes were clearing active CDs. Removed flatlocalCooldownsclearing from this path; charge recovery hints preserved.- CC-failure learning incorrectly triggered by interrupt spells: Kick, Wind Shear, Counterspell, and other pure interrupts are in
CROWD_CONTROL_SPELLS(for DPS rotation exclusion). This causedNotifyCCCastOnTarget()to fire on every successful interrupt cast. 0.4 s laterUnitIsCrowdControlled("target")returns false (interrupts don't apply a CC mechanic), settingccFailureObserved = trueand marking the target as CC-immune for the rest of combat — suppressing Blind and all other CC fallbacks. Fixed: addedSpellDB.IsInterruptTypeSpell()(lazy set fromCLASS_INTERRUPT_DEFAULTStype="interrupt" entries) and guardedNotifyCCCastOnTarget()to skip pure interrupt spells.
Added
/jac interruptscommand: Dumps the resolved interrupt/CC list with per-spell CD state (IsInterruptOnCooldown,localCD,IsReady,usable,isOnGCD), plus target interrupt-worthy, CC-immune, and current interrupt mode. Useful for diagnosing interrupt/CC queue issues in combat./jac testcdextended: Now includesC_Spell.GetSpellCooldownrawisOnGCDfield,IsSpellOnLocalCooldown,IsSpellReady, andIsInterruptOnCooldownoutput (section 5 and 6).