GnomeWorks TradeSkill Frame

457 - 5.3 breakage in LibTradeSkillScan

What is the nature of the defect?

Error message presents itself on load

What (if anything) triggers the defect?  (happens when loading, when activating the mod, when clicking a particular button, etc)

I get this on load.

Please post any error messages associated with the defect.

Date: 2013-05-21 13:26:25
ID: 9
Error occured in: Global
Count: ∞
Message: ...terface\AddOns\GnomeWorks\Libs\LIbTradeSkillScan.lua line 910:
   bad argument #1 to 'len' (string expected, got nil)
Debug:
   [C]: len()
   ...terface\AddOns\GnomeWorks\Libs\LIbTradeSkillScan.lua:910
      ...terface\AddOns\GnomeWorks\Libs\LIbTradeSkillScan.lua:901
   ...terface\AddOns\GnomeWorks\Libs\LIbTradeSkillScan.lua:948
      ...terface\AddOns\GnomeWorks\Libs\LIbTradeSkillScan.lua:944
Locals:
(*temporary) = nil
(*temporary) = "string expected, got nil"

AddOns:
  BlizzBugsSuck, v5.2.0.2
  InspectFix, v4.4
  Swatter, v5.16.5405 (MousyMulgara)
  WowheadLooter, v50009
  Cursor, v5.0.0.1
  NPCScanOverlay, v5.0.0.3
  AchScreenshotter2, v
  ACP, v3.4.2
  AddonLoader, v2.0.1
  AdiBags, vv1.6.4
  Altoholic, v5.2.001
  AucAdvanced, v5.16.5405 (MousyMulgara)
  AucFilterBasic, v5.16.5405 (MousyMulgara)
  AucFilterOutlier, v5.16.5405.5347(5.16/embedded)
  AucMatchUndercut, v5.16.5405.5364(5.16/embedded)
  AucStatHistogram, v5.16.5405 (MousyMulgara)
  AucStatiLevel, v5.16.5405 (MousyMulgara)
  AucStatPurchased, v5.16.5405 (MousyMulgara)
  AucStatSales, v5.16.5405.5376(5.16/embedded)
  AucStatSimple, v5.16.5405 (MousyMulgara)
  AucStatStdDev, v5.16.5405 (MousyMulgara)
  AucStatTheUndermineJournal, v2.0
  AucStatWOWEcon, v5.16.5405.5323(5.16/embedded)
  AucUtilAHWindowControl, v5.16.5405.5347(5.16/embedded)
  AucUtilAppraiser, v5.16.5405.5393(5.16/embedded)
  AucUtilAskPrice, v5.16.5405.5347(5.16/embedded)
  AucUtilAutoMagic, v5.16.5405.5392(5.16/embedded)
  AucUtilCompactUI, v5.16.5405.5400(5.16/embedded)
  AucUtilEasyBuyout, v5.16.5405.5347(5.16/embedded)
  AucUtilFixAH, v5.16.5405 (MousyMulgara)
  AucUtilItemSuggest, v5.16.5405.5365(5.16/embedded)
  AucUtilPriceLevel, v5.16.5405.5365(5.16/embedded)
  AucUtilScanButton, v5.16.5405.5403(5.16/embedded)
  AucUtilScanFinish, v5.16.5405.5347(5.16/embedded)
  AucUtilScanProgress, v5.16.5405.4979(5.16/embedded)
  AucUtilScanStart, v5.16.5405.5347(5.16/embedded)
  AucUtilSearchUI, v5.16.5405.5373(5.16/embedded)
  AucUtilSimpleAuction, v5.16.5405.5388(5.16/embedded)
  AucUtilVendMarkup, v5.16.5405.4828(5.16/embedded)
  Auditor2, v4.4.2
  Babylonian, v5.1.DEV.332(/embedded)
  BeanCounter, v5.16.5405 (MousyMulgara)
  BigWigs, v4.280
  BigWigsAutoReply, v1.07
  BossLogger, v2
  BrokerAuditor, v4.4.2
  BrokerSmartBuff, v5.0a
  CalendarKeyboardFixer, v1.1.2
  CallbackHandler10, v
  cancelpetfight, vr33-release
  ChatAlerts, v5.2.0-1.3.3
  ClassMonitor, v3.5.1.2
  ClassMonitorConfigUI, v1.2.2
  Clique, vv50200-1.0.4
  Configator, v5.1.DEV.344(/embedded)
  Cromulent, v50200-1
  CurseRaidTracker2, v
  DArcArch, v1.0.4
  DArcBinds, v1.1.2
  DArcConvenience, v1.1.3
  DataStore, v5.2.001
  DataStoreAchievements, v5.2.001
  DataStoreAgenda, v5.2.001
  DataStoreAuctions, v5.2.001
  DataStoreCharacters, v5.2.001
  DataStoreContainers, v5.2.001
  DataStoreCrafts, v5.2.001
  DataStoreCurrencies, v5.2.001
  DataStoreInventory, v5.2.001
  DataStoreMails, v5.2.001
  DataStorePets, v5.2.001
  DataStoreQuests, v5.2.001
  DataStoreReputations, v5.2.001
  DataStoreSpells, v5.2.001
  DataStoreStats, v5.2.001
  DataStoreTalents, v5.2.001
  DebugLib, v5.1.DEV.337(/embedded)
  Dominos, v5.2.0
  DominosCast, v
  DominosEncounter, v
  DominosQuest, v2.1
  DominosRoll, v
  DominosXP, v
  eAlign, v
  Enchantrix, v5.16.5405 (MousyMulgara)
  EnchantrixBarker, v5.16.5405 (MousyMulgara)
  EnsidiaFails, v323
  Fortress, v1.1.5
  GatherMate2, v1.25.4
  GnomeWorks, vr222
  GuildPerksFixer, v1.3
  HandyNotes, v1.2.0
  HandyNotesGuild, v1.6
  HandyNotesLorewalkers, v1
  HandyNotesLostAndFound, v1
  HandyNotesPetTamers, v1
  Informant, v5.16.5405 (MousyMulgara)
  InlineAura, vv1.8.11
  InlineAuraDefaults, vv1.8.11
  LibBetterBlizzOptions10, v1.0
  LibExtraTip, v5.12.DEV.350(/embedded)
  LibStub, v
  LilSparkysWorkshop, vr152
  Mapster, v1.5.2
  OmniCC, v5.2.3
  oRA3, v
  Outfitter, v5.8.3
  Overachiever, v0.71
  Prat30, v3.5.5      
  Prat30HighCPUUsageModules, v
  Prat30Libraries, v
  ReforgeLite, v1.24
  Routes, vv1.4.2-8-g4b93fad
  RSA, v2.854
  RSADruid, v
  SaySapped, v2012-10-01
  SharedMedia, v3.0.5-184
  SharedMediaBlizzard, v1.6
  SharedMediaNoChinese, v4
  SilverDragon, vv3.0.6
  Skada, v1.4-11
  SkadaAbilityTracker, v1.1
  SkadaCC, v1.0
  SkadaDamage, v1.0
  SkadaDamageTaken, v1.0
  SkadaDeaths, v1.0
  SkadaDebuffs, v1.0
  SkadaDispels, v1.0
  SkadaEnemies, v1.0
  SkadaEnsidiaFails, v1.2.5
  SkadaForTanks, v3.1.8
  SkadaHealAbsorbs, v
  SkadaHealing, v1.0
  SkadaPower, v1.0
  SkadaThreat, v1.0
  Skeen, v1.1.2
  SkeenCore3, v1.10.0.4
  Skinner, vb5.16965.1
  SlideBar, v5.16.5405 (MousyMulgara)
  SmartBuff, v5.1d
  SpeedyLoad, v2.0.2
  Squeenix, v5.0.1.19
  Squire2, vv1.3.11
  StoneGuardTauntCues, v
  StrataFix, v3.4.0
  Stubby, v5.16.5405 (MousyMulgara)
  tekticles, vAlpha
  TellMeWhen, v6.2.1
  TheUndermineJournal, v2.3
  TidyPlates, v6.10.0
  TidyPlatesGraphite, v
  TidyPlatesGrey, v
  TidyPlatesNeon, v
  TidyPlatesQuatre, v
  TidyPlatesThreatPlates, v6.008
  TidyPlatesHub, v
  TidyPlatesWidgets, v
  TipHelper, v5.12.DEV.343(/embedded)
  TipTac, v13.04.17
  TipTacItemRef, v13.04.17
  TipTacTalents, v13.04.17
  TomTom, vv50200-1.0.2
  TradeForwarder, v2.20
  tullaRange, v5.2.0
  UndressButton, v5.1
  WoWPro, v2.6.0alpha3
  WoWProAchievements, v2.6.0alpha3
  WoWProDailies, v2.6.0alpha3
  WoWProLeveling, v2.6.0alpha3
  WowProProfession, v2.6.0alpha3
  WoWProWorldEvents, v2.6.0alpha3
  XPerl, v3.6.35
  XPerlArcaneBar, v
  XPerlParty, v
  XPerlPartyPet, v
  XPerlPlayer, v
  XPerlPlayerBuffs, v
  XPerlPlayerPet, v
  XPerlRaidAdmin, v
  XPerlRaidFrames, v
  XPerlRaidHelper, v
  XPerlRaidMonitor, v
  XPerlRaidPets, v
  XPerlTarget, v
  XPerlTargetTarget, v
  BlizRuntimeLib_enUS v5.3.0.50300 <us>
  (ck=146f)

User When Change
DavidTheMachine May 21, 2013 at 20:57 UTC Create

You must login to post a comment. Don't have an account? Register to get one!

  • 9 comments
  • Avatar of hughescr hughescr May 28, 2013 at 00:23 UTC - 0 likes

    @lilsparky: Go

    IMO metatable shenanigans aren't worth it. We do a lot of Lua coding at work, and I'm constantly trying to get the smarter/more clever devs to stop using fancy Lua metatable features, because it makes their code a lot less readable for other people who might need to interact with it. Better to keep things slightly less fancy but more readable/maintenable but other people.

  • Avatar of lilsparky lilsparky May 24, 2013 at 19:48 UTC - 0 likes

    @hughescr: Go

    i think it's just cooking that has this weird stuff, but i would anticipate that other skills might end up with it.

    your code really illustrates why they moved the guid to the start - it makes nice quads of tradeID, rank, maxRank, bitmap.

    that makes me think a generic parsing function could return the "basic" level stuff and then an additional table for the subskills (or nil if there are none). that's probably more useful than returning a table all the time with index 1 being the base skill info given the likely usage. if i was more hip to metatables, it'd probably be worth keeping the resuls around with the link as the metatable key.

    this also means my hacky level code for local cooking can be removed.

    i'm hopeful of some way to discover the names associated with the sub-skill id's via the game client. i suppose maybe worst case we link the subskill id's to the official "way" spells. like: id[975] = 125589 - not sure that's the right one, but tha'ts the idea.

    Last edited May 24, 2013 by lilsparky
  • Avatar of hughescr hughescr May 24, 2013 at 19:22 UTC - 0 likes

    @lilsparky: Go

    Yeah, I was taking a look. Basically, instead of one skill:current:max:bitfield it's now a series of them (at least for cooking), and the GUID moved out-of-line. I haven't looked to see if they do something similar to cooking for goblin vs gnome engineering... Needs some changes to all the parsing code, at least for cooking, it's not a few-line change to fix the regexes sadly.

    something like

    guid,skills,name =
         string.match(tradeLink,
            "|cffffd000|Htrade:([0-9a-fA-F]+)([^|]+)|h%[([^]]+)%]|h|r")
    repeat
      skill,current,max,bitmap,skills =
            string.match(skills,
               ":(%d+):(%d+):(%d+):([0-9a-zA-Z+/]+)(.*)")
       parse(bitmap)
    until not skills
    
  • Avatar of lilsparky lilsparky May 23, 2013 at 19:42 UTC - 0 likes

    from just a quick glance, it looks like the GUID is now the first field in the link and the trade id is the second field.

    looking at cooking, tho, is rather daunting... seems to have all the sub classes listed as individual fields with thier own levels and bitmaps.

    sadly, they still don't give smelting links.  no clue why they treat mining/smelting different from other trade skills.  my gut says it was an oversight based on the names of the skills ("smelting" is the name you get in your window, but your profession is "mining") but that oversight has become gospel.

    it would probably be good to push all the link parsing to a single function so it could be more easily modified.  something that would return the pertinent pieces in a defined order that won't change.

    edit: looks like the wiki updated with the cooking example.  do the cooking links show the specializations even if you only have level 1 cooking?

    Last edited May 23, 2013 by lilsparky
  • Avatar of hughescr hughescr May 22, 2013 at 18:07 UTC - 0 likes

    Looking at this briefly last night, it seemed like GetSpellLink() wasn't giving any tradeskill info in the trade link, just a "bare" link with the trade's name in it, colorized.

    This:

    http://www.wowpedia.org/TradeSkillLink

    says that you can get the link from GetTradeSkillListLink() which returns a new format of the link, but only for the "currently open" tradeskill, which sucks mightily... Hopefully I'm just wrong about the failure of GetSpellLink – it was returning , but they both seemed to not contain the detailed skill data.

    Never mind, I'm an idiot – was just printing wrong and so it was hiding the extra data because it was pretty-printing the link...

    Last edited May 22, 2013 by hughescr
  • Avatar of dreadedfork dreadedfork May 22, 2013 at 17:00 UTC - 0 likes

    I'm also getting this error, but only the first time I load. (Gnomeworks doesn't start working afterward, just doesn't give me the error message)

  • Avatar of Xanthea Xanthea May 22, 2013 at 14:15 UTC - 0 likes

    Same :(

  • Avatar of alisonnic alisonnic May 22, 2013 at 14:13 UTC - 0 likes

    I am getting this error too. Thank you for looking into it!

    The format of a TradeSkillLink has changed. Someone posted a link on the main page to this page, which shows the difference:

    http://www.wowpedia.org/TradeSkillLink

    Last edited May 22, 2013 by alisonnic
  • Avatar of hughescr hughescr May 22, 2013 at 02:49 UTC - 0 likes

    It looks like the format of the link strings for tradeskills has changed... I'll dig in; almost for sure the exact same issue in lots of other addons too.

  • 9 comments

Facts

Last updated
May 24, 2013
Reported
May 21, 2013
Status
New - Issue has not had initial review yet.
Type
Defect - A shortcoming, fault, or imperfection
Priority
Medium - Normal priority.
Votes
6

Reported by

Possible assignees