arkayenro / arkinventory

A World of Warcraft Inventory mod for Retail, Burning Crusade, and Classic
102 stars 14 forks source link

[BUG] Vendor menus being blocked while in combat #1842

Open Algelius opened 7 months ago

Algelius commented 7 months ago

What version number you are using? 3.10.19-alpha-2

What game client are you playing? Retail, Wrath, Classic / Live, PTR, Beta Classic SoD

What language is the game client set to? English

Describe the bug While player character is in combat and you click a vendor to open their window, it will say "Interface action failed because of an AddOn" and I have tried with only AI and without it to ensure it's AI causing the issue. Was present in the non alpha version as well. EDIT: This manifests in the vendor menu not opening, but things like auto repair/auto sell seems to work as if the vendor menu opened.

To Reproduce Be in combat. Click any vendor.

Screenshots

Additional context

arkayenro commented 7 months ago

can you post the error dump? i dont have migh level characters in classic (i dont play it) so its a bit hard to test

Algelius commented 7 months ago

Not sure where to get that from. Though if you want a reliable method to test it, a fresh human character will spawn next to a vendor in elwynn forest with enemies nearby. I'll get the error dump too though, if you could help me find it!

arkayenro commented 7 months ago

install bugsack and buggrabber

Algelius commented 7 months ago

the error doesn't show up with them for some reason. that's why it took me a while to figure out that it was arkinventory causing it. the only indicator that something is wrong, outside of that the vendor window doesn't open, is that I get an "Interface action failed because of an AddOn" message in my chat.

arkayenro commented 7 months ago

open the config and under general > actions > vendor - make sure combat is not enabled/ticked

having that enabled is about the only reason it would try to sell stuff to a vendor while you are in combat and possibly cause an issue

Algelius commented 7 months ago

Sorry, I was mistaken. the selling is actually a different addon. so that option hasn't been turned on at all in arkinventory. so the selling that happens is as if the vendor window was open for other addons, but it's not visible. and if AI is the only addon turned on, the vendor menu will not show up. if it is the only one turned off, the vendor menu will show up.

arkayenro commented 7 months ago

its in retail as well.

the problem is that i need to secure hook (take over completely) the PlayerInteractionFrameManager for show and hide functions so that i can stop the default bag, bank, vault frames from opening and replace them with mine.

the issue is that function is used for every interaction frame, vendors included, and while i dont need to do anything i do need to open that frame via my own code and as youre in combat that appears to be protected and fails with an addon blocked error.

yes, it impacts the bank and vault as well if you managed to be in combat but thats pretty rare so no one has noticed so far, or at least not reported it.

i cant fix this, i need to control it so i am able to stop the default frames im replacing dont show up but i also cant open them in combat.

blizzard would have to unprotect that function during combat.

Algelius commented 7 months ago

and it's not possible to let the default UI do its thing specifically when in combat? or at least have an option for default frames to not get blocked if in combat. (I assume not everyone would want it to act that way, but it's very important for checking vendors with rare items while in an area where you will aggro stuff if solo. currently I have to turn AI off when doing this)

arkayenro commented 7 months ago

no. i have to replace that function when arkinventory loads and once that happens theres no way to get around that hook when youre in combat.

ie i'd need a way to hook and unhook it every time you entered/left combat, which im not sure is possible, but if ti was then that would cause issues with other mods that hooked that same function.