MidnightLib 0.5.2 - Fix AutoModMenu opt-out... again

Closes #10
This commit is contained in:
Motschen
2022-06-07 21:03:45 +02:00
parent 1be14dc3ac
commit 191120393c
5 changed files with 21 additions and 15 deletions

View File

@@ -8,7 +8,7 @@ org.gradle.jvmargs=-Xmx1G
loader_version=0.14.6 loader_version=0.14.6
# Mod Properties # Mod Properties
mod_version = 0.5.1 mod_version = 0.5.2
maven_group = eu.midnightdust maven_group = eu.midnightdust
archives_base_name = midnightlib archives_base_name = midnightlib

View File

@@ -3,21 +3,24 @@ package eu.midnightdust.core;
import eu.midnightdust.core.config.MidnightLibConfig; import eu.midnightdust.core.config.MidnightLibConfig;
import eu.midnightdust.hats.web.HatLoader; import eu.midnightdust.hats.web.HatLoader;
import eu.midnightdust.hats.witch.WitchHatFeatureRenderer; import eu.midnightdust.hats.witch.WitchHatFeatureRenderer;
import eu.midnightdust.lib.config.AutoModMenu;
import eu.midnightdust.lib.config.MidnightConfig; import eu.midnightdust.lib.config.MidnightConfig;
import eu.midnightdust.lib.util.MidnightColorUtil; import eu.midnightdust.lib.util.MidnightColorUtil;
import net.fabricmc.api.ClientModInitializer; import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents; import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
import net.fabricmc.fabric.api.client.rendering.v1.EntityModelLayerRegistry; import net.fabricmc.fabric.api.client.rendering.v1.EntityModelLayerRegistry;
import java.util.ArrayList;
import java.util.List;
public class MidnightLibClient implements ClientModInitializer { public class MidnightLibClient implements ClientModInitializer {
public static List<String> hiddenMods = new ArrayList<>();
public static final String MOD_ID = "midnightlib"; public static final String MOD_ID = "midnightlib";
@Override @Override
public void onInitializeClient() { public void onInitializeClient() {
MidnightConfig.init("midnightlib", MidnightLibConfig.class); MidnightConfig.init("midnightlib", MidnightLibConfig.class);
AutoModMenu.hideFromModMenu("puzzle"); hiddenMods.add("puzzle");
EntityModelLayerRegistry.registerModelLayer(WitchHatFeatureRenderer.WITCH_HAT_MODEL_LAYER, WitchHatFeatureRenderer::getTexturedModelData); EntityModelLayerRegistry.registerModelLayer(WitchHatFeatureRenderer.WITCH_HAT_MODEL_LAYER, WitchHatFeatureRenderer::getTexturedModelData);
if (MidnightLibConfig.special_hats) HatLoader.init(); if (MidnightLibConfig.special_hats) HatLoader.init();

View File

@@ -1,5 +1,6 @@
package eu.midnightdust.core; package eu.midnightdust.core;
import eu.midnightdust.core.config.MidnightLibConfig;
import eu.midnightdust.lib.config.AutoCommand; import eu.midnightdust.lib.config.AutoCommand;
import eu.midnightdust.lib.config.MidnightConfig; import eu.midnightdust.lib.config.MidnightConfig;
import net.fabricmc.api.DedicatedServerModInitializer; import net.fabricmc.api.DedicatedServerModInitializer;
@@ -11,9 +12,11 @@ public class MidnightLibServer implements DedicatedServerModInitializer {
@Override @Override
public void onInitializeServer() { public void onInitializeServer() {
MidnightConfig.configClass.forEach((modid, config) -> { MidnightConfig.configClass.forEach((modid, config) -> {
for (Field field : config.getFields()) { if (!MidnightLibClient.hiddenMods.contains(modid)) {
if (field.isAnnotationPresent(MidnightConfig.Entry.class) && !field.isAnnotationPresent(MidnightConfig.Client.class)) for (Field field : config.getFields()) {
new AutoCommand(field, modid).register(); if (field.isAnnotationPresent(MidnightConfig.Entry.class) && !field.isAnnotationPresent(MidnightConfig.Client.class))
new AutoCommand(field, modid).register();
}
} }
}); });
} }

View File

@@ -1,5 +1,7 @@
package eu.midnightdust.core.screen; package eu.midnightdust.core.screen;
import eu.midnightdust.core.MidnightLibClient;
import eu.midnightdust.core.config.MidnightLibConfig;
import eu.midnightdust.lib.config.MidnightConfig; import eu.midnightdust.lib.config.MidnightConfig;
import net.fabricmc.api.EnvType; import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment; import net.fabricmc.api.Environment;
@@ -31,9 +33,12 @@ public class MidnightConfigOverviewScreen extends Screen {
this.list = new MidnightOverviewListWidget(this.client, this.width, this.height, 32, this.height - 32, 25); this.list = new MidnightOverviewListWidget(this.client, this.width, this.height, 32, this.height - 32, 25);
if (this.client != null && this.client.world != null) this.list.setRenderBackground(false); if (this.client != null && this.client.world != null) this.list.setRenderBackground(false);
this.addSelectableChild(this.list); this.addSelectableChild(this.list);
MidnightConfig.configClass.forEach((modid, configClass) -> MidnightConfig.configClass.forEach((modid, configClass) -> {
if (!MidnightLibClient.hiddenMods.contains(modid)) {
list.addButton(new ButtonWidget(this.width / 2 - 100, this.height - 28, 200, 20, Text.translatable(modid +".midnightconfig.title"), (button) -> list.addButton(new ButtonWidget(this.width / 2 - 100, this.height - 28, 200, 20, Text.translatable(modid +".midnightconfig.title"), (button) ->
Objects.requireNonNull(client).setScreen(MidnightConfig.getScreen(this,modid))))); Objects.requireNonNull(client).setScreen(MidnightConfig.getScreen(this,modid))));
}
});
super.init(); super.init();
} }
@Override @Override

View File

@@ -2,15 +2,13 @@ package eu.midnightdust.lib.config;
import com.terraformersmc.modmenu.api.ConfigScreenFactory; import com.terraformersmc.modmenu.api.ConfigScreenFactory;
import com.terraformersmc.modmenu.api.ModMenuApi; import com.terraformersmc.modmenu.api.ModMenuApi;
import eu.midnightdust.core.MidnightLibClient;
import eu.midnightdust.core.config.MidnightLibConfig; import eu.midnightdust.core.config.MidnightLibConfig;
import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
public class AutoModMenu implements ModMenuApi { public class AutoModMenu implements ModMenuApi {
protected static List<String> hiddenMods = new ArrayList<>();
@Override @Override
public ConfigScreenFactory<?> getModConfigScreenFactory() { public ConfigScreenFactory<?> getModConfigScreenFactory() {
@@ -21,13 +19,10 @@ public class AutoModMenu implements ModMenuApi {
public Map<String, ConfigScreenFactory<?>> getProvidedConfigScreenFactories() { public Map<String, ConfigScreenFactory<?>> getProvidedConfigScreenFactories() {
HashMap<String, ConfigScreenFactory<?>> map = new HashMap<>(); HashMap<String, ConfigScreenFactory<?>> map = new HashMap<>();
MidnightConfig.configClass.forEach((modid, cClass) -> { MidnightConfig.configClass.forEach((modid, cClass) -> {
if (!hiddenMods.contains(modid)) if (!MidnightLibClient.hiddenMods.contains(modid))
map.put(modid, parent -> MidnightConfig.getScreen(parent, modid)); map.put(modid, parent -> MidnightConfig.getScreen(parent, modid));
} }
); );
return map; return map;
} }
public static void hideFromModMenu(String hiddenMod) {
hiddenMods.add(hiddenMod);
}
} }