[Bug] merchant frame broken when filtering is active (Cata Classic)
ZMA777 opened this issue ยท 8 comments
Hello! Just wanted to submit a bug in the add-on (installed version 13.1) for Cata Classic:
When visiting a vendor with filtering options active (e.g. hide collected recipes) and there are vendor items that would get filtered, the merchant frame becomes broken and unresponsive.
In BugSack, the following errors are shown:
4x Invalid merchant slot in SetMerchantItem
[string "@Krowi_ExtendedVendorUI/Gui/MerchantItemsContainer.lua"]:21: in function <...rowi_ExtendedVendorUI/Gui/MerchantItemsContainer.lua:18>
Locals:
button = MerchantItem20ItemButton {
CanIMogItOverlay = CIMIOverlayFrame_MerchantItem20ItemButton {
}
IconOverlay = Texture {
}
extendedCost = true
IconBorder = Texture {
}
hasItem = true
icon = MerchantItem20ItemButtonIconTexture {
}
texture = 134941
subicon = MerchantItem20ItemButtonSubIconTexture {
}
numInStock = -1
link = "|cff0070dd|Hitem:71915::::::::85:::::::::|h[Design: Reckless Lava Coral]|h|r"
Count = MerchantItem20ItemButtonCount {
}
name = "Design: Reckless Lava Coral"
showNonrefundablePrompt = false
searchOverlay = MerchantItem20ItemButtonSearchOverlay {
}
count = 1
}
addon = <table> {
Icon = <table> {
}
Options = <table> {
}
Api = <table> {
}
Gui = <table> {
}
Filters = <table> {
}
CachedItemIndices = <table> {
}
Metadata = <table> {
}
IsDragonflightRetail = false
InjectOptions = <table> {
}
Localization = <table> {
}
Plugins = <table> {
}
Libs = <table> {
}
L = <table> {
}
Util = <table> {
}
IsWrathClassic = false
}
17x Krowi_ExtendedVendorUI/Filters.lua:359: attempt to index global 'C_TooltipInfo' (a nil value)
[string "@Krowi_ExtendedVendorUI/Filters.lua"]:359: in function `IsRecipeCollected'
[string "@Krowi_ExtendedVendorUI/Filters.lua"]:157: in function `Validate'
[string "@Krowi_ExtendedVendorUI/Gui/MerchantFrame.lua"]:192: in function `GetMerchantNumItems'
[string "@Blizzard_UIPanels_Game/TBC/MerchantFrame.lua"]:191: in function <Blizzard_UIPanels_Game/TBC/MerchantFrame.lua:187>
[string "=[C]"]: ?
[string "=[C]"]: in function `MerchantFrame_UpdateMerchantInfo'
[string "@Blizzard_UIPanels_Game/TBC/MerchantFrame.lua"]:130: in function <Blizzard_UIPanels_Game/TBC/MerchantFrame.lua:123>
[string "=[C]"]: ?
[string "@Krowi_ExtendedVendorUI/Gui/MerchantItemsContainer.lua"]:99: in function `MerchantFrame_Update'
[string "@Krowi_ExtendedVendorUI/Krowi_ExtendedVendorUI.lua"]:41: in function <...ns/Krowi_ExtendedVendorUI/Krowi_ExtendedVendorUI.lua:38>
[string "=[C]"]: in function `MerchantFrame_SetFilter'
[string "@Krowi_ExtendedVendorUI/Gui/FilterButton/FilterButtonMixin.lua"]:45: in function `func'
[string "@Blizzard_SharedXML/Classic/UIDropDownMenu.lua"]:975: in function `UIDropDownMenuButton_OnClick'
[string "*UIDropDownMenuTemplates.xml:148_OnClick"]:1: in function <[string "*UIDropDownMenuTemplates.xml:148_OnClick"]:1>
Locals:
itemId = 71949
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = "attempt to index global 'C_TooltipInfo' (a nil value)"
Perfect, thank you very much. Would be great if it could get fixed for MoP classic, as the filtering functions are very useful.
I also got some feature suggestions inspired by other addons:
- Instead of hiding the filtered items completely, optionally just graying them out.
- Option to also filter suboptimal armor classes (e.g. cloth on a leather wearer etc.)
Thank you very much for the quick fix, the merchant frame for recipe vendors now works fine.
However, the frame is still broken for vendors that sell pets (e.g. Baradin's Wardens quartermaster). When visiting this vendor, I get the following error (regardless if filtering is active or not):
5x Krowi_ExtendedVendorUI/Filters.lua:184: attempt to call field 'GetPetInfoByItemID' (a nil value)
[string "@Krowi_ExtendedVendorUI/Filters.lua"]:184: in function `IsPet'
[string "@Krowi_ExtendedVendorUI/Filters.lua"]:132: in function `Validate'
[string "@Krowi_ExtendedVendorUI/Gui/MerchantFrame.lua"]:192: in function `GetMerchantNumItems'
[string "@Auctionator/Source/CraftingInfo/Main.lua"]:2: in function `CacheVendorPrices'
[string "@Auctionator/Source_Classic/Initialize/Main.lua"]:23: in function <...ddOns/Auctionator/Source_Classic/Initialize/Main.lua:17>
Locals:
itemId = 63355
classId = 15
subclassId = 2
(*temporary) = nil
(*temporary) = 63355
(*temporary) = "attempt to call field 'GetPetInfoByItemID' (a nil value)"
Is there another vendor you know that could reproduce this? I only have a lvl 59 character on cata classic so I can;t get to the npc.
Yes, for example the pet vendor just outside Stormwind. But it seems the bug has been fixed in the meantime by disabling pet filtering as well?