ascott18 / TellMeWhen

TellMeWhen is a combat tracking AddOn for World of Warcraft Retail and Classic
https://wow.curseforge.com/projects/tellmewhen
GNU General Public License v3.0
80 stars 11 forks source link

[Bug]: Can't move Icons in DF Beta #1968

Closed Ehland closed 1 year ago

Ehland commented 1 year ago

WoW Version

Retail

TellMeWhen Version

TellMeWhen-9.2.3-17-g6c4845f

Describe the bug

When moving an icon from one slot to another on DF beta a Lua error appears and prevents it, furthermore, there is an error under "Who to watch" section of buff/debuff icons. I have reinstalled TMW and tested on multiple chars and get the same issues

LUA error: TMW lua error.txt

Who to watch screenshot: image

Export Strings

N/A
arieh commented 1 year ago

to expand on this - the error is on line 116 in Icon.lua:

local n = IconDragger.srcicon:GetSettings().UnitConditions.n

UnitConditions is nil. I was able to temporarily resolve the issue locally with this code:

local unitConditions = IconDragger.srcicon:GetSettings().UnitConditions or {}

local n = unitConditions.n or 0

but obviously the actual issue is the missing UnitConditions object

arieh commented 1 year ago

more on this issue - I suspect the issue starts with this error when I first log in:

3x ...ce/AddOns/TellMeWhen/Components/Core/Units/Units.lua:264: attempt to call method 'Conditions_GetConstructor' (a nil value)
[string "@Interface/AddOns/TellMeWhen/Components/Core/Units/Units.lua"]:264: in function <...ce/AddOns/TellMeWhen/Components/Core/Units/Units.lua:120>
[string "=(tail call)"]: ?
[string "=[C]"]: ?
[string "safecall Dispatcher[4]"]:9: in function <[string "safecall Dispatcher[4]"]:5>
[string "=(tail call)"]: ?
[string "@Interface/AddOns/TellMeWhen/Lib/LibOO-1.0-23/LibOO-1.0.lua"]:172: in function <...erface/AddOns/TellMeWhen/Lib/LibOO-1.0/LibOO-1.0.lua:128>
[string "@Interface/AddOns/TellMeWhen/Lib/LibOO-1.0-23/LibOO-1.0.lua"]:662: in function `CallFunc'
[string "@Interface/AddOns/TellMeWhen/Lib/LibOO-1.0-23/LibOO-1.0.lua"]:527: in function <...erface/AddOns/TellMeWhen/Lib/LibOO-1.0/LibOO-1.0.lua:490>
[string "=(tail call)"]: ?
[string "=(tail call)"]: ?
[string "           local cachemeta = { __mode = 'kv' }
            local cache = setmetatable({}, cachemeta)
            local nilKey = {}
            local func = ...
            return function(arg1,arg2,arg3)
    local next, prev, key = cache

 key = arg1 == nil and nilKey or arg1
 prev = next; next = prev[key]
 if not next then next = setmetatable({}, cachemeta) prev[key] = next end
 key = arg2 == nil and nilKey or arg2
 prev = next; next = prev[key]
 if not next then next = setmetatable({}, cachemeta) prev[key] = next end
 key = arg3 == nil and nilKey or arg3
 prev = next; next = prev[key]  if next ~= nil then return next end
    local ret = func(arg1,arg2,arg3)
        prev[key] = ret
        return ret;
    end, cache
    "]:16: in function `GetUnitSet'
[string "@Interface/AddOns/TellMeWhen/Components/Core/Units/Units.lua"]:90: in function `GetUnits'
...
[string "=(tail call)"]: ?
[string "@Interface/AddOns/TellMeWhen/Components/Core/Group.lua"]:496: in function <...nterface/AddOns/TellMeWhen/Components/Core/Group.lua:424>
[string "=(tail call)"]: ?
[string "=[C]"]: ?
[string "safecall Dispatcher[1]"]:9: in function <[string "safecall Dispatcher[1]"]:5>
[string "=(tail call)"]: ?
[string "@Interface/AddOns/TellMeWhen/TellMeWhen.lua"]:2783: in function `UpdateNormally'
[string "@Interface/AddOns/TellMeWhen/TellMeWhen.lua"]:2932: in function `Update'
[string "@Interface/AddOns/TellMeWhen/TellMeWhen.lua"]:2940: in function `?'
[string "@Interface/AddOns/Ace3/AceTimer-3.0-17/AceTimer-3.0.lua"]:55: in function <Interface/AddOns/Ace3/AceTimer-3.0/AceTimer-3.0.lua:50>

though I'm also getting this error when logging in (suspect unrelated):

1x GameTooltip:SetScript(): GameTooltip doesn't have a "OnTooltipSetUnit" script
[string "=[C]"]: in function `SetScript'
[string "@Interface/AddOns/TellMeWhen/Components/Core/Units/Units.lua"]:687: in main chunk

Locals:
(*temporary) = GameTooltip {
 0 = <userdata>
}
(*temporary) = "OnTooltipSetUnit"
(*temporary) = <function> defined @Interface/AddOns/TellMeWhen/Components/Core/Units/Units.lua:687
ascott18 commented 1 year ago

@arieh The second error was indeed the root cause