File Details
JustAC_v4.20.1
- R
- May 4, 2026
- 456.63 KB
- 237
- 12.0.5+1
- Retail
File Name
JustAC_v4.20.1.zip
Supported Versions
- 12.0.5
- 12.0.1
[4.20.1] - 2026-05-04
Internal
- Consistency / dead-code removal
DebugCommands.lua,JustAC.lua: ReplacedBlizzardAPI.IsMidnightOrLater()runtime calls with the pre-computedBlizzardAPI.IS_MIDNIGHT_OR_LATERconstant.UI/UIFrameFactory.lua: ExportedPOSITION_HOLD_TIME(150 ms) andGLOW_HOLD_TIME(100 ms) hysteresis constants;UI/UIRenderer.luaandUI/UINameplateOverlay.luanow read from those exports instead of local duplicates.
- Refactoring — no behaviour change
JustAC.lua: SplitNormalizeSavedData()into five named migration helpers (MigrateBlacklist,MigrateDefensiveSpecKeys,MigrateHotkeyOverrides,MigrateLegacySettings,MigrateSoundKeys).JustAC.lua:InvalidateCaches()if-chain replaced withCACHE_INVALIDATORSclosure table.UI/UIAnimations.lua: Extracted sharedShowColoredProcGlow/HideColoredProcGlowhelpers; interrupt/burst glow functions reduced to one-line delegates.Options/Core.lua: SixOptions.UpdateXwrappers replaced withFORWARDERSgeneration loop; addedOptions.RefreshAllDynamic(addon)batch helper; call sites consolidated.Options/SpellSearch.lua: AddedSpellSearch.ClearDynamicArgs(argsTable, staticKeys)utility; used inOptions/Offensive.lua,Options/CustomQueue.lua,Options/Defensives.luato replace manual two-loop key-clearing.Options/Defensives.lua: ExtractedIsPetRezClass()/IsPetHealClass()module-local helpers; six duplicatehiddenclosures reduced to one-line delegates.UI/UIFrameFactory.lua: ExportedCreateBaseIcon;UI/UINameplateOverlay.luareplaced its 200-line duplicate icon-creation body with a ~60-line version delegating toUIFrameFactory.CreateBaseIcon.
- Bug fix — charge display in combat
UI/UIRenderer.lua:GetSpellCharges().maxChargesis NeverSecret (source-verified against WoW 12.0.5). Removed theGetCachedMaxChargesfallback that was treating it as secret — the cache could be nil after a spec-change cache wipe before combat started, silently suppressing charge count display.chargeInfo = resultassignment remains OOC-only sincecurrentCharges/cooldownDuration/cooldownStartTimeare still SECRET in combat;chargeTextnow set unconditionally for spells withmaxCharges > 1(secret value passes throughFontString:SetTextsafely).