There is two small bugs that I found using the AMR addon and “identical” items.
First problem, for Windwalker I have two of the same 1H weapons with different ILevels. Almost every time switching from say Mistwalker to Windwalker using the addon it will equip the 1H weapons in the wrong slot (high ilevel in off-hand, low ilevel in main-hand). If I press “Activate Wind Spec and Equip Gear” one more time it frequently gets it right on the 2nd try (but not always).
Second problem, once again caused by items with the same name. I have two identical azerite shoulder pieces but with different traits. Switching specs using the addon will once again mix up the items and equip the wrong one. In this case it just always picks the wrong one (probabily whichever one comes first in the bags).
In both cases the game itself can tell which shoulders are which, when using Equipment Manager sets it will always equip the correct gear. On the website, everything is showing up fine and it knows I have 2 identical items (because it suggests different traits for each spec). Is there anything you could do to get this to work in the addon as well?
When swapping gear, it does check the azerite traits… we put in some tweaks in the last addon update to improve on that – in theory it searches for the best-matching azerite item (where the chosen traits on the item best match the desired traits in the optimized setup). I’ll see if I can create a test case where it doesn’t work as expected. Do you have the desired traits already chosen on both items? Or do you still have to choose the traits on one of the items?
For the weapons… it should try to match the bonus IDs… I’ll see if I can get two of the same weapon on one of my characters and try it out.
The super annoying thing about the equipment manager: we can’t create an equipment manager set until we equip all of the desired gear in each slot… so no matter what, we have to write our own code to reliably equip a set of gear. But the in-game addon API is really terrible for searching and swapping items. (Also, the in-game addon API for getting the item level of an item returns the wrong value a lot of the time.)
Something else I found weird, the item which has Fury of Xuen, shows up in the “shopping list” as not having Fury of Xuen, could that be because the spellId is wrong or something? And that could be the reason why these shoulders are not equipped. For example, if it ends up just falling back to the next best one which would end up being the Brewmaster shoulders because they both have the same traits for rings 2-4?
Another weird behavior I found is with the “Equipped” flag of items. It looks like when the 3rd ring power is not specified by BiS on the website (because it doesn’t have any impact on DPS) the item will never show as fully equipped in the addon. That is maybe another reason the wrong shoulders are picked.
Looking around the code the 1st thing I notice is when it does scanBagForItem it decodes the itemlink for the bag item using Amr.ParseItemLink the resulting item has no azerite traits (bagItem.azerite is not set). I don’t know if there is another check later on that actually compares the items correctly.