[ENH] Add Actionbar Overrides to LibActionButton based mods (ElvUI, ConsolePort and Bartender)
TimothyLuke opened this issue · 17 comments
🟢 How does GSE currently work
GSE was able to override the WoW default Actionbars to emulate the ability to have a macro on the taskbar. A number of mods use LibActionButton to replace the actionbars. The aim is to be able to bring the override functionality to ElvUI, ConsolePort and Bartender.
- General LibActionButton Parts
- ConsolePort
- ElvUI
- Bartender
I have added a note to that effect onto the Wiki and asked for more information from both ElvUI and LibActionButton
For ElvUI:
Using a sequence called KEPH_ST and the 2nd action button which in ElvUI is ElvUI_Bar1Button2
/run ElvUI_Bar1Button2.SetState(ElvUI_Bar1Button2, "1", "custom", {func = function (self) self:SetAttribute("type", "click") ; self:SetAttribute("clickbutton", _G["KEPH-ST"]); end })
Actionbar Override working with ElvUI.
https://github.com/user-attachments/assets/fe885f67-b99a-4e77-9fdc-44960789b407
ConsolePort Example
https://github.com/user-attachments/assets/ce8f9e46-2958-4158-b939-c7d6ed68e9bb
I just thought I would let you know that sometimes when swapping from mout to combat (or from mining to combat) the button override appears to "stop" Nothing will happen even when manually clicking on the button. Using Elvui override
I need a lot more info unfortunately on how to reproduce this. I wonder if its a bar timing/lag thing? The tests i am doing don't seem to make that happen.
I just thought I would let you know that sometimes when swapping from mout to combat (or from mining to combat) the button override appears to "stop" Nothing will happen even when manually clicking on the button. Using Elvui override
i did notice that if you logged in on a mount - it bound the GSE sequence to the skyriding bar instead of the normal bar.
All I can say is even with static flying when dismounting in combat the override just doesn't appear to work. You can see it being pressed or even click on it but it does nothing. The only way I know of is to try and get into combat when mounted and then dismount and try spamming the button
This happened with 13-a-1 and 13-a-2 also happens with 13-a-4 and doesn't seem to matter wether it is Static flying or Dynamic
Sorry if the information is a bit basic - Let me know what you need and I will send it over - Basic gist is if you are mounted when combat starts the override doesn't seem to work
I still cant make this happen. Do you have anything that modifies Elv further like Shadow and Light or Windtools?
Found the issue - its a limitation with using Custom types with LibActionButton. Its not something I can code around - it simply is.
Issue is that once you enter combat LibActionButton cant convert the button to 'click' as SetAttribute is no longer available from insecure places. It taints the actionbar rendering it useless. I can however prevent the taint and then when you leave combat the actionbar will reset to normal.
1x [ADDON_ACTION_BLOCKED] AddOn '*** TaintForced ***' tried to call the protected function 'ElvUI_Bar1Button2:SetAttribute()'.
[string "@!BugGrabber/BugGrabber.lua"]:485: in function <!BugGrabber/BugGrabber.lua:485>
[string "=[C]"]: in function `SetAttribute'
[string "@GSE/API/Events.lua"]:117: in function <GSE/API/Events.lua:116>
[string "=(tail call)"]: ?
[string "@Blizzard_FrameXML/Mainline/SecureTemplates.lua"]:667: in function <...ddOns/Blizzard_FrameXML/Mainline/SecureTemplates.lua:649>
[string "@Blizzard_FrameXML/Mainline/SecureTemplates.lua"]:681: in function <...ddOns/Blizzard_FrameXML/Mainline/SecureTemplates.lua:674>
[string "@Blizzard_FrameXML/Mainline/SecureTemplates.lua"]:723: in function <...ddOns/Blizzard_FrameXML/Mainline/SecureTemplates.lua:707>
[string "=[C]"]: ?
[string "@Blizzard_FrameXML/SecureHandlers.lua"]:266: in function <Blizzard_FrameXML/SecureHandlers.lua:263>
[string "=[C]"]: ?
[string "@Blizzard_FrameXML/SecureHandlers.lua"]:296: in function <Blizzard_FrameXML/SecureHandlers.lua:279>
[string "=(tail call)"]: ?
Locals:
_ = Frame {
}
event = "ADDON_ACTION_BLOCKED"
events = <table> {
}
it is all good I know you cannot change what Blizz does - just thought I would let you know as it has gotten me killed a couple of time lol
Found the issue - its a limitation with using Custom types with LibActionButton. Its not something I can code around - it simply is.
Issue is that once you enter combat LibActionButton cant convert the button to 'click' as SetAttribute is no longer available from insecure places. It taints the actionbar rendering it useless. I can however prevent the taint and then when you leave combat the actionbar will reset to normal.
1x [ADDON_ACTION_BLOCKED] AddOn '*** TaintForced ***' tried to call the protected function 'ElvUI_Bar1Button2:SetAttribute()'. [string "@!BugGrabber/BugGrabber.lua"]:485: in function <!BugGrabber/BugGrabber.lua:485> [string "=[C]"]: in function `SetAttribute' [string "@GSE/API/Events.lua"]:117: in function <GSE/API/Events.lua:116> [string "=(tail call)"]: ? [string "@Blizzard_FrameXML/Mainline/SecureTemplates.lua"]:667: in function <...ddOns/Blizzard_FrameXML/Mainline/SecureTemplates.lua:649> [string "@Blizzard_FrameXML/Mainline/SecureTemplates.lua"]:681: in function <...ddOns/Blizzard_FrameXML/Mainline/SecureTemplates.lua:674> [string "@Blizzard_FrameXML/Mainline/SecureTemplates.lua"]:723: in function <...ddOns/Blizzard_FrameXML/Mainline/SecureTemplates.lua:707> [string "=[C]"]: ? [string "@Blizzard_FrameXML/SecureHandlers.lua"]:266: in function <Blizzard_FrameXML/SecureHandlers.lua:263> [string "=[C]"]: ? [string "@Blizzard_FrameXML/SecureHandlers.lua"]:296: in function <Blizzard_FrameXML/SecureHandlers.lua:279> [string "=(tail call)"]: ? Locals: _ = Frame { } event = "ADDON_ACTION_BLOCKED" events = <table> { }
Is this the same reason why on last boss of Dawnbreaker when you use a dragonriding mount it doesn't bring back the macro when you land?
Possible work around would be using a regular mount.
Not sure if this will also affect dominos or just elvui/bartender/consoleport.
Won’t affect Domino’s yet as I havn’t worked on that yet. I was afraid that would be the case with Dawnbreaker but hadn’t gotten to test there yet. I don’t use either of these mods so writing and developing on Beta.
I have a test case that I am working through - just trying to find the magic code set to fix this.