Cataclysm Classic support for AuraSlots

main
abunai 4 months ago
parent c0c8ab8362
commit 5090e0df28
  1. 35
      src/AuraTable/AuraTable.lua

@ -118,7 +118,7 @@ end
-- Get a units buffs
---@return nil
function AuraTable:GetUnitBuffs()
if Tinkr.classic or Tinkr.era then
if Tinkr.era then
for i = 1, 40 do
local aura = Bastion.Aura:New(self.unit, i, 'HELPFUL')
@ -145,6 +145,22 @@ function AuraTable:GetUnitBuffs()
return
end
-- Update to support Cataclysm Classic (the above no longer works as intended in some cases)
if Tinkr.classic then
local args = { C_UnitAuras.GetAuraSlots(self.unit:GetOMToken(), "HELPFUL") }
for i = 2, #args do
local aura_data = C_UnitAuras.GetAuraDataBySlot(self.unit:GetOMToken(), args[i])
local aura = Caffeine.Aura:CreateFromUnitAuraInfo(aura_data)
if aura:IsValid() then
self:AddOrUpdateAuraInstanceID(aura:GetAuraInstanceID(), aura)
end
end
return
end
AuraUtil_ForEachAura(self.unit:GetOMToken(), 'HELPFUL', nil, function(a)
local aura = Bastion.Aura:CreateFromUnitAuraInfo(a)
@ -157,7 +173,7 @@ end
-- Get a units debuffs
---@return nil
function AuraTable:GetUnitDebuffs()
if Tinkr.classic or Tinkr.era then
if Tinkr.era then
for i = 1, 40 do
local aura = Bastion.Aura:New(self.unit, i, 'HARMFUL')
@ -184,6 +200,21 @@ function AuraTable:GetUnitDebuffs()
return
end
if Tinkr.classic then
local args = { C_UnitAuras.GetAuraSlots(self.unit:GetOMToken(), "HARMFUL") }
for i = 2, #args do
local aura_data = C_UnitAuras.GetAuraDataBySlot(self.unit:GetOMToken(), args[i])
local aura = Caffeine.Aura:CreateFromUnitAuraInfo(aura_data)
if aura:IsValid() then
self:AddOrUpdateAuraInstanceID(aura:GetAuraInstanceID(), aura)
end
end
return
end
AuraUtil_ForEachAura(self.unit:GetOMToken(), 'HARMFUL', nil, function(a)
local aura = Bastion.Aura:CreateFromUnitAuraInfo(a)

Loading…
Cancel
Save