Meivyn / AdventureGuideLockouts

A fork and continuation of Adventure Guide Saved Instances WoW add-on.
https://wow.curseforge.com/projects/adventure-guide-lockouts
GNU General Public License v3.0
9 stars 2 forks source link

Reloading within instances causes error. #14

Closed Saxayone closed 3 years ago

Saxayone commented 3 years ago

Reloading within instances causes the following error: [19:58:49] AdventureGuideLockouts ERROR: instanceID is nil. Please report following values at https://github.com/Meivyn/AdventureGuideLockouts/issues [19:58:49] AdventureGuideLockouts DEBUG: [19:58:50] instanceMatch="2450", [19:58:50] instanceLink="|cffff8000|Hinstancelock:Player-1597-0D7E9503:2450:15:1023|h[Sanctum of Domination]|h|r"

Meivyn commented 3 years ago

There's nothing wrong with those values, instanceMatch correctly find the instanceID, so unless you have an outdated version of the add-on, I don't see how that's possible. Does it happen only after reloading? And in all instances or specifically the Sanctum of Domination? Were you in the Sanctum when it happened or in another instance?

Saxayone commented 3 years ago

Reloading within an instance has always given me an error. Latest version. Only after reload. In all instances, this one was from Halls after completing a m+ key, char had only saved instance from SoD.

Meivyn commented 3 years ago

Go into your WoW folder then put the file in this archive in Interface\AddOns\AdventureGuideLockouts, replacing the existing one. Then show me again the report after /reload, please.

Core.zip

Saxayone commented 3 years ago

Same output on login, reload in open world and reload within instance:

[23:49:45] AdventureGuideLockouts ERROR: instanceID is nil. Please report following values at https://github.com/Meivyn/AdventureGuideLockouts/issues [23:49:45] AdventureGuideLockouts DEBUG: [23:49:45] instanceIDNumber=2450, [23:49:45] instanceLink="|cffff8000|Hinstancelock:Player-1597-0D7E9503:2450:15:1023|h[Sanctum of Domination]|h|r", [23:49:45] instanceMatch="2450", [23:49:45] instances={ [23:49:45] [33]=64, [23:49:45] [552]=254, [23:49:45] [616]=756, [23:49:45] [967]=187, [23:49:45] [553]=257, [23:49:45] [585]=249, [23:49:45] [649]=757, [23:49:45] [469]=742, [23:49:45] [1677]=900, [23:49:45] [554]=258, [23:49:45] [650]=284, [23:49:45] [1001]=311, [23:49:45] [555]=253, [23:49:45] [619]=271, [23:49:45] [938]=184, [23:49:45] [556]=252, [23:49:45] [939]=185, [23:49:45] [1492]=727, [23:49:45] [557]=250, [23:49:45] [1493]=707, [23:49:45] [940]=186, [23:49:45] [1175]=385, [23:49:45] [1004]=316, [23:49:45] [558]=247, [23:49:45] [1176]=537, [23:49:45] [2217]=1180, [23:49:45] [1753]=945, [23:49:45] [2096]=1177, [23:49:45] [560]=251, [23:49:45] [2097]=1178, [23:49:45] <skipped 111> [23:49:45] }

Meivyn commented 3 years ago

Totally non-sense, try with this.

Core.zip

Saxayone commented 3 years ago

line 118 was missing comma at the end, added that then reload within instance gave:

[00:03:10] AdventureGuideLockouts ERROR: instanceID is nil. Please report following values at https://github.com/Meivyn/AdventureGuideLockouts/issues [00:03:10] AdventureGuideLockouts DEBUG: [00:03:10] instanceIDNumber=2450, [00:03:10] instanceLink="|cffff8000|Hinstancelock:Player-1597-0D7E9503:2450:15:1023|h[Sanctum of Domination]|h|r", [00:03:10] addonVersion="1.3.8", [00:03:10] instanceMatch="2450"

For some reason was showing 1.3.8 in toc

Meivyn commented 3 years ago

addonVersion="1.3.8"

You aren't on the latest version that's why it produces this error. Latest is v.1.4.0.

Saxayone commented 3 years ago

Yeah seems to have been caused by that, curseforge was saying I had latest/1.4.0 but TOC/in-game it seems it was using 1.3.8 for some reason.

Meivyn commented 3 years ago

I'll add this version info to prevent future similar issues, thanks for reporting that.

Saxayone commented 3 years ago

Ok, definitely updated now and don't get that other issue but I did get this error when I reloaded within m+:

5x AdventureGuideLockouts\Core.lua:358: attempt to index field 'instancesLockouts' (a nil value) [string "@AdventureGuideLockouts\Core.lua"]:358: in functionUpdateInstanceStatusFrame' [string "@AdventureGuideLockouts\Core.lua"]:385: in function <AdventureGuideLockouts\Core.lua:382> string "=[C]": in function EncounterJournal_ListInstances' [string "@Blizzard_EncounterJournal\Blizzard_EncounterJournal-1.0.lua"]:2614: in functionEJ_ContentTab_Select' [string "@Blizzard_EncounterJournal\Blizzard_EncounterJournal-1.0.lua"]:300: in function `EncounterJournal_ResetDisplay' [string "@Blizzard_EncounterJournal\Blizzard_EncounterJournal-1.0.lua"]:331: in function <...zzard_EncounterJournal\Blizzard_EncounterJournal.lua:312>

string "=[C]": in function Show' [string "@FrameXML\UIParent.lua"]:2958: in functionSetUIPanel' [string "@FrameXML\UIParent.lua"]:2803: in function ShowUIPanel' [string "@FrameXML\UIParent.lua"]:2671: in function <FrameXML\UIParent.lua:2667> [string "=[C]"]: in functionresume' [string "@WeakAuras\WeakAuras-3.7.3.lua"]:1055: in function `Login' [string "@WeakAuras\WeakAuras-3.7.3.lua"]:1138: in function <WeakAuras\WeakAuras.lua:1089>

Locals: self =

{ worldBosses =
{ } RequestWarfrontInfo = defined @AdventureGuideLockouts\Core.lua:56 GetWorldBossLockout = defined @AdventureGuideLockouts\Core.lua:173 UpdateSavedInstances = defined @AdventureGuideLockouts\Core.lua:214 GetInstanceLockout = defined @AdventureGuideLockouts\Core.lua:109 instances =
{ } GetSavedWorldBossEncounterInfo = defined @AdventureGuideLockouts\Core.lua:95 statusFrames =
{ } CreateStatusFrame = defined @AdventureGuideLockouts\Core.lua:238 GetSavedWorldBossInfo = defined @AdventureGuideLockouts\Core.lua:66 UpdateInstanceStatusFrame = defined @AdventureGuideLockouts\Core.lua:349 UpdateStatusFramePosition = defined @AdventureGuideLockouts\Core.lua:306 } instanceButton = EncounterJournalInstanceSelectScrollFrameScrollChildInstanceButton1 { 0 = heroicIcon = EncounterJournalInstanceSelectScrollFrameScrollChildInstanceButton1HeroicIcon { } link = "|cff66bbff|Hjournal:0:1188:23|h[De Other Side]|h|r" range = EncounterJournalInstanceSelectScrollFrameScrollChildInstanceButton1Range { } instanceID = 1188 bgImage = EncounterJournalInstanceSelectScrollFrameScrollChildInstanceButton1bgImage { } name = EncounterJournalInstanceSelectScrollFrameScrollChildInstanceButton1Name { } tooltipText = "Bwonsamdi has kept a secret place in the Shadowlands he refers to as De Other Side. When the dead started funneling into the Maw, Bwonsamdi hid several souls in his little domain, keeping his troll followers safe. But this broke an old deal with Mueh'zala and now the ancient loa has come to harvest those souls and destroy their caretaker. Bwonsamdi will need help collecting on some of his other dealings if he is to survive this onslaught and protect the souls within." tooltipTitle = "De Other Side" } (temporary) = nil (temporary) = 1188 (temporary) = EncounterJournalInstanceSelectScrollFrameScrollChildInstanceButton1 { 0 = heroicIcon = EncounterJournalInstanceSelectScrollFrameScrollChildInstanceButton1HeroicIcon { } link = "|cff66bbff|Hjournal:0:1188:23|h[De Other Side]|h|r" range = EncounterJournalInstanceSelectScrollFrameScrollChildInstanceButton1Range { } instanceID = 1188 bgImage = EncounterJournalInstanceSelectScrollFrameScrollChildInstanceButton1bgImage { } name = EncounterJournalInstanceSelectScrollFrameScrollChildInstanceButton1Name { } tooltipText = "Bwonsamdi has kept a secret place in the Shadowlands he refers to as De Other Side. When the dead started funneling into the Maw, Bwonsamdi hid several souls in his little domain, keeping his troll followers safe. But this broke an old deal with Mueh'zala and now the ancient loa has come to harvest those souls and destroy their caretaker. Bwonsamdi will need help collecting on some of his other dealings if he is to survive this onslaught and protect the souls within." tooltipTitle = "De Other Side" } (temporary) = "EncounterJournalInstanceSelectScrollFrameScrollChildInstanceButton1" (temporary) = nil (temporary) = nil (temporary) = nil (temporary) = nil (temporary) = nil (temporary) = nil (*temporary) = "attempt to index field 'instancesLockouts' (a nil value)" pairs = defined =[C]:-1`

Meivyn commented 3 years ago

That error isn't possible unless they changed how the game is loading in 9.1.5. Does this happen outside of dungeons?

Please do me a favor and add this line

print(event)

within this block:

https://github.com/Meivyn/AdventureGuideLockouts/blob/9041406f693a35a90cc3ab8566c3debe106186d9/Core.lua#L412-L416

Then tell me if UPDATE_INSTANCE_INFO is showing anywhere in your chat before the error happens.

Saxayone commented 3 years ago

Only noticed it if I reload after a m+ key was done, think it was showing before 9.1.5 as-well but remembered to actually copy it.

Was using Bugsack so it's not showing within chat so I added a print before/after the line 358.

========== End of Scrollback ========== [21:21:19] before [21:21:19] before [21:21:19] before [21:21:19] before [21:21:19] before [21:21:20] Raider.IO: Combat being logged to Logs/WoWCombatLog [21:21:21] Loot Specialization set to: Blood [21:21:22] UPDATE_INSTANCE_INFO [21:21:22] before [21:21:22] after [21:21:22] before [21:21:22] after

Seems to line up with the 5 errors and them happening before the UPDATE_INSTANCE_INFO event,

Meivyn commented 3 years ago

In fact, looking at the stack trace, it looks like you have a WeakAuras trying to display the Adventure Guide early on. Or WeakAuras itself does it for some reason, but I doubt it. I can probably tell you which one is causing the problem if you give me the WeakAuras.lua file in the WTF\Account\YOUR_ACCOUNT\SavedVariables folder.

Trying to show a frame without the user being able to see it is a terrible practice and should be avoided.

Saxayone commented 3 years ago

https://file.io/IR1rpgLxh1QK

Thinking about it, it's probably https://wago.io/M+Timer since I believe that grabs the boss names from the encounter journal and the wa is technically still active after finishing a key.

Meivyn commented 3 years ago

Sorry for the wait, I forgot to answer, yes it's this WeakAuras looking at the file you sent. However, I'm not planning to implement a fix for this because as I said:

Trying to show a frame without the user being able to see it is a terrible practice and should be avoided.

See #13.

But if you want to fix it, replace this:

https://github.com/Meivyn/AdventureGuideLockouts/blob/9041406f693a35a90cc3ab8566c3debe106186d9/Core.lua#L358

By this:

 local instances = self.instancesLockouts and self.instancesLockouts[instanceButton.instanceID] 

But I would rather report this to the author of the WeakAuras, so they can find a sane alternative.