Closed nfet closed 1 year ago
/castsequence [@player] reset=10 Mage Armor, Arcane Intellect
Initial Icon is
Mage Armor
After first click, the icon is updated to
Arcane Intellect
Thanks for the preview, that's great!
For the sake of completeness, does the icon also work with /qsequence
?
/qsequence [@player] Mage Armor, Arcane Intellect
And with the states via flags, e.g. my Rogue healing macro:
#label cv/hp
/cast [btn:1,combat,flag:potion] Refreshing Healing Potion; [btn:1] Crimson Vial
/cycleflag [combat] potion
/setflag [nocombat] potion=
Or the [visual]
conditional?
I have read through the M6 addon code to understand most of what it's doing. Just a heads up that I am planning to revert all the M6 code within ActionbarPlus and spin off a new addon called ActionbarPlus-M6. I need to come up with a cleaner and more modularized solution. Sorry for the inconvenience but I will try to push on the implementation as fast as possible.
Cheers,
to understand most of what it's doing
Yeah, I don't understand everything it does yet either ;)
I am planning to revert all the M6 code within ActionbarPlus and spin off a new addon called ActionbarPlus-M6
That's interesting. I feel a bit bad now that I have triggered all this work (considering that probably not too many people use M6 and ABP at the same time). The ActionbarPlus-M6 will also work with "normal" macros, right? Or will it be M6 exclusive?
Sorry for the inconvenience but I will try to push on the implementation as fast as possible
No hurry! M6 macros work on ABP and the icons are there now, that's the most important thing.
In the previous post where I asked about icon compatibility with /qsequence, flags and [visual], I said "for the sake of completeness" because I don't currently use macros with those features on any ABP bar, so no problem for me at all!
That's interesting. I feel a bit bad now that I have triggered all this work (considering that probably not too many people use M6 and ABP at the same time). The ActionbarPlus-M6 will also work with "normal" macros, right? Or will it be M6 exclusive?
ActionbarPlus will work with normal blizz macros. I have a version of code that supports M6 now in a branch. The more I was coding this it just made sense to push this code to another addon. This is actually interesting work and I'm understating this. M6 actually integrates/hooks directly to the blizzard actionbar functions and this is the reason that it doesn't function correctly in ABP.
ActionbarPlus
The above structure works well as far as usability, stability and code maintenance. Even if we might think not too many people use M6 with ActionbarPlus, I still feel like M6 deserves a clean integration in ABP.
In the previous post where I asked about icon compatibility with /qsequence, flags and [visual], I said "for the sake of completeness" because I don't currently use macros with those features on any ABP bar, so no problem for me at all!
Don't feel bad, I just forgot to reply to let you know that, the way I've integrated ABP currently, all of the qsequence, flags, visual, etc works. I'm actually learning a lot. Also, I am planning to create a new addon called ActionbarPlus-Masq
to integrate Masq addon as well (a user request)
The branch is here (and it's stable), but I wouldn't rely on this branch to remain the same (I'm always force pushing)
Correct display of labels of M6 macros are currently my main (and only) issue. But that's another thread. π€ͺ
I'm made significant progress on ActionbarPlus-M6. I developed it under WOTLK. I just need wrap things up and make sure it works in retail. I just need to finalize/wrap up the m6-main-addon
branch and should be good to go for the first release.
https://github.com/kapresoft/wow-ActionbarPlus-M6/releases/tag/0.0.1 (Alpha)
Tranquilo. Just wanted to get rid of the Red bag (BugSack).
The rest is already fine for me, I have an icon for my M6 macros, so that i can at least identify them. The gory stuff, like labels and such laterβ¦
Many thanks for your work and for your awareness and responsiveness!
β Tom
For the initial implementation, this is what I have. It can be improved in the future.
#label <label>
Use the M6 Macro Name
#label <label>
is definedUse the Label name
The M6-Name will be placed in (#2) and Label will be used in (#3), The (#1) is the actual macro name.
Here's another. Holding down SHIFT while mouseover will show macro details.
Oh, this is nice! π
Hi There,
ActionbarPlus-M6 1.0.0 is out :-) Party! π₯³. You have to get the latest ActionbarPlus 2023.4.12 as well. I have tested in Retail, Classic, and Classic Era. Good Luck & have fun.
Switching specs is a bit hoaky because the M6 profiles re-uses the wow macros and ABP currently does not support profile-per-specialization settings.
The add-on has dependency on both ABP and M6.
https://legacy.curseforge.com/wow/addons/actionbarplus-m6/files https://legacy.curseforge.com/wow/addons/actionbarplus/files
Cheers,
I don't want to be the party killer β and I'm sure it's a small thing, but I get this:
44x ...rfaceActionbarPlus-M6/Core/Lib/M6Support.lua:285: attempt to index field '?' (a nil value)
[string "@ActionbarPlus-M6/Core/Lib/M6Support.lua"]:285: in function `profile'
[string "@ActionbarPlus-M6/Core/Lib/M6Support.lua"]:467: in function `InitializeHooks'
[string "@ActionbarPlus-M6/Core/Lib/M6Support.lua"]:505: in function <...rfaceActionbarPlus-M6/Core/Lib/M6Support.lua:499>
[string "=[C]"]: ?
[string "@Ace3/CallbackHandler-1.0-8/CallbackHandler-1.0.lua"]:24: in function <...Ons/Ace3/CallbackHandler-1.0/CallbackHandler-1.0.lua:20>
[string "@Ace3/CallbackHandler-1.0-8/CallbackHandler-1.0.lua"]:59: in function `SendMessage'
[string "@ActionbarPlus/Core/Lib/Widget/ActionbarPlusEventMixin.lua"]:301: in function <...nbarPlus/Core/Lib/Widget/ActionbarPlusEventMixin.lua:301>
Clicks seem to work fine though. The error then gets thrown again with every mouseover over an M6 macro button on ABP.
This is with both ABPs loaded, and happens also with (almost) no other addons:
After a reload, the M6 macros I've put on a bar before, turn green. Until I move them, then the icon comes back.
Taking a look now....
I knew it. It was too early to celebrate :-).
I can't repro on my side, but this seems like not being able to access the M6DB. The add-on needs to access action the M6 character profile in able to get information about each m6 action.
What does this give you on the console?
/dump M6DB
Line 285 calls db()
which returns M6DB.
https://github.com/kapresoft/wow-ActionbarPlus-M6/blob/476318c622ae9be2e9d0f837638647335cd7acd7/Core/Lib/M6Support.lua#L280-L285
Also, could I get you to try it on a character that has not used the M6 add-on before?
I made a small patch 1.0.1 to log on the console if M6DB is not accessible.
...and I'm gonna keep poking around. I'm sure I can find the issue soon enough.
What does this give you on the console?
/dump M6DB
Well, it returns the whole M6 database.
Loaded your 1.0.1 now. It returns this line after reload:
{{ActionbarPlus-M6}}: 1.0.1 Initialized
The error seems to be the same, with shifted line numbers:
1x ...rfaceActionbarPlus-M6/Core/Lib/M6Support.lua:291: attempt to index field '?' (a nil value)
[string "@ActionbarPlus-M6/Core/Lib/M6Support.lua"]:291: in function `profile'
[string "@ActionbarPlus-M6/Core/Lib/M6Support.lua"]:473: in function `InitializeHooks'
[string "@ActionbarPlus-M6/Core/Lib/M6Support.lua"]:511: in function <...rfaceActionbarPlus-M6/Core/Lib/M6Support.lua:505>
[string "=[C]"]: ?
[string "@Ace3/CallbackHandler-1.0-8/CallbackHandler-1.0.lua"]:24: in function <...Ons/Ace3/CallbackHandler-1.0/CallbackHandler-1.0.lua:20>
[string "@Ace3/CallbackHandler-1.0-8/CallbackHandler-1.0.lua"]:59: in function `SendMessage'
[string "@ActionbarPlus/Core/Lib/Widget/ActionbarPlusEventMixin.lua"]:301: in function <...nbarPlus/Core/Lib/Widget/ActionbarPlusEventMixin.lua:301>
The problem could be your GetNormalizedRealmName()
in line 290.
The normalized name of my realm is AzjolNerub
. But in the M6 profile it's the non-normalized name (Azjol-Nerub
).
Yeah, no errors with:
local realm, name = GetRealmName(), UnitName("player")
Line 290, M6Support.lua
OK, I think you can party now π
Just a minor cosmetic issue: There are double colons (::
) in the tooltip:
And, damn, the shift-tooltip with the macro text is really useful!
What you have done has exceeded all my expectations!
Yeah, no errors with:
local realm, name = GetRealmName(), UnitName("player")
Line 290, M6Support.lua
Wow. Good catch. π I don't know why I picked GetNormalizedRealmName()
when I totally saw that m6 Core.lua uses GeatRealmName(). Will put out a fix shortly.
And, damn, the shift-tooltip with the macro text is really useful! What you have done has exceeded all my expectations! Nice! This is great to hear! I wish that the "spellID" values were converted to real spell names though. Well see what the future holds.
OK, but now the real problem is β quoting you β :
Switching specs is a bit hoaky because the M6 profiles re-uses the wow macros and ABP currently does not support profile-per-specialization settings.
Actually this means that any M6 macro I put on an ABP bar will change to something else (or empty) when I switch chars.
I didn't notice that until now, because the only toons where I fully switched from a Blizz action bar full with M6 macros to an ABP bar with the same macros, were my AH toons. And there, the macros remained "stable" between the toons. (It's the bar shown in the OP.)
And I think I know now why this isβ¦
I deactivated the old Blizz action bars with the M6 macros, but I did not delete the macros from them. So, M6 reliably recreates the macros on both AH toons because they are persistently still present on the (hidden) Blizz action bars.
And I guess in the moment when I remove the macros from the Blizz bars, they will get completely messed up on the ABP bar, depending on which macros M6 actually puts into the macro slots at login.
Well, actually they don't even work on AH toon #2. The icons are the same, but hovering over the buttons produces this:
{{ActionbarPlus-M6::M6Support}}: Failed to show tooltip for unknown actionID, slotID=s0d macro=_M6+s0d
{{ActionbarPlus-M6::M6Support}}: Failed to show tooltip for unknown actionID, slotID=s0e macro=_M6+s0e
{{ActionbarPlus-M6::M6Support}}: Failed to show tooltip for unknown actionID, slotID=s12 macro=_M6+s12
{{ActionbarPlus-M6::M6Support}}: Failed to show tooltip for unknown actionID, slotID=s11 macro=_M6+s11
{{ActionbarPlus-M6::M6Support}}: Failed to show tooltip for unknown actionID, slotID=s10 macro=_M6+s10
{{ActionbarPlus-M6::M6Support}}: Failed to show tooltip for unknown actionID, slotID=s0f macro=_M6+s0f
{{ActionbarPlus-M6::M6Support}}: Failed to show tooltip for unknown actionID, slotID=s10 macro=_M6+s10
{{ActionbarPlus-M6::M6Support}}: Failed to show tooltip for unknown actionID, slotID=s11 macro=_M6+s11
β¦ and they actually don't work.
I thought they worked until recently, but I'm not sure now because it's been a while since I've been on that toon.
OK, I think you can party now π
Just a minor cosmetic issue: There are double colons (
::
) in the tooltip:
The Drain Soul
:: <name or label>
is intentional.
For M6 Macro ::
and Name ::
I'll have a fix shortly
Well, actually they don't even work on AH toon #2. The icons are the same, but hovering over the buttons produces this:
{{ActionbarPlus-M6::M6Support}}: Failed to show tooltip for unknown actionID, slotID=s0d macro=_M6+s0d {{ActionbarPlus-M6::M6Support}}: Failed to show tooltip for unknown actionID, slotID=s0e macro=_M6+s0e {{ActionbarPlus-M6::M6Support}}: Failed to show tooltip for unknown actionID, slotID=s12 macro=_M6+s12 {{ActionbarPlus-M6::M6Support}}: Failed to show tooltip for unknown actionID, slotID=s11 macro=_M6+s11 {{ActionbarPlus-M6::M6Support}}: Failed to show tooltip for unknown actionID, slotID=s10 macro=_M6+s10 {{ActionbarPlus-M6::M6Support}}: Failed to show tooltip for unknown actionID, slotID=s0f macro=_M6+s0f {{ActionbarPlus-M6::M6Support}}: Failed to show tooltip for unknown actionID, slotID=s10 macro=_M6+s10 {{ActionbarPlus-M6::M6Support}}: Failed to show tooltip for unknown actionID, slotID=s11 macro=_M6+s11
β¦ and they actually don't work.
I thought they worked until recently, but I'm not sure now because it's been a while since I've been on that toon.
My workaround (without M6) currently is to have a profile for each spec in the Profiles menu. I do have to manually switch ABP profile after switch spec. It's a bit manual but the Ace3 config support is fairly easy to use, i.e. copy current profile into a new one...just mentioning in case you have not used this before.
After setting up a profile for each spec, my steps are:
1) Switch Talent
2) /abp conf
3) In profiles menu, select the profile and reload (A bit manual at the moment)
I'm getting closer to formulating a solution for switching profiles. The tracking issue is #167 "Dual Spec Support"
But keep in mind that the main advantage of ABP over the regular action bars is that you can have global bars, i.e. cross-char bars. (Well, at least for me this is the reason for using ABP.)
Having to recopy profiles for 20 toons every time I make a change would kind of defeat the purpose, right?
OK, but now the real problem is β quoting you β :
Switching specs is a bit hoaky because the M6 profiles re-uses the wow macros and ABP currently does not support profile-per-specialization settings.
Actually this means that any M6 macro I put on an ABP bar will change to something else (or empty) when I switch chars.
I didn't notice that until now, because the only toons where I fully switched from a Blizz action bar full with M6 macros to an ABP bar with the same macros, were my AH toons. And there, the macros remained "stable" between the toons. (It's the bar shown in the OP.)
And I think I know now why this isβ¦
I deactivated the old Blizz action bars with the M6 macros, but I did not delete the macros from them. So, M6 reliably recreates the macros on both AH toons because they are persistently still present on the (hidden) Blizz action bars.
And I guess in the moment when I remove the macros from the Blizz bars, they will get completely messed up on the ABP bar, depending on which macros M6 actually puts into the macro slots at login.
m6 plays magic underneath those _M6+<slotID>
macros, i.e. _M6+s01, _M6+s02, etc...
In one profile (same char different talent), s01 could be pointing to actionID #1. When switching specs, now s01 could be pointing to actionID #2. It's apparent in the SavedVariables/M6.lua file. So the old action button no longer has the same information before it switched spec.
I believe having a different ABP profile should mitigate this issue but it's a temp fix.
I believe having a different ABP profile should mitigate this issue but it's a temp fix.
Correction, having a different character profile per spec should mitigate this issue but it's a temp fix.
v. 2023.4.1 is out https://legacy.curseforge.com/wow/addons/actionbarplus-m6/files/4514904
Cheers!
I tested in 'Azjol-Nerub' and 'Blood Furnace' to be sure.
but it's a temp fix
Happy to hear that :-)
I just tried the profile-per-talent-spec setting and seems to work fine.
Switch talent, then switch ABP profile. For this character Belat::BF:Disc
and Belat::BF:Shadow
. You would need to drag and drop the M6 macros to ABP for each spec profile switch though, i.e. the _M6+s01 macro in one spec may or may not be the same M6 action for another spec.
but it's a temp fix
Happy to hear that :-)
...and thank you for the help!
You would need to drag and drop the M6 macros to ABP for each spec profile switch though
Hm, probably this explains why my AH toon #2 has lost the correct macro attributions: Both AH toons share the same"AH" profile, but when I switch to one of the other, non-AH, toons (which all share the same "Default" profile) then the attributions get lost or mixed up?
But why are the macro attributions not lost then also on AH toon #1? (She has the macros also on a hidden Blizz action bar, but so does AH toon #2.)
And why do the icons remain intact on AH toon #2?
And why do the icons remain intact on AH toon #2?
In ActionbarPlus? The ActionbarPlus-M6 addon records that last known icon, which may or may not be a bad idea (still unsure of this). If it can't find the M6 Macro(Action), hence no icon, it uses the last known icon. This might be the reason. For the standard blizz action bar, It will be the green icon I think.
For the standard blizz action bar, It will be the green icon I think.
CORRECTION: It looks like standard action slot reverts to the ?
icon.
For the behavior of M6 in terms of profile data, here comes the long-winded answer...
Here's an example M6 with a blank profile for my Blood Furnace retail account with some M6-Macro (called Actions ). The index of each actions are referred to in M6 code as Action Index or ID.
By default, the actions are not active. In order for a macro to be active the player right-clicks on the M6 Macro(Action) and select 'Place on action bars'.
I'm not sure if you're seeing the same experience, but I right-click and place on action bars and I still get the
?
icon. I have to edit and save again to actually activate the icon.
In this example, I activated and dragged the #PriestBuffSelf
M6 Macro to a stancard actionbar slot or ABP action slot.
After this action, I do a /reload
(to force WOW to update profiles), then the character profile now looks like this.
["profiles"] = {
["Blood Furnace"] = {
["Belat"] = {
{
["slots"] = {
["s01"] = 7,
},
["bind"] = {
},
}, -- [1]
},
},
},
Action Index 7 is #PriestBuffSelf
from this action array in my profile
{
"imptext", -- [1]
"#label Buff me baby!\n/qsequence {{spell:21562}}, {{spell:2061}}", -- [2]
["group"] = 1,
["name"] = "#PriestBuffSelf",
}, -- [7]
I then activate and drag-and-drop another M6 Macro(Action) called Hello
to an actionbar (standard or ABP); then do another /reload
The character profile now looks like this as expected:
["Belat"] = {
{
["slots"] = {
["s01"] = 7,
["s02"] = 2,
},
["bind"] = {
},
}, -- [1]
},
Action Index 2 is the Hello
M6 Macro(Action) in my profile:
{
"imptext", -- [1]
"#label Say Hello\n/run print('Hello')", -- [2]
["group"] = 3,
["name"] = "Hello",
["icon"] = 132093,
}, -- [2]
If I deactivate, the M6 Macro Hello
, I added a hook in place to remove this action from ABP. In standard actionbar, the icon is updated to the ?
macro, which is just a plain macro with no assigned icon.
Another /reload
will show that the s02
mapping no longer exists in the character profile.
["Belat"] = {
{
["slots"] = {
["s01"] = 7,
},
["bind"] = {
},
}, -- [1]
},
The above behavior is fairly predictable.
For the purpose of this example, I will reactivate M6 Macro Hello
again so that we are back to to slot entries. After re-activating, the profile is now back to:
["Belat"] = {
{
["slots"] = {
["s01"] = 7,
["s02"] = 2,
},
["bind"] = {
},
}, -- [1]
},
After activating the Shadow spec (talent index 3), the behavior will be:
_M6+s01
and _M6+s02
shell macros, which renders no information since these are inactive M6 macros by default. My thought is to remove these macros from ABP after a profile switch, for reasons which I will outline in a bit. My future goal is to select a new ABP profile after a spec switch.Here's the behavior in M6.
If I activate the M6 Hello macro first, this action will be assigned to slot s01
. If you recall on the previous profile that s01
is assigned to #PriestBuffSelf
macro (index:7).
So, after activating Hello
macro and dragging and dropping to an ABP action slot, the character profile now looks like this (M6 creates a new profile for the spec, mapped by talent index 3) and a new slot s01
is mapped to action index 2. If you compare to the previous spec entry, s01
maps to action index 7.
["profiles"] = {
["Blood Furnace"] = {
["Belat"] = {
{
["slots"] = {
["s01"] = 7,
["s02"] = 2,
},
["bind"] = {
},
}, -- [1]
[3] = {
["slots"] = {
["s01"] = 2,
},
["bind"] = {
},
},
},
},
},
If the action slot is inactive, Actionbar-M6 is not able to pull information about that action and also clicking on it will not work (for both ABP and standard actionbar slot).
My thoughts are the better ABP user-experience might be after a profile switch is to
But why are the macro attributions not lost then also on AH toon #1? (She has the macros also on a hidden Blizz action bar, but so does AH toon #2.)
If you activated and dragged-and-dropped the M6 Macros in the same order such that the slots map to the same action index, it is possible that the macros will continue to work on subsequent spec change.
Thanks for the detailed explanation! Really appreciated. (Not sure if I got all of it, but most of it I think ;) Have to read it again in a quiet moment...)
Today I get the "\<\<FATAL>> Failed to access M6 database" message.
Since I currently only have ActionbarPlus-M6 loaded on the AH toon where the buttons are persistent, I cannot say for sure since when this happens. But it seems plausible that it is since the last M6 update yesterday.
I verified now on one of the "normal" toons and it's the same there. Dumping M6DB
returns in fact nil.
One thing I did overlook is the SavedVariablesPerCharacter
settings.
M6.toc:
## SavedVariables: M6DB
## SavedVariablesPerCharacter: M6PC
Can you give this a try on the same character. Console:
/dump M6PC
Oh never mind...I just got the same error on retail.
M6PC (per char table) is also nil.
But it is really nil, also in the saved file:
Seems to be nil on every char.
After diff'ing the previous version, looks like there was a new deliberate change to nullify M6DB. I will need to figure out where to hook to get DB data (or see if the addon can function without the DB in minimal mode). Here's the left(before) and right (after) diff.
....and another issue. M6 Core.lua made most of the methods private. This definitely breaks everything.
function private:SetActionIcon(id, ico)
conf.actions[id].icon = (type(ico) == "string" or type(ico) == "number") and ico or nil
end
...hang tight while I figure things out. Looks like this will only affect tooltips. M6 Macros still work in ABP. Let me see if I can get a quick fix today.
Let me see if I can get a quick fix today
No need to hurry, at least not because of me. In fact, with additional complications now showing up, I would even consider abandoning the whole experiment β unless the educational benefits are worth it.
You were smart enough to separate this thing from the main ABP project, so you could just drop it.
Oh don't worry. M6 codebase is going through some code cleanup. This is always the business with dependency. This will be fixed shortly. The "detailed" tooltip will no longer be available due to changes. The m6 macro details on hover is a nice-to-have feature but not needed.
ActionbarPlus-M6 2023.5.3 is out
Yep, behavior seems to be restored as with M6 pre-1.38 (except the macro-content tooltip you mentioned).
That's unexpected. It should only have missing tooltip non-spell/item type macros like emotes. What is the content of this m6 macro?
Here's a buff macro for one of my tests
Epic: #258
Bug
With the new ABP version, the example from the OP now shows the correct icon, but the labels are still missing:
Also the tooltip does not show the label (it just shows the macro text from the stub, e.g.
_M6+s07
)The label is constructed with
#label <labeltext>
in M6. See the screenshot in the first spoiler of the OP.The labels are not super-hyper-important, but, as you can see in the example, they can be pretty helpful to identify the content of the macros. (In this case they set the posting quantity in Auctionator to a predefined number.)
Originally posted by @tflo in https://github.com/kapresoft/wow-addon-actionbar-plus/issues/256#issuecomment-1511712331