ItemVersion

ItemVersion

216k Downloads

BugSack on "Dreamsurge Cradle"

brainmelts opened this issue · 3 comments

commented

What is your client flavor? (Retail, Wrath, or Classic)

Retail

What version of ItemVersion do you have installed?

2024.18.0

What platform are you playing on? (Windows, Mac, or Linux)

Windows

What is the bug? And, what should happen instead?

Mouseover on item Dreamsurge Cradle throws BugSack error, everytime, as follows:

333x ItemVersion/Tooltip.lua:54: attempt to index local 'expac' (a nil value)
[string "@ItemVersion/Tooltip.lua"]:54: in function `GenerateLine'
[string "@ItemVersion/Tooltip.lua"]:116: in function <ItemVersion/Tooltip.lua:83>
[string "=(tail call)"]: ?
[string "=[C]"]: in function `securecallfunction'
[string "@SharedXML/Tooltip/TooltipDataHandler.lua"]:162: in function <SharedXML/Tooltip/TooltipDataHandler.lua:157>
[string "@SharedXML/Tooltip/TooltipDataHandler.lua"]:182: in function <SharedXML/Tooltip/TooltipDataHandler.lua:178>
[string "@SharedXML/Tooltip/TooltipDataHandler.lua"]:218: in function <SharedXML/Tooltip/TooltipDataHandler.lua:208>
[string "=[C]"]: in function `SetAttribute'
[string "@SharedXML/Tooltip/TooltipDataHandler.lua"]:243: in function <SharedXML/Tooltip/TooltipDataHandler.lua:236>
[string "@SharedXML/Tooltip/TooltipDataHandler.lua"]:389: in function <SharedXML/Tooltip/TooltipDataHandler.lua:339>
[string "=[C]"]: in function `securecallfunction'
[string "@SharedXML/Tooltip/TooltipDataHandler.lua"]:336: in function <SharedXML/Tooltip/TooltipDataHandler.lua:335>
[string "=(tail call)"]: ?
[string "=[C]"]: ?
[string "=[C]"]: in function `SetQuestItem'
[string "*Frame.xml:26_OnEnter"]:3: in function <[string "*Frame.xml:26_OnEnter"]:1>

Locals:
self = <table> {
 GetOnTooltipSetItemFn = <function> defined @ItemVersion/Tooltip.lua:82
 GenerateLineForItemId = <function> defined @ItemVersion/Tooltip.lua:77
 ConfiguredModifiersAreDown = <function> defined @ItemVersion/Tooltip.lua:24
 db = <table> {
 }
 GenerateLine = <function> defined @ItemVersion/Tooltip.lua:41
 HookTooltipCall = <function> defined @ItemVersion/Tooltip.lua:123
}
version = <table> {
 minor = 0
 patch = 0
 major = 11
 build = 54361
}
line = "|cffffffffAdded in|r "
expacName = nil
expac = nil
(*temporary) = true
(*temporary) = 11
(*temporary) = nil
(*temporary) = <table> {
 GetExpacIdFromCanonName = <function> defined @ItemVersion/Expac.lua:24
 GetExpacFromMajor = <function> defined @ItemVersion/Expac.lua:20
}
(*temporary) = 11
(*temporary) = "attempt to index local 'expac' (a nil value)"
WrapTextInColor = <function> defined @ItemVersion/Tooltip.lua:19
L = <table> {
 Show prefix = "Show prefix"
 Added in = "Added in"
 Cata = "Cata"
 WotLK = "WotLK"
 SHIFT = "SHIFT"
 CMD = "CMD"
 Prefix color = "Prefix color"
 CONTROL = "CTRL"
 TBC = "TBC"
 The color of the prefix = "The color of the prefix"
 Show version = "Show version"
 usage = "usage"
 Prefix the tooltip line with a label = "Prefix the tooltip line with a label"
 Platform = "Platform"
 ALT = "ALT"
 Available Subcommands = "Available Subcommands"
 Classic = "Classic"
 Unknown = "Unknown"
 Preview = "Preview"
 MoP = "MoP"
 Dragonflight = "Dragonflight"
 Legion = "Legion"
 Warlords of Draenor = "Warlords of Draenor"
 Cataclysm = "Cataclysm"
 Including community updates changes some items' version/expansion to the one that players expect. For example, the herb [Marrowroot] was actually added towards the end of BfA in pre-release development, but was only obtainable in SL. With this option turned on, ItemVersion would report SL in this case, instead of BfA.

Because the updates are non-canonical, the version number will be a placeholder one: the major part will be that of the new expansion, but the lesser parts will be zeroed.

If you encounter an item that is not fixed by these updates, please consider reporting it to the project page. = "Including community updates changes some items' version/expansion to the one that players expect. For example, the herb [Marrowroot] was actually added towards the end of BfA in pre-release development, but was only obtainable in SL. With this option turned on, ItemVersion would report SL in this case, instead of BfA.

Because the updates are non-canonical, the version number will be a placeholder one: the majo Use short expansion names = "Use short expansion names"
 Shows this help = "Shows this help"
 Show the version in which the item was added = "Show the version in which the item was added"
 Battle for Azeroth = "Battle for Azeroth"
 DF = "DF"
 Show the tooltip line even when the item is not in the database = "Show the tooltip line even when the item is not in the database"
 Mists of Pandaria = "Mists of Pandaria"
 Wrath of the Lich King = "Wrath of the Lich King"
 The Burning Crusade = "The Burning Crusade"
 Expansion = "Expansion"
 The color of the version = "The color of the version"
 Expansion color = "Expansion color"
 Issue URL = "Issue URL"
 %s Issue Information = "%s Issue Information"
 ItemVersion version = "ItemVersion version"
 Shadowlands = "Shadowlands"
 Include community updates = "Include community updates"
 Opens a window with information to assist in creating an issue = "Opens a window with information to assist in creating an issue"
 Displays the version of ItemVersion = "Displays the version of ItemVersion"
 Opens the configuration window = "Opens the configuration window"
 BfA = "BfA"
 Copy and paste this data when making a new issue for ItemVersion. = "Copy and paste this data when making a new issue for ItemVersion."
 Version color = "Version color"
 Modifier keys = "Modifier keys"
 Tooltip = "Tooltip"
 subcommand = "subcommand"
 Abbreviate the item's expa

Steps To Reproduce

  1. Open inventory
  2. Hover over item Dreamsurge Cradle
  3. Get tooltip error in BugSack

Additional context

No response

commented

Looking into this. Thanks for the report!

commented

Ah, okay, I think I see:

When I first got the data for this item, it was reported to be added in WoW version 11.0.0. The first number is what's important in this case -- it refers to the expansion. For example, 10 is DF, 9 is SL, 8 is BfA, and so on.

But, we don't have a released expansion 11. That'd be the upcoming "The War Within". So when the tooltip hook went to look for the name of expansion 11, it didn't find it, and produced the bug that you are seeing.

Later, as you see on Wowhead, it got revised to 10.2.6. This is just conjecture, but this suggests the dev team initially planned Plunderstorm (which includes Dreamsurge Cradle) to be released in The War Within, but then pushed it early into Dragonflight. Interesting!

If you're curious, see #24 for another instance of where the dev team released items in a build that didn't make sense.

Here's what I'm going to do:

  • Rebuild the item database for accuracy. Usually, I only add unseen items to the database and stop, because it doesn't make sense to amend things we've already seen. But, in this case, we need the corrections.
  • As a preparation and precaution, I will add a "The War Within" expansion entry to the expansions table. This will set us up for the next expansion when it releases (I needed to do regardless of this bug), and prevent errors in case Blizzard does this again.

I should be able to get to this today. I will release a new version to CurseForge, and I'll let you know about it.

commented

All done, @brainmelts.

image

The fixes are in the latest version 2024.18.4. Curseforge.

I'm going to close this issue, but if you encounter any further problems, don't hesitate to open another issue. Thanks again for reporting!