DBM - Deadly Boss Mods (DBM-Core)

DBM - Deadly Boss Mods (DBM-Core)

530M Downloads

dbm-core : masque addon , skin glow issue

Wagerssi opened this issue · 24 comments

commented
화면 캡처 2024-10-22 082559 화면 캡처 2024-10-22 082652

If you activate dbm-core as in the attached picture, the glow effect will be weird for icons created by weakauras.
This is the result of testing with dbm/masque/weakauras 3 addons activated.

I don't know why dbm is affecting the glow effect.
This symptom occurred suddenly recently.

commented

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

commented

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

commented

I mean if it's a bug in lib we just make stan fix it. vs trying to hack the load order.

commented

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.

commented

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

commented

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.

commented

Masque doesn't even reference LibCustomGlow, much less utilize a "modified copy". In fact, LibCustomGlow calls Masque.

commented

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.

commented

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

commented

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

commented

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.

commented

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.

commented

Any idea when this issue will be resolved?

commented

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
commented

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

commented

For clarification is Masque available on cata or vanilla classic?

commented

I went ahead and just added the load dep on every flavor for good measure

commented

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)

commented

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!

commented

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.

commented

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.

commented

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

commented

Dunno about anyone else, but mine's been fried the last few years. :P