From 7b41df16a60cd8c74ac94415fe0b99abd64ee96a Mon Sep 17 00:00:00 2001 From: shagu Date: Mon, 21 Jul 2025 16:33:12 +0200 Subject: [PATCH] buffwatch: add option to only track own debuffs --- api/config.lua | 1 + env/profiles.lua | 1 + modules/buffwatch.lua | 11 ++++++++--- modules/gui.lua | 1 + 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/api/config.lua b/api/config.lua index 07ba8692..7dd2114c 100644 --- a/api/config.lua +++ b/api/config.lua @@ -119,6 +119,7 @@ function pfUI:LoadConfig() pfUI:UpdateConfig("buffbar", "tdebuff", "colorstacks", "0") pfUI:UpdateConfig("buffbar", "tdebuff", "width", "-1") pfUI:UpdateConfig("buffbar", "tdebuff", "height", "20") + pfUI:UpdateConfig("buffbar", "tdebuff", "selfdebuff", "0") pfUI:UpdateConfig("buffbar", "tdebuff", "filter", "blacklist") pfUI:UpdateConfig("buffbar", "tdebuff", "threshold", "120") pfUI:UpdateConfig("buffbar", "tdebuff", "whitelist", "") diff --git a/env/profiles.lua b/env/profiles.lua index 34e9972e..7b1bd28e 100644 --- a/env/profiles.lua +++ b/env/profiles.lua @@ -433,6 +433,7 @@ local slim = { ["tdebuff"] = { ["enable"] = "1", ["height"] = "14", + ["selfdebuff"] = "1", }, }, ["chat"] = { diff --git a/modules/buffwatch.lua b/modules/buffwatch.lua index e6fc5280..33e76e0c 100644 --- a/modules/buffwatch.lua +++ b/modules/buffwatch.lua @@ -74,7 +74,7 @@ pfUI:RegisterModule("buffwatch", "vanilla:tbc", function () return anchor end - local function GetBuffData(unit, id, type, skipTooltip) + local function GetBuffData(unit, id, type, selfdebuff) if unit == "player" then local bid = GetPlayerBuff(PLAYER_BUFF_START_ID+id, type) local stacks = GetPlayerBuffApplications(bid) @@ -82,12 +82,15 @@ pfUI:RegisterModule("buffwatch", "vanilla:tbc", function () local texture = GetPlayerBuffTexture(bid) local name - if not skipTooltip and texture then + if texture then scanner:SetPlayerBuff(bid) name = scanner:Line(1) end return remaining, texture, name, stacks + elseif libdebuff and selfdebuff then + local name, rank, texture, stacks, dtype, duration, timeleft = libdebuff:UnitOwnDebuff(unit, id) + return timeleft, texture, name, stacks elseif libdebuff then local name, rank, texture, stacks, dtype, duration, timeleft = libdebuff:UnitDebuff(unit, id) return timeleft, texture, name, stacks @@ -228,8 +231,10 @@ pfUI:RegisterModule("buffwatch", "vanilla:tbc", function () local function RefreshBuffBarFrame(frame) -- reinitialize all active buffs + local selfdebuff = frame.config.selfdebuff == "1" + for i=1,32 do - local timeleft, texture, name, stacks = GetBuffData(frame.unit, i, frame.type) + local timeleft, texture, name, stacks = GetBuffData(frame.unit, i, frame.type, selfdebuff) timeleft = timeleft or 0 if texture and name and name ~= "" and BuffIsVisible(frame.config, name) then diff --git a/modules/gui.lua b/modules/gui.lua index 581b7120..d084caa7 100644 --- a/modules/gui.lua +++ b/modules/gui.lua @@ -1990,6 +1990,7 @@ pfUI:RegisterModule("gui", "vanilla:tbc", function () CreateConfig(nil, T["Color Debuff Stacks"], C.buffbar.tdebuff, "colorstacks", "checkbox") CreateConfig(nil, T["Buffbar Width"], C.buffbar.tdebuff, "width") CreateConfig(nil, T["Buffbar Height"], C.buffbar.tdebuff, "height") + CreateConfig(nil, T["Only Show Own Debuffs (|cffffaaaaExperimental|r)"], C.buffbar.tdebuff, "selfdebuff", "checkbox") CreateConfig(nil, T["Filter Mode"], C.buffbar.tdebuff, "filter", "dropdown", pfUI.gui.dropdowns.buffbarfilter) CreateConfig(nil, T["Time Threshold"], C.buffbar.tdebuff, "threshold") CreateConfig(nil, T["Whitelist"], C.buffbar.tdebuff, "whitelist", "list")