Skip to content

Commit

Permalink
Allow mods to hide themselves
Browse files Browse the repository at this point in the history
  • Loading branch information
LostLuma committed Jul 16, 2023
1 parent 0b88e0a commit d8ee48b
Show file tree
Hide file tree
Showing 6 changed files with 33 additions and 13 deletions.
21 changes: 12 additions & 9 deletions src/main/java/com/terraformersmc/modmenu/ModMenu.java
Original file line number Diff line number Diff line change
Expand Up @@ -82,15 +82,15 @@ public void onInitializeClient() {

// Fill mods map
for (ModContainer modContainer : FabricLoader.getInstance().getAllMods()) {
if (!ModMenuConfig.HIDDEN_MODS.getValue().contains(modContainer.getMetadata().getId())) {
if (FabricLoader.getInstance().isModLoaded("quilt_loader")) {
QuiltMod mod = new QuiltMod(modContainer, modpackMods);
MODS.put(mod.getId(), mod);
} else {
FabricMod mod = new FabricMod(modContainer, modpackMods);
MODS.put(mod.getId(), mod);
}
Mod mod;

if (runningQuilt) {
mod = new QuiltMod(modContainer, modpackMods);
} else {
mod = new FabricMod(modContainer, modpackMods);
}

MODS.put(mod.getId(), mod);
}

if (ModMenuConfig.UPDATE_CHECKER.getValue()) {
Expand All @@ -101,6 +101,9 @@ public void onInitializeClient() {

// Initialize parent map
for (Mod mod : MODS.values()) {
if (mod.isHidden()) {
continue;
}
String parentId = mod.getParent();
if (parentId != null) {
Mod parent = MODS.getOrDefault(parentId, dummyParents.get(parentId));
Expand Down Expand Up @@ -129,7 +132,7 @@ public static String getDisplayedModCount() {
cachedDisplayedModCount = Math.toIntExact(MODS.values().stream().filter(mod ->
(ModMenuConfig.COUNT_CHILDREN.getValue() || mod.getParent() == null) &&
(ModMenuConfig.COUNT_LIBRARIES.getValue() || !mod.getBadges().contains(Mod.Badge.LIBRARY)) &&
(ModMenuConfig.COUNT_HIDDEN_MODS.getValue() || !ModMenuConfig.HIDDEN_MODS.getValue().contains(mod.getId()))
(ModMenuConfig.COUNT_HIDDEN_MODS.getValue() || !mod.isHidden())
).count());
}
return NumberFormat.getInstance().format(cachedDisplayedModCount);
Expand Down
6 changes: 3 additions & 3 deletions src/main/java/com/terraformersmc/modmenu/gui/ModsScreen.java
Original file line number Diff line number Diff line change
Expand Up @@ -359,10 +359,10 @@ public void render(DrawContext DrawContext, int mouseX, int mouseY, float delta)
}

private Text computeModCountText(boolean includeLibs) {
int[] rootMods = formatModCount(ModMenu.ROOT_MODS.values().stream().filter(mod -> !mod.getBadges().contains(Mod.Badge.LIBRARY)).map(Mod::getId).collect(Collectors.toSet()));
int[] rootMods = formatModCount(ModMenu.ROOT_MODS.values().stream().filter(mod -> !mod.isHidden() && !mod.getBadges().contains(Mod.Badge.LIBRARY)).map(Mod::getId).collect(Collectors.toSet()));

if (includeLibs && ModMenuConfig.SHOW_LIBRARIES.getValue()) {
int[] rootLibs = formatModCount(ModMenu.ROOT_MODS.values().stream().filter(mod -> mod.getBadges().contains(Mod.Badge.LIBRARY)).map(Mod::getId).collect(Collectors.toSet()));
int[] rootLibs = formatModCount(ModMenu.ROOT_MODS.values().stream().filter(mod -> !mod.isHidden() && mod.getBadges().contains(Mod.Badge.LIBRARY)).map(Mod::getId).collect(Collectors.toSet()));
return TranslationUtil.translateNumeric("modmenu.showingModsLibraries", rootMods, rootLibs);
} else {
return TranslationUtil.translateNumeric("modmenu.showingMods", rootMods);
Expand All @@ -371,7 +371,7 @@ private Text computeModCountText(boolean includeLibs) {

private Text computeLibraryCountText() {
if (ModMenuConfig.SHOW_LIBRARIES.getValue()) {
int[] rootLibs = formatModCount(ModMenu.ROOT_MODS.values().stream().filter(mod -> mod.getBadges().contains(Mod.Badge.LIBRARY)).map(Mod::getId).collect(Collectors.toSet()));
int[] rootLibs = formatModCount(ModMenu.ROOT_MODS.values().stream().filter(mod -> !mod.isHidden() && mod.getBadges().contains(Mod.Badge.LIBRARY)).map(Mod::getId).collect(Collectors.toSet()));
return TranslationUtil.translateNumeric("modmenu.showingLibraries", rootLibs);
} else {
return Text.literal(null);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ private void filter(String searchTerm, boolean refresh, boolean search) {
return false;
}
}
return !ModMenuConfig.HIDDEN_MODS.getValue().contains(mod.getId());
return !mod.isHidden();
}).collect(Collectors.toSet());

if (DEBUG) {
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/com/terraformersmc/modmenu/util/mod/Mod.java
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,8 @@ default String getTranslatedDescription() {

boolean getChildHasUpdate();

boolean isHidden();

enum Badge {
LIBRARY("modmenu.badge.library", 0xff107454, 0xff093929, "library"),
CLIENT("modmenu.badge.clientsideOnly", 0xff2b4b7c, 0xff0e2a55, null),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.terraformersmc.modmenu.util.mod.fabric;

import com.terraformersmc.modmenu.ModMenu;
import com.terraformersmc.modmenu.config.ModMenuConfig;
import com.terraformersmc.modmenu.util.mod.Mod;
import com.terraformersmc.modmenu.util.mod.ModrinthData;
import net.fabricmc.loader.api.FabricLoader;
Expand Down Expand Up @@ -179,4 +180,9 @@ public boolean getChildHasUpdate() {
public void setChildHasUpdate() {
this.childHasUpdate = true;
}

@Override
public boolean isHidden() {
return ModMenuConfig.HIDDEN_MODS.getValue().contains(this.getId());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import com.google.common.hash.Hashing;
import com.google.common.io.Files;
import com.terraformersmc.modmenu.ModMenu;
import com.terraformersmc.modmenu.config.ModMenuConfig;
import com.terraformersmc.modmenu.util.OptionalUtil;
import com.terraformersmc.modmenu.util.mod.Mod;
import com.terraformersmc.modmenu.util.mod.ModrinthData;
Expand Down Expand Up @@ -43,6 +44,8 @@ public class FabricMod implements Mod {

protected boolean childHasUpdate = false;

protected boolean hidesItself = false;

public FabricMod(ModContainer modContainer, Set<String> modpackMods) {
this.container = modContainer;
this.metadata = modContainer.getMetadata();
Expand Down Expand Up @@ -86,6 +89,7 @@ public FabricMod(ModContainer modContainer, Set<String> modpackMods) {
badgeNames.addAll(CustomValueUtil.getStringSet("badges", modMenuObject).orElse(new HashSet<>()));
links.putAll(CustomValueUtil.getStringMap("links", modMenuObject).orElse(new HashMap<>()));
allowsUpdateChecks = CustomValueUtil.getBoolean("update_checker", modMenuObject).orElse(true);
hidesItself = CustomValueUtil.getBoolean("hidden", modMenuObject).orElse(false);
}
this.modMenuData = new ModMenuData(
badgeNames,
Expand Down Expand Up @@ -329,6 +333,11 @@ public void setChildHasUpdate() {
this.childHasUpdate = true;
}

@Override
public boolean isHidden() {
return this.hidesItself || ModMenuConfig.HIDDEN_MODS.getValue().contains(this.getId());
}

static class ModMenuData {
private final Set<Badge> badges;
private Optional<String> parent;
Expand Down

0 comments on commit d8ee48b

Please sign in to comment.