Sellorio / mega-macro

A World of Warcraft AddOn that replaces the built in macro functionality allowing more and bigger macros.
17 stars 13 forks source link

MegaMacro has been blocked from an action only available to the Blizzard UI. #167

Open durandal42 opened 1 year ago

durandal42 commented 1 year ago

... You can disable this addon and reload the UI. [Disable][Ignore]

Bugsack captured:

1x [ADDON_ACTION_BLOCKED] AddOn 'MegaMacro' tried to call the protected function 'MultiBarBottomLeftButton9:SetAttribute()'.
[string "@Interface/AddOns/!BugGrabber/BugGrabber.lua"]:480: in function <Interface/AddOns/!BugGrabber/BugGrabber.lua:480>
[string "=[C]"]: in function `SetAttribute'
[string "@Interface/FrameXML/ActionButton.lua"]:355: in function `UpdatePressAndHoldAction'
[string "@Interface/FrameXML/ActionButton.lua"]:415: in function `Update'
[string "@Interface/FrameXML/ActionButton.lua"]:367: in function `UpdateAction'
[string "@Interface/FrameXML/ActionButton.lua"]:1185: in function <Interface/FrameXML/ActionButton.lua:1182>
[string "=[C]"]: ?
durandal42 commented 1 year ago

I've gotten this to happen a few more times, and it's always when using a hotkey (Z) to activate my LiteMount macro ("/click LM_B1 LeftButton"). If I left-click that macro on my bar, it works as expected. Other macros seem unaffected, regardless of whether I click them or activate them via a hotkey.

frognose commented 1 year ago

Also seeing this bug. Seems to reproduce quite reliably when I go through a loading screen - usually seen going from Oribos to Gorgrond or Karazhan. After the loading screen, I can't use any hotkeys that use a modifier key (CTRL, ALT, SHIFT) without prompting this error until a /reload.

MrWizard516 commented 1 year ago

I am having the exact same issue. When I enter an instance I have to reload UI before I can fight and the same thing when I exit the instance.

jquick commented 1 year ago

I am getting this also, randomly. The bugsack:

1x [ADDON_ACTION_BLOCKED] AddOn 'MegaMacro' tried to call the protected function 'SpellFlyout:Hide()'.
[string "@Interface/AddOns/!BugGrabber/BugGrabber.lua"]:480: in function <Interface/AddOns/!BugGrabber/BugGrabber.lua:480>
[string "=[C]"]: in function `Hide'
[string "@Interface/FrameXML/SecureTemplates.lua"]:363: in function `handler'
[string "@Interface/FrameXML/SecureTemplates.lua"]:690: in function <Interface/FrameXML/SecureTemplates.lua:672>
[string "@Interface/FrameXML/SecureTemplates.lua"]:704: in function <Interface/FrameXML/SecureTemplates.lua:697>
[string "@Interface/FrameXML/SecureTemplates.lua"]:746: in function `SecureActionButton_OnClick'
[string "@Interface/FrameXML/ActionButton.lua"]:109: in function `TryUseActionButton'
[string "@Interface/FrameXML/ActionButton.lua"]:144: in function `ActionButtonDown'
[string "ACTIONBUTTON10"]:2: in function <[string "ACTIONBUTTON10"]:1>
andgra commented 1 year ago

@aurelion314 hi, sorry for pinging you directly, but maybe you can also fix these issues? :) It would be super nice if you can. I had to create /reload macro and press it after almost every loading screen to enable my macro hotkeys

aurelion314 commented 1 year ago

Hey @andgra. Unfortunately I can't reproduce the problem. I did find a post by blizzard saying that spell flyouts are a known issue and their devs are looking into it. If you use those, you could try rebinding them or removing them from macros as a temporary fix? Bliz Post

Another thought I had is that if you where in combat when the new area loads, then certain UI actions would be blocked and that could cause issues. Are you able to test if that's the case?

durandal42 commented 1 year ago

This happens to me on characters without spell flyouts.

It's always immediately after a loading screen, regardless of whether I was in combat at the time.

andgra commented 1 year ago

@aurelion314 it actually started to happen when I disabled bartender4 and switched to new blizz ui (and bartender is bugged atm with dynamic bars like the cannon in grimrail deport second boss)

Maybe that's because you can't reproduce the bug?

It also happens without combat and with simple macroses like /use 13

durandal42 commented 1 year ago

I also see this happening with the stock blizzard bars, not addon-managed bars.

aurelion314 commented 1 year ago

Sorry I just can't seem to make it happen. Tried disabling bartender, using modifier macros, being in or out of combat, going to the specified places like Karazhan. I don't know why it won't happen for me.

@durandal42, your bug trace shows it happens on "MultiBarBottomLeftButton9:SetAttribute()". Are you able to check what macro that button is? Maybe there is something about whatever you have at bottom left button 9 that is causing it. It could also just be the first one it tries to initialize, so no guarantee that's the problem, but since I can't get it to happen myself I don't know what else to look at.

durandal42 commented 1 year ago

I haven't seen it happen again today, but I've only been juggling mission tables.

I notice that "UpdatePressAndHoldAction" was also in my original bug trace; maybe it's correlated with having "Press and Hold Casting" turned on?

andgra commented 1 year ago

Hmm strangely I haven't seen it today too. Maybe blizz fixed something in their UI?

erjabdc commented 1 year ago

I've noticed it happening less often today, but it's still happening to me quite reliably. My most recent test, right now, was with only MegaMacro enabled. I took the kyrian portal to Oribos > Stormwind > Oribos and the last portal broke it. I've observed that this behavior only seems to happen when keypressing, but not when clicking on the button on the bars. Below are two macros I've used to test and both have this issue (all of them do, really):

/focus [@mouseover]

`

showtooltip

/cast [mod:shift,@focus,exists,help,nodead][mod:shift,@party1,exists,nodead][mod:ctrl,@party2,exists,nodead][mod:alt,@player][@mouseover,help,nodead][help,nodead][] Flash of Light `

Client is in English, version 10.0.0.46455. I'm happy to run any tests or provide any more info I can :)

Dannez83 commented 1 year ago

It's a really odd bug. I can only replicate it on my druid and only when I shift forms in combat in an instance. Doesn't happen in the world for me. Only affects keybinds, not clicks, and only affects macros on action bar 1. I moved my macros to another bar and emptied action bar 1, had zero issues. I can't currently replicate it on any of my other classes, so I'm not sure how or why people are experiencing it in other scenarios to the one above. Maybe if one of you guys could try moving your macros and keybinds to another bar and see if you run into the same issue.

@Sellorio, could you point me towards where in the code handles form/stealth bars, or action bar reloads? It's doing something there that is against the rules

YetAnotherDevWannabe commented 1 year ago

I can replicate it 100% of the time on all my characters with Engineering by using any wormhole generator that creates a teleport list (Northrend, Draenor and SL ones for example). This makes the macros bug 100% of the time. If you want to test, the SL engineering wormhole is usable at 1/100, just need to buy it from AH.

1x [ADDON_ACTION_FORBIDDEN] AddOn 'TargetCastbar' tried to call the protected function 'UNKNOWN()'.
[string "@Interface/AddOns/!BugGrabber/BugGrabber.lua"]:480: in function <Interface/AddOns/!BugGrabber/BugGrabber.lua:480>
[string "=[C]"]: ?
[string "=[C]"]: in function `UseAction'
[string "@Interface/FrameXML/SecureTemplates.lua"]:364: in function `handler'
[string "@Interface/FrameXML/SecureTemplates.lua"]:690: in function <Interface/FrameXML/SecureTemplates.lua:672>
[string "@Interface/FrameXML/SecureTemplates.lua"]:704: in function <Interface/FrameXML/SecureTemplates.lua:697>
[string "@Interface/FrameXML/SecureTemplates.lua"]:746: in function `SecureActionButton_OnClick'
[string "@Interface/FrameXML/ActionButton.lua"]:109: in function `TryUseActionButton'
[string "@Interface/FrameXML/MultiActionBars.lua"]:14: in function `MultiActionButtonDown'
[string "MULTIACTIONBAR3BUTTON11"]:2: in function <[string "MULTIACTIONBAR3BUTTON11"]:1>
Dannez83 commented 1 year ago

I can replicate it 100% of the time on all my characters with Engineering by using any wormhole generator that creates a teleport list (Northrend, Draenor and SL ones for example). This makes the macros bug 100% of the time. If you want to test, the SL engineering wormhole is usable at 1/100, just need to buy it from AH.

1x [ADDON_ACTION_FORBIDDEN] AddOn 'TargetCastbar' tried to call the protected function 'UNKNOWN()'.
[string "@Interface/AddOns/!BugGrabber/BugGrabber.lua"]:480: in function <Interface/AddOns/!BugGrabber/BugGrabber.lua:480>
[string "=[C]"]: ?
[string "=[C]"]: in function `UseAction'
[string "@Interface/FrameXML/SecureTemplates.lua"]:364: in function `handler'
[string "@Interface/FrameXML/SecureTemplates.lua"]:690: in function <Interface/FrameXML/SecureTemplates.lua:672>
[string "@Interface/FrameXML/SecureTemplates.lua"]:704: in function <Interface/FrameXML/SecureTemplates.lua:697>
[string "@Interface/FrameXML/SecureTemplates.lua"]:746: in function `SecureActionButton_OnClick'
[string "@Interface/FrameXML/ActionButton.lua"]:109: in function `TryUseActionButton'
[string "@Interface/FrameXML/MultiActionBars.lua"]:14: in function `MultiActionButtonDown'
[string "MULTIACTIONBAR3BUTTON11"]:2: in function <[string "MULTIACTIONBAR3BUTTON11"]:1>

This is showing a different addon error? AddOn 'TargetCastbar'

Can you try with that addon turned off?

Dannez83 commented 1 year ago

see this one for update https://github.com/Sellorio/mega-macro/issues/167#issuecomment-1310868996

YetAnotherDevWannabe commented 1 year ago

Perfect ! Thanks man :)

durandal42 commented 1 year ago

I've only been using the above workaround for a few minutes, so I can't yet say whether it's fixed the original problem.

Meanwhile, it seems to have broken the icons (but not the tooltips) for some of my macros.

For example, this macro shows the correct tooltip and icon:

/cast [@mouseover,help][@target,help] Flash of Light; [@target,harm,nodead] Judgment; [] Flash of Light

... but this one only shows the correct tooltip, and has a big red question mark for the icon:

/cast [button:1] Eternal Traveler's Hearthstone
/stopmacro [button:1]
/cast Revive Battle Pets
/camp
Dannez83 commented 1 year ago

I've only been using the above workaround for a few minutes, so I can't yet say whether it's fixed the original problem.

Meanwhile, it seems to have broken the icons (but not the tooltips) for some of my macros.

For example, this macro shows the correct tooltip and icon:

/cast [@mouseover,help][@target,help] Flash of Light; [@target,harm,nodead] Judgment; [] Flash of Light

... but this one only shows the correct tooltip, and has a big red question mark for the icon:

/cast [button:1] Eternal Traveler's Hearthstone
/stopmacro [button:1]
/cast Revive Battle Pets
/camp

I don't have that item but I tried your macro with a the dalaran hearthstone in it's place and the icon showed fine. Could you double check with a different item in the macro?

buckmaidt commented 1 year ago

@Dannez83 Thanks this is working great so far. Have not found any issues with icons or tooltips using default blizzhud

durandal42 commented 1 year ago

I don't have that item but I tried your macro with a the dalaran hearthstone in it's place and the icon showed fine. Could you double check with a different item in the macro?

Garrison Hearthstone works just fine, but Eternal Traveler's Hearthstone does not.

Important distinction: garrison/dalaran hearthstones are items, while et hearthstone is a toy.

durandal42 commented 1 year ago

The icons look fine in the MegaMacro menu, but become red question marks when I deploy them onto (blizzard standard UI) action bars.

durandal42 commented 1 year ago

Also since applying the patch above, macros whose ability changes based on macro conditionals no longer update their icons accordingly in combat (but do seem to update their tooltips). For example:

/cast [@mouseover,help][@target,help] Flash of Light; [@target,harm,nodead] Judgment; [] Flash of Light

Dannez83 commented 1 year ago

/cast [@mouseover,help][@target,help] Flash of Light; [@target,harm,nodead] Judgment; [] Flash of Light

I can't replicate this issue at all. I've tried this exact macro and it works fine for me. The majority of my macros are help/harm with additional modifiers for self target and they all work fine. Spell icons and tooltips all change as expected. Tried in combat, out of combat, in instance, in open world etc. Are you running any other addons that might affect bars/icons?

As for the toy icon, I did say the action bar taint fix was hacky, and hacky fixes do tend to break other things. In this case, I've had a quick look but I can't see a simple solution to solve both this and the action bar lockout, and given the choice I would take that fix and accept that toy macro icons won't show.

In reality, to fix this properly probably requires quite a large rewrite as the action bar overhaul by blizzard has resulted in a lot more functionality being protected. I'm not in a position to do that. Long term the best option might be to switch to something like bindpad, especially if Sellorio isn't coming back to the game - which seems like the case

durandal42 commented 1 year ago

For sure, a broken icon on my hearth/camp macro is way more tolerable than taint issues forcing reloads during group content!

I'll try harder to reproduce the conditional icon switching tonight after work.

durandal42 commented 1 year ago

I can't replicate this issue at all.

Here are two videos showing the problem; one with my normal set of addons, and one with only MegaMacro enabled.

In both cases, I target a hostile dummy and then mouseover/unmouseover myself to show the icon on my J/FoL macro (third button on my main bar) changing. I then enter combat with the dummy, and show the icon frozen in whatever state it had when I entered combat. When combat drops, the icon updates resume.

Here's with full addons: https://www.youtube.com/watch?v=xMESdFo38sI Here's with no other addons: https://www.youtube.com/watch?v=PEkaQE7fIqw

(HD processing might not be done yet by the time you view these, but even SD should be sufficient to show off the problem.)

YetAnotherDevWannabe commented 1 year ago

Annnnnd it's back.... it was sooo good while it lasted :)

1x [ADDON_ACTION_FORBIDDEN] AddOn 'AdiBags' tried to call the protected function 'UNKNOWN()'.
[string "@Interface/AddOns/!BugGrabber/BugGrabber.lua"]:480: in function <Interface/AddOns/!BugGrabber/BugGrabber.lua:480>
[string "=[C]"]: ?
[string "=[C]"]: in function `UseAction'
[string "@Interface/FrameXML/SecureTemplates.lua"]:364: in function `handler'
[string "@Interface/FrameXML/SecureTemplates.lua"]:690: in function <Interface/FrameXML/SecureTemplates.lua:672>
[string "@Interface/FrameXML/SecureTemplates.lua"]:704: in function <Interface/FrameXML/SecureTemplates.lua:697>
[string "@Interface/FrameXML/SecureTemplates.lua"]:746: in function `SecureActionButton_OnClick'
[string "@Interface/FrameXML/ActionButton.lua"]:109: in function `TryUseActionButton'
[string "@Interface/FrameXML/MultiActionBars.lua"]:14: in function `MultiActionButtonDown'
[string "MULTIACTIONBAR1BUTTON2"]:2: in function <[string "MULTIACTIONBAR1BUTTON2"]:1>

I'll try to go back on my engineering char to see if I can replicate the bug as I used to.

Dannez83 commented 1 year ago

@durandal42 try this one. I think I've worked out what was causing the taint issue. In any case I'm getting no taint errors and macro icons and tooltips are both working in combat and in dungeons etc (inc toys).

I've reverted all my hack code and just commented out the bits that I believe are causing the problems - cooldown updates, which don't seem necessary for the addon to handle anymore as the default cooldown overlays are working fine with the macros, as is Omnicc mega-macro-action-bar-engine.zip

durandal42 commented 1 year ago

@Dannez83 your latest patch fixes both the broken icons and the no-icon-updates-in-combat problems I was seeing. I also haven't seen a taint error in quite a while.

I agree 100% with your assessment that cooldowns overlays are unnecessary and worth throwing overboard to make everything else work.

If we can get this published in the official build, I'll happily close this bug!

durandal42 commented 1 year ago

I spoke too soon:

5x [ADDON_ACTION_BLOCKED] AddOn 'MegaMacro' tried to call the protected function 'OverrideActionBarButton5:SetAttribute()'.
[string "@Interface/AddOns/!BugGrabber/BugGrabber.lua"]:480: in function <Interface/AddOns/!BugGrabber/BugGrabber.lua:480>
[string "=[C]"]: in function `SetAttribute'
[string "@Interface/FrameXML/ActionButton.lua"]:355: in function `UpdatePressAndHoldAction'
[string "@Interface/FrameXML/ActionButton.lua"]:415: in function `Update'
[string "@Interface/FrameXML/ActionButton.lua"]:367: in function `UpdateAction'
[string "@Interface/FrameXML/ActionButton.lua"]:803: in function `OnEvent'
[string "@Interface/FrameXML/ActionButton.lua"]:216: in function <Interface/FrameXML/ActionButton.lua:213>

Locals:
Skipped (In Encounter)

... after running a dungeon and then hearthing home to Bastion, trying to mount fails:

/click LM_B1 LeftButton

... but other macros succeed.

YetAnotherDevWannabe commented 1 year ago

It seems to be back with a vengeance, can't pass 5min w/o the bug.... F blizzard...

durandal42 commented 1 year ago
11x [ADDON_ACTION_FORBIDDEN] AddOn 'MegaMacro' tried to call the protected function 'UNKNOWN()'.
[string "@!BugGrabber/BugGrabber.lua"]:480: in function <!BugGrabber/BugGrabber.lua:480>
[string "=[C]"]: ?
[string "=[C]"]: in function `UseAction'
[string "@FrameXML/SecureTemplates.lua"]:364: in function `handler'
[string "@FrameXML/SecureTemplates.lua"]:690: in function <FrameXML/SecureTemplates.lua:672>
[string "@FrameXML/SecureTemplates.lua"]:704: in function <FrameXML/SecureTemplates.lua:697>
[string "@FrameXML/SecureTemplates.lua"]:746: in function `SecureActionButton_OnClick'
[string "@FrameXML/ActionButton.lua"]:109: in function `TryUseActionButton'
[string "@FrameXML/MultiActionBars.lua"]:14: in function `MultiActionButtonDown'
[string "MULTIACTIONBAR4BUTTON3"]:2: in function <[string "MULTIACTIONBAR4BUTTON3"]:1>
durandal42 commented 7 months ago
6x [ADDON_ACTION_BLOCKED] AddOn 'MegaMacro' tried to call the protected function 'OverrideActionBarButton2:SetAttribute()'.
[string "@!BugGrabber/BugGrabber.lua"]:481: in function <!BugGrabber/BugGrabber.lua:481>
[string "=[C]"]: in function `SetAttribute'
[string "@FrameXML/ActionButton.lua"]:485: in function `UpdatePressAndHoldAction'
[string "@FrameXML/ActionButton.lua"]:551: in function `Update'
[string "@FrameXML/ActionButton.lua"]:503: in function `UpdateAction'
[string "@FrameXML/ActionButton.lua"]:980: in function `OnEvent'
[string "@FrameXML/ActionButton.lua"]:207: in function <FrameXML/ActionButton.lua:204>

Locals:
_ = Frame {
 RegisterEvent = <function> defined @!BugGrabber/BugGrabber.lua:487
 0 = <userdata>
 UnregisterEvent = <function> defined @!BugGrabber/BugGrabber.lua:487
 SetScript = <function> defined @!BugGrabber/BugGrabber.lua:487
}
event = "ADDON_ACTION_BLOCKED"
events = <table> {
 ADDON_ACTION_BLOCKED = <function> defined @!BugGrabber/BugGrabber.lua:553
 ADDON_ACTION_FORBIDDEN = <function> defined @!BugGrabber/BugGrabber.lua:553
 PLAYER_LOGIN = <function> defined @!BugGrabber/BugGrabber.lua:547
 LUA_WARNING = <function> defined @!BugGrabber/BugGrabber.lua:562
 ADDON_LOADED = <function> defined @!BugGrabber/BugGrabber.lua:507
}
durandal42 commented 7 months ago
7x [ADDON_ACTION_BLOCKED] AddOn 'MegaMacro' tried to call the protected function 'IsInRange()'.
[string "@!BugGrabber/BugGrabber.lua"]:481: in function <!BugGrabber/BugGrabber.lua:481>
[string "=[C]"]: in function `IsInRange'
[string "@MegaMacro/src/engine/mega-macro-action-bar-engine.lua"]:237: in function <...egaMacro/src/engine/mega-macro-action-bar-engine.lua:236>
[string "@MegaMacro/src/engine/mega-macro-action-bar-engine.lua"]:309: in function <...egaMacro/src/engine/mega-macro-action-bar-engine.lua:280>
[string "@MegaMacro/src/engine/mega-macro-action-bar-engine.lua"]:413: in function `func'
[string "@MegaMacro/src/engine/mega-macro-action-bar-engine.lua"]:364: in function `iterator'
[string "@MegaMacro/src/engine/mega-macro-action-bar-engine.lua"]:402: in function `OnUpdate'
[string "@MegaMacro/src/main.lua"]:16: in function <MegaMacro/src/main.lua:12>

Locals:
_ = Frame {
 RegisterEvent = <function> defined @!BugGrabber/BugGrabber.lua:487
 0 = <userdata>
 UnregisterEvent = <function> defined @!BugGrabber/BugGrabber.lua:487
 SetScript = <function> defined @!BugGrabber/BugGrabber.lua:487
}
event = "ADDON_ACTION_BLOCKED"
events = <table> {
 ADDON_ACTION_BLOCKED = <function> defined @!BugGrabber/BugGrabber.lua:553
 ADDON_ACTION_FORBIDDEN = <function> defined @!BugGrabber/BugGrabber.lua:553
 PLAYER_LOGIN = <function> defined @!BugGrabber/BugGrabber.lua:547
 LUA_WARNING = <function> defined @!BugGrabber/BugGrabber.lua:562
 ADDON_LOADED = <function> defined @!BugGrabber/BugGrabber.lua:507
}
durandal42 commented 7 months ago
3x [ADDON_ACTION_BLOCKED] AddOn 'MegaMacro' tried to call the protected function 'ActionButton1:SetShown()'.
[string "@!BugGrabber/BugGrabber.lua"]:480: in function <!BugGrabber/BugGrabber.lua:480>
[string "=[C]"]: in function `SetShown'
[string "@FrameXML/ActionBar.lua"]:206: in function `UpdateShownButtons'
[string "@FrameXML/ActionButton.lua"]:372: in function `UpdateAction'
[string "@FrameXML/ActionButton.lua"]:803: in function `OnEvent'
[string "@FrameXML/ActionButton.lua"]:216: in function <FrameXML/ActionButton.lua:213>