Hekili / hekili

Hekili Priority Helper for DPS and Tanks (WoW Retail)
420 stars 222 forks source link

lua error with zygor? #1979

Closed bandophahita closed 1 year ago

bandophahita commented 1 year ago

Before You Begin

WoW Version

Retail (Dragonflight)

Describe the Issue

I'm getting the following LUA error when both Hekili and Zygor guides are enabled. I dont know lua so any guidance would be appreciated. Am I correct in understanding (from the stack output) that hekili's call in AceTimer is somehow calling a function in zygor's Item-Upgrades?

How to Reproduce

  1. Enable the latest versions of Zygor (8.1.28024) and Hekili (10.0.2-1.3)
  2. Click into Zygor (as far as I can tell, do just about anything after game starts)
  3. witness lua error

Player Information (Link)

build: v10.0.2-1.3
level: 60 (60)
class: HUNTER
spec: beast_mastery

talents: alpha_predator
    animal_companion = 1/1
    aspect_of_the_beast = 1/1
    barbed_shot = 1/1
    barbed_wrath = 1/1
    beast_cleave = 2/2
    beast_master = 2/2
    bestial_wrath = 1/1
    binding_shackles = 1/1
    binding_shot = 1/1
    born_to_be_wild = 2/2
    brutal_companion = 1/1
    cobra_shot = 1/1
    counter_shot = 1/1
    hunters_avoidance = 1/1
    improved_kill_command = 2/2
    improved_kill_shot = 1/1
    keen_eyesight = 1/2
    kill_cleave = 1/1
    kill_command = 1/1
    kill_shot = 1/1
    misdirection = 1/1
    multishot = 1/1
    natural_mending = 2/2
    natures_endurance = 1/1
    pack_tactics = 1/1
    pathfinding = 1/2
    piercing_fangs = 1/1
    posthaste = 2/2
    rejuvenating_wind = 2/2
    scent_of_blood = 2/2
    sentinel_owl = 1/1
    sentinels_protection = 1/1
    stomp = 2/2
    survival_of_the_fittest = 1/1
    thrill_of_the_hunt = 3/3
    training_expert = 2/2
    war_orders = 2/2
    wild_call = 1/1

pvptalents: none

covenant: night_fae

conduits: cheetahs_vigor = 1
   marksmans_advantage = 1
   rejuvenating_wind = 1
   spirit_attunement = 1
   strength_of_the_pack = 1

soulbinds: [niya]
   grove_invigoration = 1
   niyas_tools_burrs = 1
   run_without_tiring = 1
   survivors_rally = 1
   swift_patrol = 1

sets: none

gear: catastrophe_signet = 1
    cyclonic_bracers = 1
    cyclonic_chainmail = 1
    cyclonic_cinch = 1
    cyclonic_cowl = 1
    cyclonic_gauntlets = 1
    cyclonic_kilt = 1
    cyclonic_spaulders = 1
    cyclonic_striders = 1
    firestorm_cape = 1
    initiates_shirt = 1
    matriarchs_shell_band = 1
    renowned_guild_tabard = 1
    scarab_blaster = 1
    storm_hunters_insignia = 1
    torc_of_calamities = 1
    versatile_storm_lure = 1

legendaries: none

itemIDs: 190730, 199364, 199365, 199366, 199367, 199368, 199369, 199370, 199371, 199382, 199383, 199386, 199555, 199645, 201302, 69210, 85508

settings: aoe = 3
    buffPadding = 0
    combatRefresh = 0.1
    custom1Name = Custom 1
    custom2Name = Custom 2
    cycle = false
    cycle_min = 6
    damage = true
    damageDots = false
    damageExpiration = 3
    damageOnScreen = true
    damagePets = false
    damageRange = 0
    debuffPadding = 0
    enabled = true
    enhancedRecheck = false
    gcdSync = true
    maxTime = 10
    nameplateRange = 8
    nameplates = false
    noFeignedCooldown = false
    package = Beast Mastery
    petbased = false
    potion = spectral_agility
    regularRefresh = 0.5
    throttleRefresh = false
    throttleTime = false
    avoid_bw_overlap = false
    barbed_shot_grace_period = 0.5
    check_pet_range = true

toggles: cooldowns = false 
    custom1 = false 
    custom2 = false 
    defensives = false 
    essences = true 
    interrupts = false 
    mode = automatic 
    potions = false 

keybinds: 
    arcane_shot              = 9   [01]
    aspect_of_the_cheetah    = G   [06]
    aspect_of_the_turtle     = N0  [04]
    barbed_shot              = R   [06]
    bestial_wrath            = 1   [01]
    binding_shot             = 6   [01]
    bottled_flayedwing_toxin = N7  [03]
    cobra_shot               = E   [06]
    counter_shot             = X   [06]
    disengage                = M3  [06]
    eagle_eye                = N9  [03]
    exhilaration             = C   [06]
    eyes_of_the_beast        = SF2 [04]
    feign_death              = SN/ [04]
    flare                    = H   [06]
    freezing_trap            = SF4 [04]
    hunters_mark             = F   [06]
    kill_command             = 2   [01]
    kill_shot                = 3   [01]
    mend_pet                 = 4   [01]
    misdirection             = V   [06]
    multishot                = Q   [06]
    primal_rage              = 8   [01]
    sentinel_owl             = SM3 [06]
    summon_pet               = SF6 [05]
    survival_of_the_fittest  = 5   [01]
    wing_clip                = Z   [06]

warnings: none

Error Messages (Link)

1x Interface/AddOns/ZygorGuidesViewer/Item-Upgrades.lua:1402: attempt to compare number with nil
[string "@Interface/AddOns/ZygorGuidesViewer/Item-Upgrades.lua"]:1402: in function `ShowEquipmentChangePopup'
[string "@Interface/AddOns/ZygorGuidesViewer/Item-Upgrades.lua"]:853: in function `ProcessPossibleUpgrades'
[string "@Interface/AddOns/ZygorGuidesViewer/Item-Upgrades.lua"]:823: in function `func'
[string "@Interface/AddOns/Hekili/Libs/AceTimer-3.0-17/AceTimer-3.0.lua"]:57: in function <...ace/AddOns/Hekili/Libs/AceTimer-3.0/AceTimer-3.0.lua:50>

Locals:
self = <table> {
 ResetWeaponQueue = <function> defined @Interface/AddOns/ZygorGuidesViewer/Item-Upgrades.lua:515
 BagsItems = <table> {
 }
 EquipPopup = ZygorItemPopup {
 }
 GetItemUniqueness = <function> defined @Interface/AddOns/ZygorGuidesViewer/Item-Upgrades.lua:129
 ProcessPossibleUpgrades = <function> defined @Interface/AddOns/ZygorGuidesViewer/Item-Upgrades.lua:826
 EquippedItems = <table> {
 }
 SetBadUpgrade = <function> defined @Interface/AddOns/ZygorGuidesViewer/Item-Upgrades.lua:859
 ShowEquipmentChangePopup = <function> defined @Interface/AddOns/ZygorGuidesViewer/Item-Upgrades.lua:1289
 SBICounter = 2
 Equip = <function> defined @Interface/AddOns/ZygorGuidesViewer/Item-Upgrades.lua:1420
 ProcessWeaponQueue = <function> defined @Interface/AddOns/ZygorGuidesViewer/Item-Upgrades.lua:533
 GetStatChange = <function> defined @Interface/AddOns/ZygorGuidesViewer/Item-Upgrades.lua:351
 ScoreBagsItemsTimer = <table> {
 }
 UniqueEquipped = <table> {
 }
 ShowEquipmentChangeNotification = <function> defined @Interface/AddOns/ZygorGuidesViewer/Item-Upgrades.lua:871
 ScoreEquippedItems = <function> defined @Interface/AddOns/ZygorGuidesViewer/Item-Upgrades.lua:55
 CanUseUniqueItem = <function> defined @Interface/AddOns/ZygorGuidesViewer/Item-Upgrades.lua:139
 UpgradeQueueCount = 1
 BadUpgrades = <table> {
 }
 ScoredEquippedItems = true
 IsUpgrade = <function> defined @Interface/AddOns/ZygorGuidesViewer/Item-Upgrades.lua:270
 ShowGearReport = <function> defined @Interface/AddOns/ZygorGuidesViewer/Item-Upgrades.lua:1195
 UpgradeQueue = <table> {
 }
 ScanBagsForUpgrades = <function> defined @Interface/AddOns/ZygorGuidesViewer/Item-Upgrades.lua:665
 CreatePopup = <function> defined @Interface/AddOns/ZygorGuidesViewer/Item-Upgrades.lua:922
 ScoreBagsItems = <function> defined @Interface/AddOns/ZygorGuidesViewer/Item-Upgrades.lua:698
 ScoreEquippedItemsTimer = <table> {
 }
 QueueWeapon = <function> defined @Interface/AddOns/ZygorGuidesViewer/Item-Upgrades.lua:467
}
slot = 14
n_item = <table> {
 bagslot = 4
 change = 100
 score = 0.280000
 slot = 14
 itemlink = "item:65109::::::::60:253::5:1:9053:2:9:35:28:818:::::"
 bagnum = 4
}
new_item = <table> {
 stats = <table> {
 }
 validated = true
 class = 4
 itemlinkfull = "|cffa335ee|Hitem:65109::::::::60:253::5:1:9053:2:9:35:28:818:::::|h[Vial of Stolen Memories]|h|r"
 validstatus = "ok"
 itemlink = "item:65109::::::::60:253::5:1:9053:2:9:35:28:818:::::"
 quality = 4
 valid = true
 type = "INVTYPE_TRINKET"
 slot_2 = 14
 minlevel = 35
 score = 0.280000
 bagslot = 4
 bagnum = 4
 slot = 13
 subclass = 0
 twohander = false
 itemlvl = 114
 itemid = 65109
 texture = 443371
}
c_item = <table> {
 type = "INVTYPE_TRINKET"
 score = 0
 itemid = 199645
 itemlink = "item:199645::::::::60:253::26:2:6652:8936:2:9:60:28:2172:::::"
 quality = 3
}
current_item = <table> {
 stats = <table> {
 }
 score = 0
 class = 4
 itemlinkfull = "|cff0070dd|Hitem:199645::::::::60:253::26:2:6652:8936:2:9:60:28:2172:::::|h[Storm Hunter's Insignia]|h|r"
 validstatus = "ok"
 itemlink = "item:199645::::::::60:253::26:2:6652:8936:2:9:60:28:2172:::::"
 quality = 3
 valid = true
 type = "INVTYPE_TRINKET"
 slot_2 = 14
 minlevel = 60
 validated = true
 slot = 13
 subclass = 0
 twohander = false
 itemid = 199645
 texture = 133431
}
pair_item = nil
F = ZygorItemPopup {
 0 = <userdata>
 AnchorTo = <function> defined @Interface/AddOns/ZygorGuidesViewer/Item-Upgrades.lua:1187
 SetText = <function> defined @Interface/AddOns/ZygorGuidesViewer/StaticPopups.lua:127
 OnBackdropLoaded = <function> defined @Interface/SharedXML/Backdrop.lua:152
 GetBackdropColor = <function> defined @Interface/SharedXML/Backdrop.lua:390
 OnAccept = <function> defined @Interface/AddOns/ZygorGuidesViewer/Item-Upgrades.lua:1093
 logo = Texture {
 }
 logobackground = Frame {
 }
 RightEdge = Texture {
 }
 debug = <function> defined @Interface/AddOns/ZygorGuidesViewer/Item-Upgrades.lua:1177
 ClearBackdrop = <function> defined @Interface/SharedXML/Backdrop.lua:282
 Show = <function> defined @Interface/AddOns/ZygorGuidesViewer/StaticPopups.lua:134
 OnEscape = <fun

Additional Information

The error appears to cut off at the bottom. I'm guessing there is a length limit?
I honestly don't know if this is a bug per se with either add-on, but rather some sort of integration issue. I wish I knew lua or had some debugger that could provide insight as to what's happening. I'm hoping you can point me in the right direction to troubleshoot this one.

Contact Information

bando#9351

bandophahita commented 1 year ago

It would appear there are 3 copies of AceTimer, each in a libs folder under hekili, zygor, and datastore.

Normally I would assume they are isolated within namespaces under each addon. Does lua load 3 different copies of acetimer or does only the first one load and this is perhaps an order of events issue?

Hekili commented 1 year ago

Ace3 includes version control of timers and so all end up using the latest version. In this case, it seems my addon was built most recently and has the newest Ace3 / AceTimer included.

You could try installing Ace3 directly and seeing if you get Zygor errors without my addon loaded.

Alternatively, it's possible that when my addon loads item data, Zygor isn't sanity checking GET_ITEM_INFO_RECEIVED events. That's been an issue with other addons before.

bandophahita commented 1 year ago

Including cross post link to the zygor forum for clarity - https://zygorguides.com/forum/forum/technical-support/zygor-guide-viewer/190316-lua-errors-possible-integration-issue-with-hekili#post190322

clielausis commented 1 year ago

Zygor was just updated and I'm not getting errors from Zygor/Hekili now. Other stuff, yes. I might have a Titan Panel/Hekili issue, lol.

bandophahita commented 1 year ago

Zygor was just updated and I'm not getting errors from Zygor/Hekili now. Other stuff, yes. I might have a Titan Panel/Hekili issue, lol.

I think you might be right. I updated and I'm not seeing the errors between these two addons now.