AdiButtonAuras

AdiButtonAuras

404k Downloads

Items buffs don't always display Auras

dafzor opened this issue · 45 comments

commented

Tested on Destruction Warlock using Purified Bindings of Immerseus http://www.wowhead.com/item=104924 no other addon beside AdibuttonsAuras and Dominus was loaded the trinket did not show a proc Aura buff even though it's included on the item database and appears to be correct.

commented

Tested it with the same warlock and the fix doesn't seem effective. Test done with no addons but AdiButtonAuras enabled.

commented

So can this bug be reopened, it's still not completely fixed.

Opening config on my hunter shows both trinkets as "Status unkown", one of the trinkets is Harmm's Talisman (lfr version and it's in the database:

trinkets[148903] = 105029 -- Vicious (Haromm's Talisman)

I'm still not sure this is related but it seems all the trinkets that don't work are fully valor upgraded, since I need a new trinket to drop to fully test it i've been unable to do so for now.

commented

Maybe the upgraded trinkets give a slightly different buff. Could you install https://github.com/Adirelle/SpellDevInfo and look at the buff ids of those trinkets please ?

commented

Indeed upgrading the trinket also upgrades the proc, used the addon however both the id of the trinket and aura seemed to be the same as the one listed in the database:

trinkets[148911] = 105109 -- Soothing Power (Thok's Acid-Grooved Tooth)

trinket: trinket proc: proc

commented

Even if the buff value (generic #15) differs from bare trinket, the spell and item ids are the same. This should work.

Edit: this actually works nicely with AdiSpellHud, which uses the same library. So I guess something is wrong specifically in AdiButtonAuras.

commented

Could you try the latest version of https://github.com/Adirelle/LibItemBuffs-1.0 please ? Some buffs can be applied by several items, e.g. the different versions of SoO trinkets have different ids but apply the same buff. LibItemBuffs-1.0 was not handling that case correctly.

commented

Still not showing anything, sorry :(

On Wed, Sep 3, 2014 at 5:01 PM, Adirelle [email protected] wrote:

Could you try the latest version of
https://github.com/Adirelle/LibItemBuffs-1.0 please ? Some buffs can be
applied by several items, e.g. the different versions of SoO trinkets have
different ids but apply the same buff. LibItemBuffs-1.0 wasn't handling
that case correctly.


Reply to this email directly or view it on GitHub
https://github.com/Adirelle/AdiButtonAuras/issues/37#issuecomment-54319796
.

commented

My apologies if I didn't make it clear but when opening the configuration
the trinkets do not show a green overlay indicating they have an aura
detected, both the trinket directly as well as a macro of said trinket.

On Fri, Sep 5, 2014 at 8:11 AM, Adirelle [email protected] wrote:

I'm running out of idea: this works fine with 2/4 trinkets and 0/4
trinkets, with different characters, including a Destruction Warlock with
the Purified Bindings of Immerseus. In addition, AdiSpellHud, which also
uses LibItemBuffs, properly show the buffs.

Just to be sure: the trinket is in an action slot, which is enabled for
ABA (e.g. green overlay in configuration mode) ?


Reply to this email directly or view it on GitHub
https://github.com/Adirelle/AdiButtonAuras/issues/37#issuecomment-54592238
.

commented

I'm running out of idea: this works fine with 2/4 trinkets and 0/4 trinkets, with different characters, including a Destruction Warlock with the Purified Bindings of Immerseus. In addition, AdiSpellHud, which also uses LibItemBuffs, properly show the buffs.

Just to be sure: the trinket is in an action slot, which is enabled for ABA (e.g. green overlay in configuration mode) ?

commented

I have improved the item support. It should now list the applicable rules for an item and one can disable them, as for spell rules. Moreover, if a spell/item is unknown, it shows what it has looked for in the tooltip. Maybe, that could help us.

commented

Tried out the latest version and still the same thing, all the SoO trinkets are unrecognised presenting themselfs like this:
sootrinket

However it does seem it's not related to item upgrades as I did find an example of upgraded item that was being recognised:
bluetrinket
timlesstrinket

But strangely "Quilen Statuette" did not seem to be on the item buff database (probably because it summons a pet), so I tried to using it and no timer was shown for it further more the auras become unknown for both trinkets in the config, reloading and trying the timeless isle trinket also showed no buff duration aura. So it seems even on the trinkets that it does recognize it still might not show an aura.

To make sure there was no interference I repeated the timeless isle trinket test with no addons loaded but adibuttonauras, same result. So in short I'm utterly stumped at what's going on...

commented

Well, if ABA does not find anything in LibItemBuffs, it uses standard API "GetItemSpell()", which sometimes returns a spell name, and looks for the buff by name. Unfortunately, GetItemSpell only returns one spell name, and only for "Use :" effect. This is why Use-trinkets are recognized.

It is like ABA fails to use LibItemBuffs. Latest ABA should add a "[LIB-minor-timestamp]" tag at the end of LibItemBuffs-based rules.

commented

I just checked this and can confirm this issue as well. I used the flex version 2/4 immerseus trinket (that's not even in LibItemBuffs, so I added trinkets[104675] = 146051 and incremented the lib's minor version to test this).

What I noticed is in reaction to this snippet:

local items = addon.Memoize(function(key)
    local id = tonumber(key:match('^item:(%d+)$'))
    return id and BuildItemRule(id, GetItemSpell(id), LibItemBuffs:GetItemBuffs(id)) or false
end)

Both parts return nil, how can this even happen? Can you test this behavior with an already-included trinket?

-- item link used: " |cffa335ee|Hitem:104675:0:0:0:0:0:0:377539456:90:0:493|h[Gel\195\164uterte Bindungen von Immerseus]|h|r"
GetItemSpell("[Geläuterte Bindungen von Immerseus]") => nil, nil
LibStub('LibItemBuffs-1.0'):GetItemBuffs(104675) => nil
commented

This looks like a LibItemBuffs bug. Which version are you using ?

commented

I was using minor version 5 but version 7 still returns nothing for my trinket.

commented

I am in the process of adding tests to my libraries, when this is possible. LibItemBuffs-1.0 is on the list.

commented

Any (good) news with latest ABA and LibItemBuffs ?

commented

Unfortunately, no change :/

Geläuterte Bindungen von Immenses       item
Status                             Unbekannt
AdiButtonAuras has no rules for this item.
Action 'key' for reference       item:104675
commented

Here the situation: I worked the last few days to add some unit tests to LibItemBuffs and AdiButtonAuras' item handling. Unit testing means to verify the behavior of minimal pieces of code, isolated from other parts, with provided inputs. E.g. I verified the behavior of LibItemBuffs independently from its actual data, and I verified AdiButtonAuras's item handling with a fake LibItemBuffs and a fake WoW API. And as you can see there and there, the tests are ok.

So now, there are two possibilities:

  1. There is an integration problem on your computer, e.g. you do not have latest AdiButtonAuras and latest LibItemBuffs (minor 8) and/or AdiButtonAuras somehow does not use the latest version of LibItemBuffs.
  2. I overlooked some corner case in my tests, but that is quite unlikely, and I specifically added a test for this issue in LibItemBuffs.

So I am a bit lost right now.

commented

But it's working on your system? If so can you note a "known good" version I can download and test again?

commented

@dafzor: Yes, it is working on my system. It failed only when I introduced a bug in one version of LibItemBuffs-1.0 minor 7 but I have found and fixed it when I added the unit tests. LibItemBuffs-1.0 minor 8 is fully tested and should work perfectly. The version of ABA pointed out by @arcadepro should work, and is working with my warlock and her Purified Bindings of Immerseus.

commented

Since minor 7, I've moved the built-in enchantment database to the database file, to allow unit testing. __UpgradeDatabase(version, trinkets, consumables, enchantments) now takes a fourh argument, which should be a table of enchantements, with spell IDs as keys and inventory slot number as values.

Also, please note that the standard archives from wowace ship with all libraries. If you tweaked an old standalone library with an arbitrarily high database version, it is quite possible that the loaded library is the revison 8 from AdiButtonAuras and that you try to feed it data designed for the old revision 7, causing that error.

So either install only the "full version" of AdiButtonAuras from wowace and remove your standalone libraries or only (fork and) checkout latest version of addons and libraries from github using git.

commented

Plopped LibItemBuffs 1.0-8 into my ABA install and only received errors.

2x ...ttonAuras\libs\LibItemBuffs-1.0\LibItemBuffs-1.0-8.lua:166: bad argument #1 to 'pairs' (table expected, got nil)
[C]: in function `pairs'
...ttonAuras\libs\LibItemBuffs-1.0\LibItemBuffs-1.0-8.lua:166: in function `?'
...\libs\10LibItemBuffs-1.0-8\LibItemBuffs-Database-1.0.lua:1240: in main chunk

Locals:
self = <table> {
 __itemBuffs = <table> {
 }
 GetDatabaseVersion = <function> defined @AdiButtonAuras\libs\LibItemBuffs-1.0\LibItemBuffs-1.0.lua:143
 slots = <table> {
 }
 GetInventorySlotList = <function> defined @AdiButtonAuras\libs\LibItemBuffs-1.0\LibItemBuffs-1.0.lua:101
 IsItemBuff = <function> defined @AdiButtonAuras\libs\LibItemBuffs-1.0\LibItemBuffs-1.0.lua:41
 GetBuffItemID = <function> defined @AdiButtonAuras\libs\LibItemBuffs-1.0\LibItemBuffs-1.0.lua:84
 GetBuffInventorySlot = <function> defined @AdiButtonAuras\libs\LibItemBuffs-1.0\LibItemBuffs-1.0.lua:49
 __UpgradeDatabase = <function> defined @AdiButtonAuras\libs\LibItemBuffs-1.0\LibItemBuffs-1.0.lua:148
 __databaseVersion = 2.0131118135322e+14
 trinkets = <table> {
 }
 GetItemBuffs = <function> defined @AdiButtonAuras\libs\LibItemBuffs-1.0\LibItemBuffs-1.0.lua:109
 consumables = <table> {
 }
}
version = 2.0131118135322e+14
trinkets = <table> {
 65024 = 46038
-- and so on ...

I then added a fallback to {} but my trinket is still not recognized and any enchant/item procs that were working in minor 7 aren't showing up in ASHUD any more :(

How about you add the library (maybe as a submodule or whatnot) to the ABA repo so it's there?

commented

Update: Updated several of your addons. Error still persists but ASHUD now again displays the item proc, ABA still does not recognize the trinket as buff source, though.

ASHUD:

  • displays trinket procs
  • no longer displays LMG

ABA:

commented

I pulled LibPlayerSpells and ABA's latest commits, grabbed LibItemBuffs (master), replaced my old minor-7 libs\LibItemBuff-1.0 with its contents and restarted WoW. That's when I encountered that error. I've not been using LIB as a standalone but it might be embedded in other addons I'm using. Either way, LibStub should make sure to load the latest version available :)

Update: I've now grabbed GitHub's standalone LibItemBuff, as well as GitHub's ABA/LibPlayerSpells (which I've already had before). The error persists.

1x LibItemBuffs-1.0\LibItemBuffs-1.0-9.lua:149: Usage: LibStub("LibItemBuffs-1.0"):__UpgradeDatabase(version, trinkets, consumables, enchantments)
[C]: in function `assert'
LibItemBuffs-1.0\LibItemBuffs-1.0-9.lua:149: in function `?'
...\libs\10LibItemBuffs-1.0-9\LibItemBuffs-Database-1.0.lua:1240: in main chunk
commented

I seriously don't want to annoy you. Just trying to get as much information as possible. I've now also tried using the package from WoWAce. However, the result is still the same:

5x ...ttonAuras\libs\LibItemBuffs-1.0\LibItemBuffs-1.0-8.lua:166: bad argument #1 to 'pairs' (table expected, got nil)
[C]: in function `pairs'
...ttonAuras\libs\LibItemBuffs-1.0\LibItemBuffs-1.0-8.lua:166: in function `?'
...\libs\10LibItemBuffs-1.0-8\LibItemBuffs-Database-1.0.lua:1240: in main chunk

Locals:
self = <table> {
 __itemBuffs = <table> {
 }
 GetDatabaseVersion = <function> defined @AdiButtonAuras\libs\LibItemBuffs-1.0\LibItemBuffs-1.0.lua:143
 slots = <table> {
 }
 GetInventorySlotList = <function> defined @AdiButtonAuras\libs\LibItemBuffs-1.0\LibItemBuffs-1.0.lua:101
 IsItemBuff = <function> defined @AdiButtonAuras\libs\LibItemBuffs-1.0\LibItemBuffs-1.0.lua:41
 GetBuffItemID = <function> defined @AdiButtonAuras\libs\LibItemBuffs-1.0\LibItemBuffs-1.0.lua:84
 GetBuffInventorySlot = <function> defined @AdiButtonAuras\libs\LibItemBuffs-1.0\LibItemBuffs-1.0.lua:49
 __UpgradeDatabase = <function> defined @AdiButtonAuras\libs\LibItemBuffs-1.0\LibItemBuffs-1.0.lua:148
 __databaseVersion = 2.0131118135322e+14
 trinkets = <table> {
 }
 GetItemBuffs = <function> defined @AdiButtonAuras\libs\LibItemBuffs-1.0\LibItemBuffs-1.0.lua:109
 consumables = <table> {
 }
}
version = 2.0131118135322e+14
trinkets = <table> {
 65024 = 46038
-- snip
commented

Here:

...\libs\10LibItemBuffs-1.0-8\LibItemBuffs-Database-1.0.lua:1240: in main chunk

On my version of LibItemBuffs-Database-1.0.lua, the calll to __UpgradeDatabase is done at line 2059, not 1240 as in your error message.

According to the file history, the version with a call to __UpgradeDatabase at line 1240 was commited November 18th, 2013. I highly suspect an old version of LibItemBuffs-Database-1.0.lua with an fake high version number is hiding somewhere in your AddOns folder.

I would search for all "LibItemBuffs-Database-1.0.lua" in your AddOns folder to be sure. IIRC, Windows has a built-in tool for that ; with Linux or the Windows git command-line, I would do a find path/to/my/wowfolder/Interface/AddOns -name 'LibItemBuffs-Database-1.0.lua'.

commented

I added a check (and the a test) to see if a spell is declared in multiple database, which should not happen. It appeared there was a typo in the Paladin database (630 instead of 633, or something like that). This is fixed in latest LPS.

commented

Tried the release arcadepro linked on my lock, it had an error were Paladin "Lay on Hands" had the "Metamorphosis: Doom" spellid causing the warlock playerspells to fail loading, after fixing that both trinkets had no rules.

Tried creating a new profile with no change, addons loaded for testing were ampere, bugsack, bugGrabber and AdibuttonAuras. So I'm has puzzled as you are as how it works for you but not me,

commented

@ckaotik. Sorry. You does not annoy me. What is annoying me is my inability to understand what is failing with ABA on your computer.

commented

I tried the following:

Virmen's Bite - Potion
Potion of Mogu Power - Potion
Potion of the Mountains - Potion
Haromm's Talisman (Flex) 4/4
Assurance of Consequence (Flex) 4/4
Thok's Tail Tip (Heroic) 4/4
Rook's Unlucky Talisman (Heroic) 4/4
Fusion-fire Core (Heroic WF) 4/4
Evil Eye of Galakras (Heroic) 4/4
Skeer's Bloodsoaked Talisman (Normal) 4/4

None of them display a border on their respective action buttons while their buff aura is active.

So then I tried old versions from Wowace. I tried releases 1.5, 1.6, & 1.7. None of these versions worked either.

I'd say probably no potion or trinket auras work. I've never really tracked these things before so never noticed.

In the config dialog:- potions are are not recognized ( no green overlay) . No buff related border is shown when potions are used. Trinkets are not recognized.

Additionally to this, racial spells do not work. Troll Berserking, Orc Bloodfury etc.

commented

That's becoming more and more confusing. :-|

commented

Ok, so I got something. Are your items in macro ? Because the WoW API does not allow to figure the item ID out of a macro, only its name, and LibItemBuffs only understand item IDs.

commented

Nope. Drag a [Potion of the Mountains] onto the action bar. Click button. "good" border is not drawn on the button.

One weird thing is that on first log in no potions or trinkets are 'recognized' by the config panel. Performing a /reload fixes this. However, they still do not show any borders when activated.

image

I also created a new troll shaman with just ABA loaded. Berserking does not work at all.

commented

Here is what I obtain with my Alchemist's Flask, on initial log in. (I updated SpellDevInfo to show data from LibItemBuffs). The flask is highlight.

Imgur

commented

Perhaps it's related how the libs are loaded? ie your machine vs. standalone release versions?

No lib itembuffs section for me, see? Have you tried disabling all your addons and just testing a released version from wowace?

image

commented

Troll Racial works now though.:relieved:

commented

I'll give it a try ^^

commented

Mistakes like that one are the worst. They're so frickin hard to find, well done!

commented

Aha! 😃

commented

Know it's already closed but just confirming it's fixed, looking at the commit I can only I've been there before too so you have my deepest simpathy

commented

Here:

...\libs\10LibItemBuffs-1.0-8\LibItemBuffs-Database-1.0.lua:1240: in main chunk
On my version of LibItemBuffs-Database-1.0.lua, the calll to __UpgradeDatabase is done at line 2059, not 1240 as in your error message.

According to the file history, the version with a call to __UpgradeDatabase at line 1240 was commited November 18th, 2013. I highly suspect an old version of LibItemBuffs-Database-1.0.lua with an fake high version number is hiding somewhere in your AddOns folder.

I would search for all "LibItemBuffs-Database-1.0.lua" in your AddOns folder to be sure. IIRC, Windows has a built-in tool for that ; with Linux or the Windows git command-line, I would do a find path/to/my/wowfolder/Interface/AddOns -name 'LibItemBuffs-Database-1.0.lua'.

Found it: AdiSpellHUD includes "LibItemBuffs-1.0", minor 5. Removing that library version fixes the error.
What's strange is that that version has any effect at all. It shouldn't since the version is so much lower. So you might need to check that incompatability at some point.

commented

ABA was not loading LibItemBuffs-Database-1.0.lua because of the error in the TOC file. So when the version from AdiSpellHUD was loaded, it was the first to provide some data to LibItemBuffs-1.0.lua, which accepted it.

commented

Well, the thing is, this happened even after you fixed the .toc file.That's why my error reports stated the minor-9 version with the minor-5 source line. So for some obscure reason, minor-5's LibItemBuffs-Database-1.0.lua (minor-5) was being executed while running LibItemBuffs-1.0.lua (minor-9).

1x LibItemBuffs-1.0\LibItemBuffs-1.0-9.lua:149: Usage: LibStub("LibItemBuffs-1.0"):__UpgradeDatabase(version, trinkets, consumables, enchantments)
[C]: in function `assert'
LibItemBuffs-1.0\LibItemBuffs-1.0-9.lua:149: in function `?'
...\libs\10LibItemBuffs-1.0-9\LibItemBuffs-Database-1.0.lua:1240: in main chunk

But I'll check again to make sure. Just on the wrong machine right now :)