Dungeon Tools

Dungeon Tools

32.8k Downloads

Opening HoA/SoA does not work in v1.1.9

CalistusK opened this issue ยท 13 comments

commented

I have routes created in a previous version which I believe are set to week 4 affixes (Tyrannical/Inspiring/Necrotic/Prideful), in case that helps with tracking this down. I'm in the middle of a dungeon session right now so I don't have time to track this down, but I'll take a look afterwards.

Time: Sat Jan  2 18:34:02 2021
Count: 2
Stack: Interface\AddOns\DungeonTools\DungeonTools.lua:2807: attempt to index field 'value' (a number value)
[string "=[C]"]: ?
[string "@Interface\AddOns\DungeonTools\DungeonTools.lua"]:2807: in function `EnsureDBTables'
[string "@Interface\AddOns\DungeonTools\DungeonTools.lua"]:5092: in function <Interface\AddOns\DungeonTools\DungeonTools.lua:5044>
[string "@Interface\AddOns\DungeonTools\DungeonTools.lua"]:667: in function `ShowInterface'
[string "@Interface\AddOns\DungeonTools\DungeonTools.lua"]:62: in function `?'
[string "@Interface\FrameXML\ChatFrame.lua"]:5093: in function `ChatEdit_ParseText'
[string "@Interface\FrameXML\ChatFrame.lua"]:4757: in function `ChatEdit_SendText'
[string "@Interface\FrameXML\ChatFrame.lua"]:4793: in function `ChatEdit_OnEnterPressed'
[string "*:OnEnterPressed"]:1: in function <[string "*:OnEnterPressed"]:1>

Locals:
commented

If you're using wowup, can you quickly update and let me know if it works?

I suspect you had a route in actual MDT previously with a partially broken table. In 1.1.8 and 1.1.9, code was added to automatically sync and import routes; looks like this may have caused the issue.

I added two type checks on the entry itself, and value inside it; if the entry is not a table, it gets overwritten by a table; if value is not a table, default fields are set to make sure that nothing, in theory, breaks.

Let me know if it works. I'll be back in 3-4 hours after a quick nap.

commented

I was having the same issue and after reading this post I went into my WTF folder and found the saved variables .lua for Mythic Dungeon Tools (no longer installed) and removed those files. Dungeon Tools works fine now.

commented

I didn't carry anything over from my old MDT SavedVariables, but in DungeonTools v1.1.8, I imported routes which I believe were created in MDT v3.3.4. You can find them here for reference: https://pastebin.com/bjF89xvk

I updated my DungeonTools to v.1.1.10, and this issue is still occurring. Regarding Drangleic's suggestion, I already deleted my original MDT SavedVariables while switching over to DungeonTools a few days ago, so that fix would not apply to my particular issue.

Message: Interface\AddOns\DungeonTools\DungeonTools.lua:3000: attempt to index field 'value' (a number value)
Time: Sat Jan  2 21:06:18 2021
Count: 4
Stack: Interface\AddOns\DungeonTools\DungeonTools.lua:3000: attempt to index field 'value' (a number value)
[string "=(tail call)"]: ?
[string "@Interface\AddOns\DungeonTools\DungeonTools.lua"]:3000: in function `UpdateToDungeon'
[string "@Interface\AddOns\DungeonTools\DungeonTools.lua"]:2778: in function <Interface\AddOns\DungeonTools\DungeonTools.lua:2756>
[string "=[C]"]: ?
[string "@Interface\AddOns\Altoholic\libs\AceGUI-3.0\AceGUI-3.0.lua"]:72: in function <...face\AddOns\Altoholic\libs\AceGUI-3.0\AceGUI-3.0.lua:70>
[string "@Interface\AddOns\Altoholic\libs\AceGUI-3.0\AceGUI-3.0.lua"]:306: in function `Fire'
[string "@Interface\AddOns\Altoholic\libs\AceGUI-3.0\widgets\AceGUIWidget-DropDown.lua"]:442: in function <...ic\libs\AceGUI-3.0\widgets\AceGUIWidget-DropDown.lua:433>
[string "=[C]"]: ?
[string "@Interface\AddOns\Altoholic\libs\AceGUI-3.0\AceGUI-3.0.lua"]:72: in function <...face\AddOns\Altoholic\libs\AceGUI-3.0\AceGUI-3.0.lua:70>
[string "@Interface\AddOns\Altoholic\libs\AceGUI-3.0\AceGUI-3.0.lua"]:306: in function `Fire'
[string "@Interface\AddOns\Altoholic\libs\AceGUI-3.0\widgets\AceGUIWidget-DropDown-Items.lua"]:351: in function <...s\AceGUI-3.0\widgets\AceGUIWidget-DropDown-Items.lua:341>

Locals: <none>
commented

v1.1.11 is working a bit better for me in that it doesn't completely black out like v10 did,
I still can't open HoA at all. It also seems like all routes other than De Other Side, Mists and Theater of Pain has been emptied out.

All of my routes were test routes created in this addon probably in v.6 or .7 (not imported from anywhere),

4x DungeonTools\DungeonTools-1.1.11.lua:3018: attempt to index field 'value' (a number value)
[string "@DungeonTools\DungeonTools-1.1.11.lua"]:3018: in function `UpdateToDungeon'
[string "@DungeonTools\DungeonTools-1.1.11.lua"]:2780: in function <DungeonTools\DungeonTools.lua:2758>
[string "=[C]"]: ?
[string "@Bartender4\libs\AceGUI-3.0\AceGUI-3.0-41.lua"]:72: in function <...aceBartender4\libs\AceGUI-3.0\AceGUI-3.0.lua:70>
[string "@Bartender4\libs\AceGUI-3.0\AceGUI-3.0-41.lua"]:306: in function `Fire'
[string "@Bartender4\libs\AceGUI-3.0-41\widgets\AceGUIWidget-DropDown.lua"]:437: in function <...r4\libs\AceGUI-3.0\widgets\AceGUIWidget-DropDown.lua:428>
[string "=[C]"]: ?
[string "@Bartender4\libs\AceGUI-3.0\AceGUI-3.0-41.lua"]:72: in function <...aceBartender4\libs\AceGUI-3.0\AceGUI-3.0.lua:70>
[string "@Bartender4\libs\AceGUI-3.0\AceGUI-3.0-41.lua"]:306: in function `Fire'
[string "@Bartender4\libs\AceGUI-3.0-41\widgets\AceGUIWidget-DropDown-Items.lua"]:351: in function <...s\AceGUI-3.0\widgets\AceGUIWidget-DropDown-Items.lua:341>
commented

How on earth is value a number ๐Ÿค” .

The only thing I can think of as to how you ended up in that state is that the <New Preset> in MDT has a value of 0 (line 127 in DungeonTools.lua). This is likely where the problem is coming from, and when I imported all routes from MDT to dungeon tools, this stayed.

What a silly decision to have the New Preset be a route in the route table though. I think I'm going to spend some time today erasing that hack.

commented

Where my routes have been emptied out i have multiple <New Preset> entries in the route dropdown, so could very well be related to that

commented

Got the same behavior, after updating to 1.1.9 I am just getting black screen and lua error.

commented

I pushed 1.1.11 onto curseforge for now; now that I know where it is coming from (roughly) thanks to @erigul 's comment, I should be able to replicate locally and fix.

commented

with 1.1.11 now if I choose Theater of Pain

Message: Interface\AddOns\DungeonTools\DungeonTools.lua:3018: attempt to index field 'value' (a number value)
Time: Sun Jan  3 21:27:00 2021
Count: 1
Stack: Interface\AddOns\DungeonTools\DungeonTools.lua:3018: attempt to index field 'value' (a number value)
[string "@Interface\AddOns\DungeonTools\DungeonTools.lua"]:3018: in function `UpdateToDungeon'
[string "@Interface\AddOns\DungeonTools\DungeonTools.lua"]:2780: in function <Interface\AddOns\DungeonTools\DungeonTools.lua:2758>
[string "=[C]"]: ?
[string "@Interface\AddOns\Ace3\AceGUI-3.0\AceGUI-3.0.lua"]:72: in function <Interface\AddOns\Ace3\AceGUI-3.0\AceGUI-3.0.lua:70>
[string "@Interface\AddOns\Ace3\AceGUI-3.0\AceGUI-3.0.lua"]:306: in function `Fire'
[string "@Interface\AddOns\Ace3\AceGUI-3.0\widgets\AceGUIWidget-DropDown.lua"]:437: in function <...ns\Ace3\AceGUI-3.0\widgets\AceGUIWidget-DropDown.lua:428>
[string "=[C]"]: ?
[string "@Interface\AddOns\Ace3\AceGUI-3.0\AceGUI-3.0.lua"]:72: in function <Interface\AddOns\Ace3\AceGUI-3.0\AceGUI-3.0.lua:70>
[string "@Interface\AddOns\Ace3\AceGUI-3.0\AceGUI-3.0.lua"]:306: in function `Fire'
[string "@Interface\AddOns\Ace3\AceGUI-3.0\widgets\AceGUIWidget-DropDown-Items.lua"]:351: in function <...3\AceGUI-3.0\widgets\AceGUIWidget-DropDown-Items.lua:341>

Locals: <none>

and

Message: Interface\AddOns\DungeonTools\DungeonTools.lua:2290: attempt to perform arithmetic on field 'week' (a nil value)
Time: Sun Jan  3 21:27:02 2021
Count: 2
Stack: Interface\AddOns\DungeonTools\DungeonTools.lua:2290: attempt to perform arithmetic on field 'week' (a nil value)
[string "@Interface\AddOns\DungeonTools\DungeonTools.lua"]:2290: in function `IsCurrentPresetFortified'
[string "@Interface\AddOns\DungeonTools\DungeonTools.lua"]:2599: in function `CalculateEnemyHealth'
[string "@Interface\AddOns\DungeonTools\DungeonEnemies.lua"]:484: in function `DisplayBlipTooltip'
[string "@Interface\AddOns\DungeonTools\DungeonEnemies.lua"]:96: in function <Interface\AddOns\DungeonTools\DungeonEnemies.lua:92>

Locals: self = <table> {
 DeleteAllPresets = <function> defined @Interface\AddOns\DungeonTools\DungeonTools.lua:3192
 DungeonEnemies_UpdateSelected = <function> defined @Interface\AddOns\DungeonTools\DungeonEnemies.lua:843
 GetCurrentPull = <function> defined @Interface\AddOns\DungeonTools\DungeonTools.lua:2359
 LiveSession_RequestSession = <function> defined @Interface\AddOns\DungeonTools\LiveSession.lua:83
 PingMap = <function> defined @Interface\AddOns\DungeonTools\DungeonTools.lua:2333
 AddPull = <function> defined @Interface\AddOns\DungeonTools\DungeonTools.lua:4153
 DungeonEnemies_UpdateSeasonalAffix = <function> defined @Interface\AddOns\DungeonTools\DungeonEnemies.lua:950
 HideInterface = <function> defined @Interface\AddOns\DungeonTools\DungeonTools.lua:693
 GetBlip = <function> defined @Interface\AddOns\DungeonTools\DungeonEnemies.lua:759
 RestoreScrollframeScripts = <function> defined @Interface\AddOns\DungeonTools\toolbar.lua:498
 GetFullScreenSizes = <function> defined @Interface\AddOns\DungeonTools\DungeonTools.lua:879
 ADDON_LOADED = <function> defined @Interface\AddOns\DungeonTools\DungeonTools.lua:144
 UpdateDungeonEnemies = <function> defined @Interface\AddOns\DungeonTools\DungeonTools.lua:2636
 IsFrameOffScreen = <function> defined @Interface\AddOns\DungeonTools\DungeonTools.lua:1021
 dungeonEnemies = <table> {
 }
 IsCurrentPresetTyrannical = <function> defined @Interface\AddOns\DungeonTools\DungeonTools.lua:2294
 POI_CreateFramePools = <function> defined @Interface\AddOns\DungeonTools\Pointsofinterest.lua:9
 CreateDevPanel = <function> defined @Interface\AddOns\DungeonTools\devpanel.lua:134
 StartEraserDrawing = <function> defined @Interface\AddOns\DungeonTools\toolbar.lua:841
 SetLivePreset = <function> defined @Interface\AddOns\DungeonTools\DungeonTools.lua:2429
 GetDungeonName = <function> defined @Interface\AddOns\DungeonTools\DungeonTools.lua:259
 LiveSession_SendPreset = <function> defined @Interface\AddOns\DungeonTools\LiveSession.lua:201
 UpdateEnemyInfoData = <function> defined @Interface\AddOns\DungeonTools\EnemyInfo.lua:553
 HardReset = <function> defined @Interface\AddOns\DungeonTools\DungeonTools.lua:5068
 CleanEnemyData = <function> defined @Interface\AddOns\DungeonTools\DungeonEnemies.lua:1333
 GetHighestFrameLevelAtCursor = <function> defined @Interface\AddOns\DungeonTools\toolbar.lua:529
 DisplayBlipTooltip = <function> defined @Interface\AddOns\DungeonTools\DungeonEnemies.lua:460
 ClearPull = <function> defined @Interface\AddOns\DungeonTools\DungeonTools.lua:4190
 StringToTable = <function> defined @Interface\AddOns\DungeonTools\Transmission.lua:93
 SkinProgressBar = <function> defined @Interface\AddOns\DungeonTools\DungeonTools.lua:994
 MakeRenameFrame = <function> defined @Interface\AddOns\DungeonTools\DungeonTools.lua:4267
 DungeonEnemies_UpdateBoralusFaction = <function> defined @Interface\AddOns\DungeonTools\DungeonEnemies.lua:996
 initToolbar = <function> defined @Interface\AddOns\DungeonTools\toolbar.lua:14
 POI_UpdateAll = <function> defined @Interface\AddOns\DungeonTools\Pointsofinterest.lua:486
 OpenCustomColorsDialog = <function> defined @Interface\AddOns\DungeonTools\DungeonTools.lua:2708
 LiveSession_SendCommand = <function> defined @Interface\AddOns\DungeonTools\LiveSessio
commented

I got my DT.lua file out of syncthing from a yesterday, which should have my routes that then broke when I upgraded, if that helps with recreating.
DungeonTools~20210102-171123.lua.txt

commented

I'm reworking the route storage entirely. This is such a rabbit hole of a problem where a bunch of things are calling on the defaults when they should not be:

  • there are routes without value ( @erigul 's route in dungeon ID 33, first preset):
				{
					["mdi"] = {
						["freeholdJoined"] = false,
						["beguiling"] = 1,
						["freehold"] = 1,
					},
					["week"] = 4,
					["difficulty"] = 10,
					["objects"] = {
					},
				}, -- [1]
  • There are routes without even an object
  • There are routes where value is an integer (0 for New Preset)

All of this stems from hacks to get the menu at the top to function without having to copy part of its state, which I am undoing right now. I will remove both the default route and the new preset element from there, move them as proper virtual objects, and mediate every other call so I can check things when another part of the addon requests a route.

This will take me a short while, though. In the meantime, /script DungeonTools:HardReset() will wipe your routes if you absolutely do not mind losing them for now. I should be able to push a small corrective fix later today before the big refactor, too, depending on how the evening goes.

@erigul I've imported your data object and will use it to see if I can fix all the cases in it.

commented

You should see v1.1.11 showing up soon; the change in it is aimed at fixing this.

Whenever you open dungeon tools, it will check and remove any presets that are not deemed valid routes. This should not cause issues as, in your case, an invalid route is a route without a value table, which would not actually display anything.

Let me know if this fixes it; if it does I'll push it to curseforge as well.

commented

As a temporary workaround it seems like /reload and selecting existing route on the first displayed map would allow to open those who couldn't be opened.