Files
wow-weakauras/Complete Projects/Fivver Stuff/Buff Me Daddy.lua
2024-08-24 22:43:07 +02:00

127 lines
5.4 KiB
Lua

--COMBAT_LOG_EVENT_UNFILTERED ADD_BUFF REMOVE_BUFF
--https://pastebin.com/4xyHRftN
function(e, ...)
if e == "COMBAT_LOG_EVENT_UNFILTERED" then
local se = select(2, ...)
if se == "SPELL_AURA_APPLIED" or se == "SPELL_AURA_REMOVED" then
aura_env.scanBuffs()
end
elseif e == "ADD_BUFF" then
local msg = select(1, ...)
local arg = select(2, ...)
if msg then
if not WeakAurasSaved.CustomTrash.BuffButtons.Buffs[msg] then
WeakAurasSaved.CustomTrash.BuffButtons.Buffs[msg] = {["active"] = false}
if arg then
WeakAurasSaved.CustomTrash.BuffButtons.Buffs[msg].group = arg
if not WeakAurasSaved.CustomTrash.BuffButtons.Groups[arg] then WeakAurasSaved.CustomTrash.BuffButtons.Groups[arg] = {["active"] = 0, ["shown"] = true} end
end
print(msg, "added")
else
print(msg, "already exists")
end
end
aura_env.scanBuffs()
elseif e == "REMOVE_BUFF" then
local msg = select(1, ...)
if msg and WeakAurasSaved.CustomTrash.BuffButtons.Buffs[msg] then
WeakAurasSaved.CustomTrash.BuffButtons.Buffs[msg] = nil
print(msg, "removed")
else
print(msg, WeakAurasSaved.CustomTrash.BuffButtons.Buffs[msg])
print("Cannot remove", msg)
end
aura_env.scanBuffs()
end
end
--INIT
if not WeakAurasSaved.CustomTrash then WeakAurasSaved.CustomTrash = {} end
if not WeakAurasSaved.CustomTrash.BuffButtons then WeakAurasSaved.CustomTrash.BuffButtons = {} end
if not WeakAurasSaved.CustomTrash.BuffButtons.Buffs then WeakAurasSaved.CustomTrash.BuffButtons.Buffs = {} end
if not WeakAurasSaved.CustomTrash.BuffButtons.Buttons then WeakAurasSaved.CustomTrash.BuffButtons.Buttons = {} end
if not WeakAurasSaved.CustomTrash.BuffButtons.Groups then WeakAurasSaved.CustomTrash.BuffButtons.Groups = {} end
aura_env.buttons = 0
aura_env.scanBuffs = function()
for k,v in pairs(WeakAurasSaved.CustomTrash.BuffButtons.Buffs) do
v.active = false
end
for i = 1, 40 do
local name = UnitBuff("player", i)
print(name)
if WeakAurasSaved.CustomTrash.BuffButtons.Buffs[name] then
WeakAurasSaved.CustomTrash.BuffButtons.Buffs[name].active = true
end
if not name then break end
end
aura_env.refreshButtons()
end
aura_env.resortButtons = function()
aura_env.buttons = 0
for k,v in pairs(WeakAurasSaved.CustomTrash.BuffButtons.Buttons) do
if v:IsShown() == true then
if not WeakAurasSaved.CustomTrash.BuffButtons.Buffs[k] then
v:Hide()
else
v:SetPoint("CENTER", aura_env.region, "CENTER", aura_env.buttons * aura_env.config.size, 0)
aura_env.buttons = aura_env.buttons + 1
end
end
end
end
aura_env.refreshButtons = function()
for k,v in pairs(WeakAurasSaved.CustomTrash.BuffButtons.Buffs) do
if not WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k] or not WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k][0] then
WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k] = CreateFrame("Button", "buton", aura_env.region, "SecureActionButtonTemplate")
WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k]:SetAttribute("type", "macro")
WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k]:RegisterForClicks("LeftButtonDown")
WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k]:Show()
WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k]:SetPoint("CENTER", aura_env.region, "CENTER", aura_env.buttons * aura_env.config.size, 0)
end
WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k]:SetAttribute("macrotext", format("/use %s", k))
WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k]:SetSize(aura_env.config.size, aura_env.config.size)
end
for k,v in pairs(WeakAurasSaved.CustomTrash.BuffButtons.Buffs) do
if v.active == false then
local texture = GetItemIcon(k) or GetSpellTexture(k)
if not GetSpellTexture(k) then
local count = GetItemCount(k)
if not WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k].Text then WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k].Text = WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k]:CreateFontString("ItemCount", "ARTWORK") end
WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k].Text:SetFont("Fonts\\FRIZQT__.TTF", aura_env.config.size / 2, "OUTLINE, MONOCHROME")
WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k].Text:SetPoint("CENTER", WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k], "CENTER")
WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k].Text:SetText(count)
WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k].Text:Show()
end
WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k]:SetNormalTexture(texture)
WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k]:Show()
ActionButton_ShowOverlayGlow(WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k])
else
WeakAurasSaved.CustomTrash.BuffButtons.Buttons[k]:Hide()
end
end
aura_env.resortButtons()
end
for k,v in pairs(WeakAurasSaved.CustomTrash.BuffButtons.Buttons) do
if k[0] then
print(k,v)
v:SetSize(aura_env.config.size, aura_env.config.size)
ActionButton_HideOverlayGlow(k)
end
end
aura_env.scanBuffs()
--INIT
local xsize, ysize = aura_env.region:GetSize()
if not aura_env.button then aura_env.button = CreateFrame("Button", "buton", aura_env.region, "SecureActionButtonTemplate") end
if aura_env.button then
aura_env.button:SetPoint("CENTER", aura_env.region, "CENTER")
aura_env.button:SetSize(xsize, ysize)
aura_env.button:SetAttribute("type", "macro")
aura_env.button:RegisterForClicks("LeftButtonDown")
aura_env.button:SetAttribute("macrotext", format("/use %s", aura_env.id))
end