Raven

2M Downloads

Bug: r640 refuses to display anything.

Dajova opened this issue ยท 6 comments

commented

Doesnt display anything since latest update (r640). Reverting to r639 fixes it.

[string "@Raven/Main.lua"]:188: in function <Raven/Main.lua:186>
[string "@Raven/Main.lua"]:468: in function `AddTrackers'
[string "@Raven/Main.lua"]:1924: in function `UpdateTrackers'
[string "@Raven/Main.lua"]:1288: in function `Update'
[string "@Raven/Main.lua"]:948: in function <Raven/Main.lua:944>
[string "@Raven/Main.lua"]:979: in function `?'
[string "@Masque/Libs/CallbackHandler-1.0-8/CallbackHandler-1.0.lua"]:109: in function <...que/Libs/CallbackHandler-1.0/CallbackHandler-1.0.lua:109>
[string "=[C]"]: ?
[string "@Masque/Libs/CallbackHandler-1.0-8/CallbackHandler-1.0.lua"]:19: in function <...que/Libs/CallbackHandler-1.0/CallbackHandler-1.0.lua:15>
[string "@Masque/Libs/CallbackHandler-1.0-8/CallbackHandler-1.0.lua"]:54: in function `Fire'
[string "@ElvUI_Libraries/Core/Ace3/AceEvent-3.0-4/AceEvent-3.0.lua"]:120: in function <...UI_Libraries/Core/Ace3/AceEvent-3.0/AceEvent-3.0.lua:119>

Locals:
unitToken = "player"
index = 1
filter = "HELPFUL|PLAYER"
(*temporary) = nil
(*temporary) = nil
(*temporary) = "player"
(*temporary) = 1
(*temporary) = "HELPFUL|PLAYER"
(*temporary) = "attempt to call upvalue 'GetAuraDataByIndex' (a nil value)"
MOD = <table> {
 CheckTalent = <function> defined @Raven/Conditions.lua:325
 testOrder = <table> {
 }
 HexColor = <function> defined @Raven/Profile.lua:43
 UpdateInCombatBar = <function> defined @Raven/Cancel.lua:66
 modules = <table> {
 }
 Nest_SetShine = <function> defined @Raven/Nest.lua:1303
 GetValueFormat = <function> defined @Raven/Values.lua:833
 ReleaseBarGroup = <function> defined @Raven/Bars.lua:723
 CopyTable = <function> defined @Raven/Profile.lua:61
 ResetColorDefault = <function> defined @Raven/Profile.lua:480
 Nest_SetBarGroupLock = <function> defined @Raven/Nest.lua:973
 Nest_FormatTime = <function> defined @Raven/Nest.lua:1873
 SetInCombatBar = <function> defined @Raven/Cancel.lua:203
 LocalSpellNames = <table> {
 }
 GetExpireColor = <function> defined @Raven/Profile.lua:697
 UpdateInternalCooldowns = <function> defined @Raven/Main.lua:2145
 SetExpireColor = <function> defined @Raven/Profile.lua:685
 DefaultProfile = <table> {
 }
 ResetColorDefaults = <function> defined @Raven/Profile.lua:499
 RemoveMatchingTrackers = <function> defined @Raven/Main.lua:425
 Nest_CreateBar = <function> defined @Raven/Nest.lua:1074
 CheckSpec = <function> defined @Raven/Conditions.lua:380
 SetEnabledState = <function> defined @Masque/Libs/AceAddon-3.0/AceAddon-3.0.lua:420
 FinalizeBars = <function> defined @Raven/Bars.lua:161
 mountSpells = <table> {
 }
 Nest_SetLabelColor = <function> defined @Raven/Nest.lua:1279
 LoadCustomBars = <function> defined @Raven/Bars.lua:528
 Nest_DeleteAllBars = <function> defined @Raven/Nest.lua:1243
 Nest_AdjustColor = <function> defined @Raven/Nest.lua:1344
 UpdateTrackers = <function> defined @Raven/Main.lua:1896
 ldbi = <table> {
 }
 Nest_RegisterCallbacks = <function> defined @Raven/Nest.lua:683
 UnregisterAllEvents = <function> defined @Masque/Libs/CallbackHandler-1.0/CallbackHandler-1.0.lua:164
 InitializeBarGroup = <function> defined @Raven/Bars.lua:494
 Nest_SetBarGroupBorder = <function> defined @Raven/Nest.lua:898
 Nest_GetBarGroups = <function> defined @Raven/Nest.lua:796
 RemoveTrackers = <function> defined @Raven/Main.lua:410
 OptionsPanel = <function> defined @Raven/Main.lua:1131
 Nest_SetBarGroupBackdrop = <function> defined @Raven/Nest.lua:906
 DetectInternalCooldown = <function> defined @Raven/Main.lua:2127
 Nest_SetColors = <function> defined @Raven/Nest.lua:1262
 isVanilla = false
 InitializeSpellIDs = <function> defined @Raven/Profile.lua:141
 GetName = <function> defined @Masque/Libs/AceAddon-3.0/AceAddon-3.0.lua:275
 InitializeBuffTooltip = <function> defined @Raven/Main.lua:1471
 name = "Raven"
 ColorPalette = <table> {
 }
 SetConditionDefaults = <function> defined @Raven/Conditions.lua:852
 Nest_SetAlpha = <function> defined @Raven/Nest.lua:1294
 SaveBarGroupSettings = <function> defined @Raven/Bars.lua:525
 Print = <function> defined @ElvUI_Libraries/Core/Ace3/AceConsole-3.0/AceConsole-3.0.lua:50
 RegisterCooldownDefault = <function> defined @Raven/Profile.lua:410
 Nest_SetTimeColor = <function> defined @Raven/Nest.lua:1284
 Nest_DeleteBar = <function> defined @Raven/Nest.lua```
commented

Amendment to solution 1 above.
The changes are correct but GetAuraData can't be a local function in Main.lua and also called in Cancel.lua

So it has to be made a method

-- Functions for reading Auras
function MOD:GetAuraData(unitToken, index, filter)
  if C_UnitAuras and C_UnitAuras.GetAuraDataByIndex then
    return AuraUtil.UnpackAuraData(C_UnitAuras.GetAuraDataByIndex(unitToken, index, filter))
  else
    return UnitAura(unitToken, index, filter)
  end
end

Then all the other references to GetAuraData also need to be changed to MOD:GetAuradata .. that's one sloppy update .. r640 ๐Ÿ˜

commented

r640 errors on Wrath Classic with

4x Raven/Main.lua:188: attempt to call upvalue 'GetAuraDataByIndex' (a nil value)
[string "@Raven/Main.lua"]:188: in function <Raven/Main.lua:186>
[string "@Raven/Main.lua"]:468: in function `AddTrackers'
[string "@Raven/Main.lua"]:1924: in function `UpdateTrackers'
[string "@Raven/Main.lua"]:1288: in function `Update'
[string "@Raven/Main.lua"]:948: in function <Raven/Main.lua:944>
[string "@Raven/Main.lua"]:979: in function `?'
[string "@Ace3/CallbackHandler-1.0-8/CallbackHandler-1.0.lua"]:109: in function <...Ons/Ace3/CallbackHandler-1.0/CallbackHandler-1.0.lua:109>
[string "=[C]"]: ?
[string "@Ace3/CallbackHandler-1.0-8/CallbackHandler-1.0.lua"]:19: in function <...Ons/Ace3/CallbackHandler-1.0/CallbackHandler-1.0.lua:15>
[string "@Ace3/CallbackHandler-1.0-8/CallbackHandler-1.0.lua"]:54: in function `Fire'
[string "@Ace3/AceEvent-3.0-4/AceEvent-3.0.lua"]:120: in function <Ace3/AceEvent-3.0/AceEvent-3.0.lua:119>

Locals:
unitToken = "player"
index = 1
filter = "HELPFUL|PLAYER"
(*temporary) = nil
(*temporary) = nil
(*temporary) = "player"
(*temporary) = 1
(*temporary) = "HELPFUL|PLAYER"
(*temporary) = "attempt to call upvalue 'GetAuraDataByIndex' (a nil value)"
MOD = <table> {
 CheckTalent = <function> defined @Raven/Conditions.lua:325
 testOrder = <table> {
 }
 HexColor = <function> defined @Raven/Profile.lua:43
 UpdateInCombatBar = <function> defined @Raven/Cancel.lua:66
 modules = <table> {
 }
 Nest_SetShine = <function> defined @Raven/Nest.lua:1303
 GetValueFormat = <function> defined @Raven/Values.lua:833
 ReleaseBarGroup = <function> defined @Raven/Bars.lua:723
 CopyTable = <function> defined @Raven/Profile.lua:61
 ResetColorDefault = <function> defined @Raven/Profile.lua:480
 Nest_SetBarGroupLock = <function> defined @Raven/Nest.lua:973
 Nest_FormatTime = <function> defined @Raven/Nest.lua:1873
 SetInCombatBar = <function> defined @Raven/Cancel.lua:203
 LocalSpellNames = <table> {
 }
 GetExpireColor = <function> defined @Raven/Profile.lua:697
 UpdateInternalCooldowns = <function> defined @Raven/Main.lua:2145
 SetExpireColor = <function> defined @Raven/Profile.lua:685
 DefaultProfile = <table> {
 }
 ResetColorDefaults = <function> defined @Raven/Profile.lua:499
 RemoveMatchingTrackers = <function> defined @Raven/Main.lua:425
 Nest_CreateBar = <function> defined @Raven/Nest.lua:1074
 CheckSpec = <function> defined @Raven/Conditions.lua:380
 SetEnabledState = <function> defined @Ace3/AceAddon-3.0/AceAddon-3.0.lua:420
 FinalizeBars = <function> defined @Raven/Bars.lua:161
 mountSpells = <table> {
 }
 Nest_SetLabelColor = <function> defined @Raven/Nest.lua:1279
 LoadCustomBars = <function> defined @Raven/Bars.lua:528
 Nest_DeleteAllBars = <function> defined @Raven/Nest.lua:1243
 Nest_AdjustColor = <function> defined @Raven/Nest.lua:1344
 UpdateTrackers = <function> defined @Raven/Main.lua:1896
 ldbi = <table> {
 }
 Nest_RegisterCallbacks = <function> defined @Raven/Nest.lua:683
 UnregisterAllEvents = <function> defined @Ace3/CallbackHandler-1.0/CallbackHandler-1.0.lua:164
 InitializeBarGroup = <function> defined @Raven/Bars.lua:494
 Nest_SetBarGroupBorder = <function> defined @Raven/Nest.lua:898
 Nest_GetBarGroups = <function> defined @Raven/Nest.lua:796
 RemoveTrackers = <function> defined @Raven/Main.lua:410
 OptionsPanel = <function> defined @Raven/Main.lua:1131
 Nest_SetBarGroupBackdrop = <function> defined @Raven/Nest.lua:906
 DetectInternalCooldown = <function> defined @Raven/Main.lua:2127
 Nest_SetColors = <function> defined @Raven/Nest.lua:1262
 isVanilla = false
 InitializeSpellIDs = <function> defined @Raven/Profile.lua:141
 GetName = <function> defined @Ace3/AceAddon-3.0/AceAddon-3.0.lua:275
 InitializeBuffTooltip = <function> defined @Raven/Main.lua:1471
 name = "Raven"
 ColorPalette = <table> {
 }
 SetConditionDefaults = <function> defined @Raven/Conditions.lua:852
 Nest_SetAlpha = <function> defined @Raven/Nest.lua:1294
 SaveBarGroupSettings = <function> defined @Raven/Bars.lua:525
 Print = <function> defined @Ace3/AceConsole-3.0/AceConsole-3.0.lua:50
 RegisterCooldownDefault = <function> defined @Raven/Profile.lua:410
 Nest_SetTimeColor = <function> defined @Raven/Nest.lua:1284
 Nest_DeleteBar = <function> defined @Raven/Nest.lua:1179
 ExpansionIsOrBelow = <function> def

GetAuraDataByIndex does not exist as an API on Wrath

commented

10.2.5 and the Classic (Era/Wrath) clients have diverged for what namespaces are available.
So there's a couple solutions to this, neither is too clean.

  1. Abandon .isModernAPI check at the relevant method and check for the presence of API directly
-- Functions for reading Auras
local function GetAuraData(unitToken, index, filter)
  if C_UnitAuras and C_UnitAuras.GetAuraDataByIndex then
    return AuraUtil.UnpackAuraData(C_UnitAuras.GetAuraDataByIndex(unitToken, index, filter))
  else
    return UnitAura(unitToken, index, filter)
  end
end
  1. Create a shim at the start of Main.lua like this
local GetAuraDataByIndex, UnpackAuraData
if C_UnitAuras and C_UnitAuras.GetAuraDataByIndex then
  GetAuraDataByIndex = C_UnitAuras.GetAuraDataByIndex
else
  GetAuraDataByIndex = function(unit, index, filter)
    return {UnitAura(unit,index,filter)}
  end
end
if AuraUtil and AuraUtil.UnpackAuraData then
  UnpackAuraData = AuraUtil.UnpackAuraData
else
  UnpackAuraData = function(aura)
    return unpack(aura)
  end
end
commented

This Cancel.lua#L123 is also a typo.

There is no MOD:CheckAuras method.

Should be MOD:CheckAura

commented

Ok.. since this got fairly long.
Fixes for r640 in a list.

  1. Remove
    Main.lua#L37
    Main.lua#L38

  2. Change
    Main.lua#L186
    to

function MOD:GetAuraData(unitToken, index, filter)
	if C_UnitAuras and C_UnitAuras.GetAuraDataByIndex and AuraUtil.UnpackAuraData then
		return AuraUtil.UnpackAuraData(C_UnitAuras.GetAuraDataByIndex(unitToken, index, filter))
	else
		return UnitAura(unitToken, index, filter)
	end
end
  1. Replace all occurrences of = GetAuraData( with = MOD:GetAuraData( (7 replacements)

  2. Fix the typo in Cancel.lua#L123
    by changing the line to

local auraList = MOD:CheckAura("player", b.aura_id, true) -- CheckAura, not CheckAuras

and that should return Raven to a working condition.

commented

@Dajova Thanks for the report!

@Road-block Thanks for the excellent fixes! They'll be rolling out shortly.