fix(dispels): drop C_Player.IsCustomClass gate from getCoaDispels
Witchdoctor (and likely other CoA classes intermittently) never got the "On curable debuff" border highlight on raid/party frames: the C_Player.IsCustomClass() check in getCoaDispels could return false at scan time and cache playerCoaDispels = false, after which the highlight manual-scan path was never entered and the fallback RAID filter (which doesn't know about COA dispel spells) silently returned nothing. COA_CLASS_DISPELS only contains custom-class tokens (CHRONOMANCER, WITCHDOCTOR, MONK = Templar, PROPHET = Venomancer, etc.) so any token match already implies the player is a dispelling custom class — the IsCustomClass call is redundant. Trust the table directly. Vanilla classes whose tokens aren't in the table still get false → RAID filter path, unchanged. Bump v3.3.0-coa.2.
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
## Title: Shadowed Unit Frames
|
## Title: Shadowed Unit Frames
|
||||||
## Notes: An apple a day keeps the raptor away, or so they say
|
## Notes: An apple a day keeps the raptor away, or so they say
|
||||||
## Author: Shadowed
|
## Author: Shadowed
|
||||||
## Version: v3.3.0
|
## Version: v3.3.0-coa.2
|
||||||
## SavedVariables: ShadowedUFDB
|
## SavedVariables: ShadowedUFDB
|
||||||
## OptionalDeps: Ace3, LibSharedMedia-3.0, LibHealComm-4.0, AceGUI-3.0-SharedMediaWidgets
|
## OptionalDeps: Ace3, LibSharedMedia-3.0, LibHealComm-4.0, AceGUI-3.0-SharedMediaWidgets
|
||||||
## X-Curse-Packaged-Version: v3.2.12
|
## X-Curse-Packaged-Version: v3.2.12
|
||||||
|
|||||||
@@ -26,18 +26,18 @@ local COA_CLASS_DISPELS = {
|
|||||||
}
|
}
|
||||||
local function getCoaDispels()
|
local function getCoaDispels()
|
||||||
if playerCoaDispels ~= nil then return playerCoaDispels end
|
if playerCoaDispels ~= nil then return playerCoaDispels end
|
||||||
local cp = _G.C_Player
|
-- Trust the COA_CLASS_DISPELS table directly: it only contains custom-class
|
||||||
if not cp or not cp.IsCustomClass then
|
-- tokens, so any token-match implies the player IS a dispelling custom
|
||||||
-- C_Player not yet initialised (called before PLAYER_LOGIN); don't
|
-- class. Avoids C_Player.IsCustomClass timing/availability issues (the
|
||||||
-- cache — retry on the next scan so we pick it up once in-world.
|
-- API isn't reliable for every class on every login — Witchdoctor in
|
||||||
|
-- particular was getting cached as false on raid frames).
|
||||||
|
local _, token = UnitClass("player")
|
||||||
|
if not token or token == "" then
|
||||||
|
-- UnitClass not ready yet (very early init); don't cache — retry on
|
||||||
|
-- the next scan so we pick it up once in-world.
|
||||||
return nil
|
return nil
|
||||||
end
|
end
|
||||||
if cp:IsCustomClass() then
|
playerCoaDispels = COA_CLASS_DISPELS[token] or false
|
||||||
local _, token = UnitClass("player")
|
|
||||||
playerCoaDispels = token and COA_CLASS_DISPELS[token] or false
|
|
||||||
else
|
|
||||||
playerCoaDispels = false
|
|
||||||
end
|
|
||||||
return playerCoaDispels
|
return playerCoaDispels
|
||||||
end
|
end
|
||||||
-- Expose for other modules (highlight.lua) so the dispel set stays single-source.
|
-- Expose for other modules (highlight.lua) so the dispel set stays single-source.
|
||||||
|
|||||||
Reference in New Issue
Block a user