Dejunk (Sell & Destroy Junk)

Dejunk (Sell & Destroy Junk)

1M Downloads

Account bound items are matched by rules where it shouldn't be

tflo opened this issue · 4 comments

commented

Example: Warsong Spaulders

image


Dejunk wants to sell this because of 2 rules:

  • Include Below Item Level (as stated in the tooltip as the reason)
  • Include Unsuitable Equipment (I have to deactivate this one too to remove it from the junk list)

According to the rule tooltips, it shouldn't be matched by any of these 2 rules, since they both say that only soulbound gear is matched. And, of course, account bound gear is never "unsuitable", as long as I have alts with that armor type.

In addition, the item is flagged as 'cosmetic', and cosmetics are explicitly excluded from both rules (according to the tooltips).


Thanks for this otherwise excellent addon!

commented

These kinds of armor and weapon items are getting matched because their subclass is not Cosmetic or Generic, even though their tooltips imply otherwise. There are only two real solutions I can attempt for solving this problem:

  1. Scan the tooltip for the "Cosmetic" or "Account Bound" strings, which is fairly taxing
  2. Maintain a forever growing list of cosmetic item IDs that should be ignored when performing checks related to these options

First solution is the easiest from a maintenance perspective, but it would eat resources and possibly cause FPS drops. Second solution would be a pain in the ass to maintain, but it would work well.

Also, regarding unsuitable equipment, it's not possible to determine if an item is soulbound vs account bound unless the tooltip is scanned (as far as my research could prove). So, if adding in tooltip scanning turns out to be feasible, then I'd probably just add new Exclude Account Bound and Exclude Cosmetics options.

I'll try to implement something good when I can, but it may take some time.

commented

because their subclass is not Cosmetic or Generic, even though their tooltips imply otherwise

Yeah, I thought it was something like that. Damn Blizz, if they would ever do anything consistently, their item classification is a mess.

  1. Scan the tooltip for the "Cosmetic" or "Account Bound" strings, which is fairly taxing

I understand the concern. I have been using the Vendor addon for quite some time, and it does all that and more (tooltip scanning, for example).

But I'm trying Dejunk because I wanted something with a really small footprint, so I'm not in favor of that solution here either.

  1. Maintain a forever growing list of cosmetic item IDs that should be ignored when performing checks related to these options […] would be a pain in the ass to maintain

Yes, and since you'll (most likely) never catch all misclassified items, users will still have to add exclusions manually. A little less often, though.

But, at least for the ‘cosmetics’ problem, instead of relying on Blizz’s classification, you could do:

C_Item.IsCosmeticItem(113819) -- => true

At least this works with the example item from my post. I don't know if the function is always reliable. And unlike GetItemInfoInstant, it needs server data (but should still be much more economical than scanning tooltips).

But for the ‘account vs. soul bound’ problem, I couldn't find anything either.

commented

Oh wow, I never noticed C_Item.IsCosmeticItem(). Thanks for that!

commented

Seems to work fine now (at least with those Garrison cosmetics 😉). Thanks!