TerraformersMC / ModMenu

A menu for, you guessed it, mods!
MIT License
476 stars 140 forks source link

Hide child libraries when libraries are hidden #631

Closed LostLuma closed 11 months ago

LostLuma commented 11 months ago

Allows mods to hide themselves via mod metadata.

I've had this idea floating in my head for a while, as the child mod counter obscures a large part of the mod icon on compact mode, and child mods are most times more of an implementation detail rather than part of the surface I'd want users to interact with. There is probably other reasons to do this as well though.

This is especially apparent with my upcoming mod's icon, see the before and after comparison. (I'm not really interested in simply having it display as a non-child mod as a workaround, fwiw)

Prospector commented 11 months ago

Hmm, I could see this being used for sneaky reasons.

Not that a malicious mod couldn't just mixin to modmenu and prevent their mod from being shown anyway, but generally I'm not sure if a mod should be allowed to hide itself from the mod menu.

Possibly it could only be allowed for child mods, but then a mod could just make themselves a child of some random mod and then it's fully hidden again. Perhaps the parent mod could define its hidden children instead? I'm not sure...

I feel like most cases in which a child mod would want to be hidden is when they're a library, which should already be hidden by default. In the cases where they're not a library, I'd imagine you would want them to be shown. If the problem is just the badge in compact mode, maybe in compact mode it should just be a dot instead of a whole number?

LostLuma commented 11 months ago

a child mod would want to be hidden is when they're a library, which should already be hidden by default

Fwiw if libraries are hidden they still are shown when they are child mods of a non-library, but that does seem like a reasonable approach and I can update this if you'd like to.

Prospector commented 11 months ago

Ah, yeah I guess library children should be hidden then. Dunno why I didn't do that in the first place

LostLuma commented 11 months ago

I've updated this to the requested behavior instead, and I'm also pretty happy with how this works for my mod now 🙂