Skillet-Classic

Skillet-Classic

445k Downloads

Queue/Create Minor Inscription Research causes Skillet-Classic\SkilletQueue.lua:186: table index is nil

hogfather-wow opened this issue ยท 15 comments

commented

To fix this issue change
if not itemLink then
to
if not itemLink or strfind(itemLink, "%|h%[%]%|h%|r") then
in
https://github.com/b-morgan/Skillet-Classic/blob/master/SkilletData.lua#L1010

However GetTradeSkillItemLink() returns an ItemLink with missing information

This issue happens on a German Client. I don't know if this issue also happens on other clients.

commented

same issue, need to deactive skillet each time I want to do an inscription research

commented

The Blizzard method that causes the issue is GetTradeSkillItemLink(). If I run /script print(GetTradeSkillItemLink(2)) it outputs [] which is caused by an itemLink that has not all required information.

The unparsed item link looks like this: |cffffffff|Hitem:::::::::70:::::::::|h[]|h|r

commented

@hogfather-wow, thanks for the full error but I think I'm going to need the debugging data as well. Please type the following chat commands:

/skillet debuglogging on
/skillet debuglevel 2
/skillet tabledump on

This will output debugging information to the character specific saved variables file Skillet-Classic.lua. Please reproduce the issue, close Skillet-Classic, and logoff (or /reload). Attach the character specific file here. Type /skillet debuglogging off if you wish but the output is limited so just the most recent data is kept.

If you wish to see the output, change the first command to /skillet debugshow on and the output will go to both chat and the saved variables file. /skillet debugshow off will stop the chat spam but logging is still enabled. /skillet debugstatus will show the current state.

Thanks for your help. I'm not sure how long it would take me to level Inscription to 75.

commented

I don't have a character with Inscription. What level of Scribe is needed to encounter this bug? I also don't have access to a German client so I'd like to know if the enUS locale also has this bug.

Can I get a traceback of the actual error, please.

It sounds like this may be a Blizzard bug. Not sure how one reports it to Blizzard or if they even care.

BTW, instead of deactivating Skillet-Classic you can just shift-click your action bar button to open the Blizzard UI instead.

commented

I don't have a character with Inscription. What level of Scribe is needed to encounter this bug?

You need 75 Inscription to learn the research

I also don't have access to a German client so I'd like to know if the enUS locale also has this bug.

Occured on the english game version for me

It sounds like this may be a Blizzard bug. Not sure how one reports it to Blizzard or if they even care.

Kinda doubt its a Blizz bug, since I was able to do the Minor Inscription Research after I deactivated Skillet.

BTW, instead of deactivating Skillet-Classic you can just shift-click your action bar button to open the Blizzard UI instead

TIL thanks!

commented

The Blizzard API returning a malformed item link is a "bug" in my book. The fact that they don't use that item link in their UI is probably why the "bug" will never get fixed.

@jck0p, Since you have a enUS client, can you please reproduce this issue with Skillet-Classic-1.48-alpha1 and provide me with the exact error output.

Thanks!

commented

@jck0p Thanks for jumping in here.
@b-morgan here is the full error:

1x Skillet-Classic\SkilletQueue.lua:186: table index is nil
[string "@Skillet-Classic\SkilletQueue.lua"]:186: in function `QueueAppendCommand'
[string "@Skillet-Classic\SkilletQueue.lua"]:444: in function `QueueItems'
[string "*:OnClick"]:2: in function <[string "*:OnClick"]:1>

Locals:
self = <table> {
 DeleteIgnoreEntry = <function> defined @Skillet-Classic\UI\IgnoreList.lua:159
 VendorItemAvailable = <function> defined @Skillet-Classic\Inventory.lua:251
 SkillButton_NewGroup = <function> defined @Skillet-Classic\UI\MainFrame.lua:2260
 modules = <table> {
 }
 ClearQueue = <function> defined @Skillet-Classic\SkilletQueue.lua:226
 RecipeGroupInitFlatten = <function> defined @Skillet-Classic\RecipeGroups.lua:436
 MERCHANT_UPDATE = <function> defined @Skillet-Classic\UI\MerchantWindow.lua:209
 SkilletShow = <function> defined @Skillet-Classic\Skillet.lua:1100
 DisplayShoppingList = <function> defined @Skillet-Classic\UI\ShoppingList.lua:1059
 ShowQueueView = <function> defined @Skillet-Classic\UI\MainFrame.lua:3278
 SKILL_LINES_CHANGED = <function> defined @Skillet-Classic\Skillet.lua:914
 ScheduleTimer = <function> defined @ArkInventory\Externals\Ace3\AceTimer\AceTimer-3.0.lua:94
 FilterDropDown_OnShow = <function> defined @Skillet-Classic\UI\Filtering.lua:81
 castSpellName = "Inschriftenkunde"
 hideTrivialRecipes = false
 RecipeGroupSort = <function> defined @Skillet-Classic\RecipeGroups.lua:410
 EnableResize = <function> defined @Skillet-Classic\UI\Utils.lua:122
 EnchantSpellToItem = <table> {
 }
 db = <table> {
 }
 InitializeSkillLevels = <function> defined @Skillet-Classic\SkillLevelData.lua:294
 UpdateNotesWindow = <function> defined @Skillet-Classic\UI\RecipeNotes.lua:123
 SetEnabledState = <function> defined @ArkInventory\Externals\Ace3\AceAddon\AceAddon-3.0.lua:424
 SkilletShowWindow = <function> defined @Skillet-Classic\Skillet.lua:1176
 AdditionalButtonsList = <table> {
 }
 CHAT = <function> defined @Skillet-Classic\DebugAids.lua:64
 IgnoreList_OnScroll = <function> defined @Skillet-Classic\UI\IgnoreList.lua:279
 SortDropdown_OnLoad = <function> defined @Skillet-Classic\UI\Sorting.lua:547
 pluginsOptions = <table> {
 }
 UnregisterAllEvents = <function> defined @ItemRack\Libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:174
 RecipeGroupFlatten = <function> defined @Skillet-Classic\RecipeGroups.lua:457
 RecipeGroupMoveEntry = <function> defined @Skillet-Classic\RecipeGroups.lua:291
 EnablePauseButton = <function> defined @Skillet-Classic\UI\MainFrame.lua:198
 ReagentButtonSkillSelect = <function> defined @Skillet-Classic\UI\MainFrame.lua:2570
 ShowReagentDetails = <function> defined @Skillet-Classic\UI\MainFrame.lua:3169
 GetTradeSkillTools = <function> defined @Skillet-Classic\TradeskillInfo.lua:231
 bopCheck = <function> defined @Skillet-Classic\UI\MainFrame.lua:1653
 RecipeGroupClearEntries = <function> defined @Skillet-Classic\RecipeGroups.lua:128
 PrintSaved = <function> defined @Skillet-Classic\SkilletQueue.lua:241
 TABLE = <function> defined @Skillet-Classic\DebugAids.lua:312
 FixBugs = true
 Unhook = <function> defined @ArkInventory\Externals\Ace3\AceHook\AceHook-3.0.lua:418
 InventoryFilterButton_OnShow = <function> defined @Skillet-Classic\UI\MainFrame.lua:2816
 SetTradeSkillToolTip = <function> defined @Skillet-Classic\UI\MainFrame.lua:1557
 SetTradeSkill = <function> defined @Skillet-Classic\Skillet.lua:1453
 BBGPlugin = <table> {
 }
 tradeUpdate = 2
 L = <table> {
 }
 button_count = 48
 RemoveFromQueue = <function> defined @Skillet-Classic\SkilletQueue.lua:203
 UNIT_SPELLCAST_INTERRUPTED = <function> defined @Skillet-Classic\SkilletQueue.lua:534
 StealEnchantButton = <function> defined @Skillet-Classic\UI\MainFrame.lua:147
 TradeSkil
commented

Here is the log
Skillet-Classic.zip

commented

After adding my fix there is no error.
Skillet-Classic-without-error.zip

commented

I'm still a little confused but I've got an alternate patch I'd like you to try. Instead of adding your or strfind(itemLink, "%|h%[%]%|h%|r") to the if statement, please add the following code before that if statement. I believe the only thing wrong with the itemLink is that there isn't a number after the item: so that's what I'll look for and generate some debug output when we get one.

Please run the experiment again so I can see the if the debug output is what I want.

				itemLink = GetTradeSkillItemLink(i)
				if itemLink and strfind(itemLink,"item::") then
--
-- itemLink is malformed, ignore it
--
					DA.DEBUG(0,"ScanTrade: malformed itemLink, tradeID= "..tostring(tradeID)..", i= "..tostring(i)..", name= "..tostring(skillName)..", link= "..DA.PLINK(itemLink))
					itemLink = nil
				end
--
-- Enchants don't have an itemLink
-- Use the recipeID instead (for GetItemInfo)
--
				if not itemLink then
commented

@b-morgan Your Patch works perfectly. Thank you!

commented

Can you capture the debug output once again and upload it, please? I want to make sure it contains the right stuff in case I run into a similar issue in the future.

commented

Here is the logging with your patch
Skillet-Classic.zip

commented

Not sure if thats relevant, but just tested it with TSM crafting and that worked (was able to the research)

commented

Skillet-Classic-1.48-alpha2 contains the fix for this issue.