From 72b87c393131ca9a56747a17e99949e6f7c4a7fe Mon Sep 17 00:00:00 2001 From: enfo Date: Fri, 28 Aug 2026 22:09:23 +0200 Subject: [PATCH] Fix claimed Boss/Priority/Role debuffs leaking into other debuff row categories notImportant() only excluded boss/role/priority from the CC/Raid/Dispellable/ Non-Player records when this row's own Boss/Role/Priority record was actually declared. A category fully claimed by an Aura Designer debuff group has no such record (effBoss/effRole/priorityDeclared stay false), so the exclusion never fired -- a claimed boss/priority debuff that also matched a still- enabled category rendered a second time there, defeating Hide Duplicate Debuffs. --- CHANGELOG.md | 2 ++ DandersFrames/Features/Auras.lua | 17 +++++++++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a94e90995..3d4d9f129 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,8 @@ ### Bug Fixes +* (Auras) Fix a claimed Boss/Priority/Role debuff still rendering a second time in the debuff row's Crowd Control, Raid, Dispellable or Non-Player group whenever it also matched one of those categories. "Hide Duplicate Debuffs" only ever subtracted a category from the row's own Boss/Role/Priority record; a category an Aura Designer debuff group claimed outright had no such record to subtract from, so the other category records never learned to exclude it. + ### Changes ## [5.3.0] diff --git a/DandersFrames/Features/Auras.lua b/DandersFrames/Features/Auras.lua index f6790e208..9394d215f 100644 --- a/DandersFrames/Features/Auras.lua +++ b/DandersFrames/Features/Auras.lua @@ -357,12 +357,21 @@ local function BuildDirectDebuffFilters(db, claimed) candidateFilters = cfFor(true, extra), style = importantStyle } end - -- Subtract whichever important records were declared. Returns a FRESH table each - -- call because cfFor mutates and returns the table it is handed. + -- Subtract whichever important records were declared, AND whichever + -- categories an Aura Designer group has claimed — a claimed category has + -- no row record of its own to read back, so leaving it out here let a + -- claimed Boss/Priority debuff double-render through CC/Raid/Dispellable/ + -- Non-Player. Fresh table each call: cfFor mutates and returns what it's + -- handed. + local excludeBoss = boss or (claimed and claimed.boss) or false + local excludeRole = role or (claimed and claimed.role) or false + local excludePriority = db.debuffFilterPriority or (claimed and claimed.priority) or false local function notImportant(extra) extra = extra or {} - if importantFlag then extra[importantFlag] = false end - if priorityDeclared then extra.isPriorityAura = false end + if excludeBoss and excludeRole then extra.isBossOrRoleAura = false + elseif excludeBoss then extra.isBossAura = false + elseif excludeRole then extra.isRoleAura = false end + if excludePriority then extra.isPriorityAura = false end return extra end if ccToken and not (claimed and claimed.crowdControl) then