11-18-22, 07:26 PM | #1 |
10.0.2, GetItem() and Comparison tooltips.
Greetings,
I am attempting to update my addon to work with the new tooltip system introduced with the latest patch. I was able to get it to mostly work by replacing all of the old hookscript lines with the new TooltipDataProcessor.AddTooltipPostCall function. For the most part, this allows my code to run properly. The only issue that seems to remain is when an item comparison tooltip is on the screen, the code does not run and errors out. The error I am getting is stating that the GetItem() call is a nil value. Code:
5x Interface/AddOns/ConvertRatings/ConvertRatings.lua:296: attempt to call method 'GetItem' (a nil value) [string "@Interface/AddOns/ConvertRatings/ConvertRatings.lua"]:296: in function <Interface/AddOns/ConvertRatings/ConvertRatings.lua:228> [string "=(tail call)"]: ? [string "=[C]"]: in function `securecallfunction' [string "@Interface/SharedXML/Tooltip/TooltipDataHandler.lua"]:60: in function <Interface/SharedXML/Tooltip/TooltipDataHandler.lua:55> [string "@Interface/SharedXML/Tooltip/TooltipDataHandler.lua"]:80: in function <Interface/SharedXML/Tooltip/TooltipDataHandler.lua:76> [string "@Interface/SharedXML/Tooltip/TooltipDataHandler.lua"]:116: in function <Interface/SharedXML/Tooltip/TooltipDataHandler.lua:106> [string "=[C]"]: in function `SetAttribute' [string "@Interface/SharedXML/Tooltip/TooltipDataHandler.lua"]:141: in function <Interface/SharedXML/Tooltip/TooltipDataHandler.lua:134> [string "@Interface/SharedXML/Tooltip/TooltipDataHandler.lua"]:282: in function <Interface/SharedXML/Tooltip/TooltipDataHandler.lua:240> [string "=[C]"]: in function `securecallfunction' [string "@Interface/SharedXML/Tooltip/TooltipDataHandler.lua"]:237: in function `ProcessInfo' [string "@Interface/SharedXML/Tooltip/TooltipComparisonManager.lua"]:249: in function `SetItemTooltip' ... [string "@Interface/SharedXML/Tooltip/TooltipDataRules.lua"]:161: in function `func' [string "@Interface/SharedXML/Tooltip/TooltipDataHandler.lua"]:49: in function <Interface/SharedXML/Tooltip/TooltipDataHandler.lua:44> [string "@Interface/SharedXML/Tooltip/TooltipDataHandler.lua"]:71: in function <Interface/SharedXML/Tooltip/TooltipDataHandler.lua:67> [string "@Interface/SharedXML/Tooltip/TooltipDataHandler.lua"]:135: in function <Interface/SharedXML/Tooltip/TooltipDataHandler.lua:134> [string "@Interface/SharedXML/Tooltip/TooltipDataHandler.lua"]:282: in function <Interface/SharedXML/Tooltip/TooltipDataHandler.lua:240> [string "=[C]"]: in function `securecallfunction' [string "@Interface/SharedXML/Tooltip/TooltipDataHandler.lua"]:237: in function <Interface/SharedXML/Tooltip/TooltipDataHandler.lua:236> [string "=(tail call)"]: ? [string "@Interface/FrameXML/PaperDollFrame.lua"]:1738: in function `UpdateTooltip' [string "@Interface/FrameXML/GameTooltip.lua"]:498: in function <Interface/FrameXML/GameTooltip.lua:491> Locals: self = ShoppingTooltip1 { 0 = <userdata> SetQuestLogRewardSpell = <function> defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:444 SetQuestPartyProgress = <function> defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:444 ProcessLineData = <function> defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:303 SetPvpTalent = <function> defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:444 SetExistingSocketGem = <function> defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:444 SetHyperlink = <function> defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:444 SetUnit = <function> defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:444 SetAzeriteEssence = <function> defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:444 SetVoidDepositItem = <function> defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:444 SetVoidWithdrawalItem = <function> defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:444 SetInfoBackdropStyle = <function> defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:338 SetSocketGem = <function> defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:444 SetLootCurrency = <function> defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:444 SetSlottedKeystone = <function> defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:444 SetItemInteractionItem = <function> defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:444 SetLootItem = <function> defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:444 SetOwnedItemByID = <function> defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:444 SetQuestLogSpecialItem = <function> defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:444 SetRecipeReagentItem = <function> defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:444 SetBuybackItem = <function> defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:444 hasMoney = 1 SetWeeklyReward = <function> defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:444 SetMerchantItem = <function> defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:444 SetPvpBrawl = <function> defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:444 shownMoneyFrames = 1 BottomOverlay = Texture { } SetSpellByID = <function> defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:444 numMoneyFrames = 1 SetSocketedRelic = <function> defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:444 ProcessInfo = <function> defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:236 ProcessLines = <function> defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:293 NineSlice = Frame { } SetInventoryItem = <function> defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:444 info = <table> { } updateTooltipTimer = 0.200000 SetLootRollItem = <function> defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:444 InternalProcessInfo = <function> defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:240 SetPossession = <function> defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:444 SetUnitDebuffByAuraInstanceID = <function> defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:444 SetBagItem = <function> defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:444 TextRight1 = ShoppingTooltip1TextRight1 { } SetAction = <function> defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:444 SetLineDataAttribute = <function> defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:232 SetAchievementByID = <function> defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:444 SetInventoryItemByID = <function> defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:444 SetQuestCurrency = <function> defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:444 SetCurrencyByID = <function> defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:444 SetQuestLogCurrency = <function> defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:444 SetBagItemChild = <function> defined @ https://github.com/mynian/ConvertRat...ertRatings.lua |
|
11-18-22, 07:33 PM | #2 |
And as I posted this, someone submitted an answer on my github page.
Apparently GetItem() is no longer supported on comparison tooltips and as such in order to get the itemlink of the item in the comparison tooltip, you need to use the new C_Item.GetItemLinkByGUID function. |
|
11-20-22, 04:21 AM | #3 | |
There's also TooltipUtil.GetDisplayedItem() as the more official way to grab item info from a tooltip.
Note this doesn't handle tooltips targeting macros and the ID in .info.tooltipData for the macro type is spitting out random numbers instead of the macro slot ID.
__________________
WoWInterface AddOns
Last edited by SDPhantom : 11-20-22 at 04:24 AM. |
||
WoWInterface » Developer Discussions » Lua/XML Help » 10.0.2, GetItem() and Comparison tooltips. |
«
Previous Thread
|
Next Thread
»
|
Display Modes |
Linear Mode |
Switch to Hybrid Mode |
Switch to Threaded Mode |
|
|