From 7e1de67a5ef4329584332b6d205b24d3935fac38 Mon Sep 17 00:00:00 2001 From: Motschen Date: Mon, 6 Jun 2022 18:13:39 +0200 Subject: [PATCH] MidnightLib 0.5.0 - Same as 0.4.2 but 1.19 --- gradle.properties | 12 ++-- .../screen/MidnightConfigOverviewScreen.java | 2 +- .../midnightdust/lib/config/AutoCommand.java | 4 +- .../midnightdust/lib/config/AutoModMenu.java | 14 ++++- .../lib/config/MidnightConfig.java | 2 +- .../lib/config/MidnightConfigExample.java | 59 ------------------- src/main/resources/fabric.mod.json | 6 +- ...re.mixins.json => midnightlib.mixins.json} | 0 8 files changed, 23 insertions(+), 76 deletions(-) delete mode 100755 src/main/java/eu/midnightdust/lib/config/MidnightConfigExample.java rename src/main/resources/{midnightcore.mixins.json => midnightlib.mixins.json} (100%) diff --git a/gradle.properties b/gradle.properties index 0dab8ed..b86fb52 100755 --- a/gradle.properties +++ b/gradle.properties @@ -3,16 +3,16 @@ org.gradle.jvmargs=-Xmx1G # Fabric Properties # check these on https://fabricmc.net/use - minecraft_version=22w19a - yarn_mappings=22w19a+build.1 - loader_version=0.14.5 + minecraft_version=1.19-rc2 + yarn_mappings=1.19-rc2+build.1 + loader_version=0.14.6 # Mod Properties - mod_version = 0.4.1 + mod_version = 0.5.0 maven_group = eu.midnightdust archives_base_name = midnightlib # Dependencies # currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api - fabric_version=0.52.3+1.19 - mod_menu_version = 2.0.2 + fabric_version=0.55.1+1.19 + mod_menu_version = 4.0.0-beta.4 diff --git a/src/main/java/eu/midnightdust/core/screen/MidnightConfigOverviewScreen.java b/src/main/java/eu/midnightdust/core/screen/MidnightConfigOverviewScreen.java index 3c15144..38c124c 100755 --- a/src/main/java/eu/midnightdust/core/screen/MidnightConfigOverviewScreen.java +++ b/src/main/java/eu/midnightdust/core/screen/MidnightConfigOverviewScreen.java @@ -8,9 +8,9 @@ import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.Element; import net.minecraft.client.gui.Selectable; import net.minecraft.client.gui.screen.Screen; -import net.minecraft.client.gui.screen.ScreenTexts; import net.minecraft.client.gui.widget.*; import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.screen.ScreenTexts; import net.minecraft.text.*; import java.util.*; diff --git a/src/main/java/eu/midnightdust/lib/config/AutoCommand.java b/src/main/java/eu/midnightdust/lib/config/AutoCommand.java index 5bf2654..e63e39e 100644 --- a/src/main/java/eu/midnightdust/lib/config/AutoCommand.java +++ b/src/main/java/eu/midnightdust/lib/config/AutoCommand.java @@ -4,7 +4,7 @@ import com.mojang.brigadier.arguments.DoubleArgumentType; import com.mojang.brigadier.arguments.IntegerArgumentType; import com.mojang.brigadier.arguments.StringArgumentType; import com.mojang.brigadier.builder.LiteralArgumentBuilder; -import net.fabricmc.fabric.api.command.v1.CommandRegistrationCallback; +import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback; import net.minecraft.server.command.CommandManager; import net.minecraft.server.command.ServerCommandSource; import net.minecraft.text.Text; @@ -27,7 +27,7 @@ public class AutoCommand { command(); LiteralArgumentBuilder finalized = CommandManager.literal("midnightconfig").requires(source -> source.hasPermissionLevel(2)).then(command); - CommandRegistrationCallback.EVENT.register((dispatcher, dedicated) -> dispatcher.register(finalized)); + CommandRegistrationCallback.EVENT.register((dispatcher, dedicated, registrationEnvironment) -> dispatcher.register(finalized)); } private void command() { diff --git a/src/main/java/eu/midnightdust/lib/config/AutoModMenu.java b/src/main/java/eu/midnightdust/lib/config/AutoModMenu.java index ab576cc..dee7475 100755 --- a/src/main/java/eu/midnightdust/lib/config/AutoModMenu.java +++ b/src/main/java/eu/midnightdust/lib/config/AutoModMenu.java @@ -5,9 +5,12 @@ import com.terraformersmc.modmenu.api.ModMenuApi; import eu.midnightdust.core.config.MidnightLibConfig; import java.util.HashMap; +import java.util.List; import java.util.Map; public class AutoModMenu implements ModMenuApi { + protected static List hiddenMods = List.of(); + @Override public ConfigScreenFactory getModConfigScreenFactory() { return parent -> MidnightLibConfig.getScreen(parent,"midnightlib"); @@ -16,7 +19,14 @@ public class AutoModMenu implements ModMenuApi { @Override public Map> getProvidedConfigScreenFactories() { HashMap> map = new HashMap<>(); - MidnightConfig.configClass.forEach((modid, cClass) -> map.put(modid, parent -> MidnightConfig.getScreen(parent, modid))); + MidnightConfig.configClass.forEach((modid, cClass) -> { + if (!hiddenMods.contains(modid)) + map.put(modid, parent -> MidnightConfig.getScreen(parent, modid)); + } + ); return map; } -} + public static void hideFromModMenu(String hiddenMod) { + hiddenMods.add(hiddenMod); + } +} \ No newline at end of file diff --git a/src/main/java/eu/midnightdust/lib/config/MidnightConfig.java b/src/main/java/eu/midnightdust/lib/config/MidnightConfig.java index 9d88b9f..d128c3c 100755 --- a/src/main/java/eu/midnightdust/lib/config/MidnightConfig.java +++ b/src/main/java/eu/midnightdust/lib/config/MidnightConfig.java @@ -13,13 +13,13 @@ import net.minecraft.client.gui.DrawableHelper; import net.minecraft.client.gui.Element; import net.minecraft.client.gui.Selectable; import net.minecraft.client.gui.screen.Screen; -import net.minecraft.client.gui.screen.ScreenTexts; import net.minecraft.client.gui.widget.ButtonWidget; import net.minecraft.client.gui.widget.ClickableWidget; import net.minecraft.client.gui.widget.ElementListWidget; import net.minecraft.client.gui.widget.TextFieldWidget; import net.minecraft.client.resource.language.I18n; import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.screen.ScreenTexts; import net.minecraft.text.Style; import net.minecraft.text.Text; import net.minecraft.util.Formatting; diff --git a/src/main/java/eu/midnightdust/lib/config/MidnightConfigExample.java b/src/main/java/eu/midnightdust/lib/config/MidnightConfigExample.java deleted file mode 100755 index 553702a..0000000 --- a/src/main/java/eu/midnightdust/lib/config/MidnightConfigExample.java +++ /dev/null @@ -1,59 +0,0 @@ -package eu.midnightdust.lib.config; - -import java.util.List; - -/** MidnightConfig documentation & examples: - * Thanks for choosing MidnightConfig - the fancy, tiny and lightweight config library. - * If you want to use the lib in your mod, here are some examples and hints: - * Every option in a MidnightConfig class has to be public and static, so we can access it from other classes. - * The config class also has to extend MidnightConfig*/ - -public class MidnightConfigExample extends MidnightConfig { - - @Comment public static Comment text1; // Comments are rendered like an option without a button and are excluded from the config file - @Entry public static int fabric = 16777215; // Example for a int option - @Entry public static double world = 1.4D; // Example for a double option - @Entry public static boolean showInfo = true; // Example for a boolean option - @Entry public static String name = "Hello World!"; // Example for a string option - @Entry public static TestEnum testEnum = TestEnum.FABRIC; // Example for a enum option - public enum TestEnum { // Enums allow the user to cycle through predefined options - QUILT, FABRIC - } - @Entry(min=69,max=420) public static int hello = 420; // - The entered number has to be larger than 69 and smaller than 420 - @Entry(width = 7, min = 7, isColor = true, name = "I am a color!") public static String titleColor = "#ffffff"; // The isColor property adds a preview box for a hexadecimal color - @Entry(name = "I am an array list!") public static List arrayList = List.of("String1", "String2"); // Array String Lists are also supported - // The name field can be used to specify a custom translation string or plain text - - public static int imposter = 16777215; // - Entries without an @Entry or @Comment annotation are ignored - - /* - The .json language file for your config class could look similar to this: - { - "modid.midnightconfig.title":"I am a title", // "*.midnightconfig.title" defines the title of the screen - "modid.midnightconfig.text1":"I am a comment *u*", // Translation for the comment "text1" defined in the example config - "modid.midnightconfig.name":"I am a string!", // Translation for the field "name" defined in the example config - - "modid.midnightconfig.name.tooltip":"uwu \n I am a new line", - // When hovering over the option "showInfo", - // this text will appear as a tooltip. - // "\n" inserts a line break. - - "modid.midnightconfig.fabric":"I am an int", - "modid.midnightconfig.world":"I am a double", - "modid.midnightconfig.showInfo":"I am a boolean", - "modid.midnightconfig.hello":"I am a limited int!", - "modid.midnightconfig.testEnum":"I am an enum!", - "modid.midnightconfig.enum.TestEnum.FABRIC":"Fancy", - "modid.midnightconfig.enum.TestEnum.QUILT":"Fabulous" - } - To initialize the config you have to call "MidnightConfig.init("modid", MidnightConfigExample.class)" in your ModInitializer - - To get an instance of the config screen you have to call "MidnightConfig.getScreen(parent, "modid");" - - The code in your ModMenu integration class would look something like this: - @Override - public ConfigScreenFactory getModConfigScreenFactory() { - return parent -> MidnightConfig.getScreen(parent, "modid"); - } - */ -} diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 6219587..3681d0f 100755 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -32,13 +32,9 @@ }, "mixins": [ - "midnightcore.mixins.json" + "midnightlib.mixins.json" ], - "depends": { - "fabric-renderer-registries-v1": "*" - }, - "custom": { "modmenu": { "links": { diff --git a/src/main/resources/midnightcore.mixins.json b/src/main/resources/midnightlib.mixins.json similarity index 100% rename from src/main/resources/midnightcore.mixins.json rename to src/main/resources/midnightlib.mixins.json