dbm-core : masque addon , skin glow issue
Wagerssi opened this issue · 24 comments
Unfortunately this seems to be caused by that addon modifying a public library, so because we embed public version of library. the public library is loading over their modified one.
This is something they need to address. I even talked with maintainer Weak Auras and LibGlow directly and they agree. masque shouldn't be modifying a public library other addons use cause stuff like this happens. If they are gonna modify the lib, they should rename/register it as a diff name at very least, so when other addons use the public library their addon isn't broken (or worse, they start breaking other addons cause it's all subjective to load order. only reason their mod is being broken by DBM and not DBM broken bon their mod, is DBM is loading first so our version of libglow is loading before theirs)
TL/DR, ask them to investigate their usage of a modified a public library for a better way. Maybe get reshaping options implemented officially, or at least fork it under a diff name so it won't be broken by other addons using the glow library
Is Masque something useful for DBM to support? I guess what it does is you inject ability to reshape icons? this include namplate icons? I could maybe just support it in our namplate code if I understand more about it
I mean if it's a bug in lib we just make stan fix it. vs trying to hack the load order.
I wouldn't call it a bug, really, but definitely an issue. That said, I tested it. Turns out it IS the load order. Adding Masque to DBM Core's ToC fixed it. Then, I removed it and changed line 13 of LibCustomGlow-1.0.lua
from:
local Masque = LibStub("Masque", true)
To:
local Masque = C_AddOns.LoadAddOn("Masque") and LibStub("Masque", true)
And that also worked.
ANd that has to be added to DBM? that's not an ideal workaround. i'd rather have @Stanzilla figure out what's up with it
No, it needs to be changed in LibCustomGlow's .lua
file, or at least LCG needs to handle it.
Note: The above only applies to the second example. Changing the ToC is a bandage over a wound.
I hate colds, can't think. What I mean to say is that LCG needs to force-load Masque directly, otherwise, any add-on that includes LCG but doesn't support Masque and loads before Masque will cause the same problem.
Masque doesn't even reference LibCustomGlow, much less utilize a "modified copy". In fact, LibCustomGlow calls Masque.
It's up to you and whether your users would want it. Nameplate icons are a bit iffy, since they're constantly updating, but it's certainly possible. Masque is fairly easy to implement, though the docs are a little dated.
Edit: There's add-ons that add support to some of the default frames, like the action buttons, bags and buff frame (which also updates a lot), so it's really up to you.
them I'm perplexed where breakage is. cause I don't see how we can break glows by simply including LibCustomGlow. multiple users have reported this breaks when enabling DBM masque and weak auras. breakage does not occur if not all 3 are present.
All I know is
it only started when we added LibCustomGlow to DBM, prior, no issues
It doesn't occur when only using DBM + Weak Auras
It might be related to LCG reusing the animations. I'm going to look into it and see if I can track it down. I don't think it's DBM causing it, I just need to find a way to mitigate whatever is causing it, assuming I can find it.
Note on the assumption above: I might be wrong about the reuse causing it, but it's the only thing that makes sense, since DBM doesn't support Masque but the other add-ons do. It seems like, for some reason, WA is getting a glow that hasn't been skinned properly by Masque, as if it was previously used by DBM, so was never skinned, but Masque thinks it is. Or something. I'll figure it out... hopefully. :P
Thanks. Yeah i know me and stan both confused. Problem was introduced by dbm adding lib and just using it's apis per it's docs.
I know plater uses the lib too and I don't think that introduced issue so i still think it's a condition that requires libcustomglow loading BEFORE your code does. which didn't occur prior to DBM. because as I pointed out above Plater loads after you, Weak auras loads after you. So magically the issue was avoided UNTIL DBM loaded libcustomglow before you. so issue coulda been in lib all along.
If it's a load order issue, those with LCG as installed separately wouldn't experience the problem because LCG has Masque listed as an OptDep. So if it's because DBM loads first and includes it as a library, I'm not sure how to go about fixing it, other than to add a (redundant) OptDep for Masque to DBM's ToC file(s). Let me do some testing later first, though, to be sure.
Not sure. It has to be done through LibCustomGlow. In the interim, you can add Masque to DBM-Core's ToC file for whichever flavor you're playing.
Eg:
Change:
## OptionalDependencies: LibStub, CallbackHandler-1.0, LibSharedMedia-3.0, LibChatAnims, LibDBIcon-1.0, LibDeflate, LibSerialize, LibSpecialization, CustomNames
To:
## OptionalDependencies: LibStub, CallbackHandler-1.0, LibSharedMedia-3.0, LibChatAnims, LibDBIcon-1.0, LibDeflate, LibSerialize, LibSpecialization, CustomNames, Masque
I think that is actually the correct solution for the whole problem. we don't want to do any LoadAddon dances in the lib and every addon that uses the lib should have it in its OptDeps
thank you
After modifying the TOC file, we confirmed that Masque's glow effect operates normally. I hope this applies to the next DBM update as well. (WW/Cata/Classic)
I think that is actually the correct solution for the whole problem. we don't want to do any LoadAddon dances in the lib and every addon that uses the lib should have it in its OptDeps
Can you add this to LCG's docs? :P
For clarification is Masque available on cata or vanilla classic?
All three flavors. Retail, Classic Era and Classic.
I hope this applies to the next DBM update as well. (WW/Cata/Classic)
Since MysticalOS added it, it should in the next release.
Done!
I think that is actually the correct solution for the whole problem. we don't want to do any LoadAddon dances in the lib and every addon that uses the lib should have it in its OptDeps
Can you add this to LCG's docs? :P
For clarification is Masque available on cata or vanilla classic?
All three flavors. Retail, Classic Era and Classic.
I hope this applies to the next DBM update as well. (WW/Cata/Classic)
Since MysticalOS added it, it should in the next release.
Done!
Masque needs to be in the OptionalDependencies array, not LCG, AFAIK.
If you want to use LCG in your addon, please make sure to add Masque to your OptionalDependencies array in your TOC file.
Done!
Masque needs to be in the OptionalDependencies array, not LCG, AFAIK.
If you want to use LCG in your addon, please make sure to add Masque to your OptionalDependencies array in your TOC file.
brain