5.3 breakage in LibTradeSkillScan #457


  • New
  • Defect
Open
Assigned to _ForgeUser280725
  • DArcMattr created this issue May 21, 2013

    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)

  • DArcMattr added the tags New Defect May 21, 2013
  • craigcurse posted a comment May 21, 2013

    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.

  • alisonnic posted a comment May 22, 2013

    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


    Edited May 22, 2013
  • bestiata posted a comment May 22, 2013

    Same :(

  • _ForgeUser2987420 posted a comment May 22, 2013

    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)

  • craigcurse posted a comment May 22, 2013

    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...


    Edited May 22, 2013
  • _ForgeUser280725 posted a comment May 23, 2013

    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?


    Edited May 23, 2013
  • craigcurse posted a comment May 24, 2013

    @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
    

    Edited May 24, 2013
  • _ForgeUser280725 posted a comment May 24, 2013

    @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.


    Edited May 24, 2013
  • craigcurse posted a comment May 27, 2013

    @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.


To post a comment, please login or register a new account.