MidnightLib 0.5.0 - Same as 0.4.2 but 1.19

This commit is contained in:
Motschen
2022-06-06 18:13:39 +02:00
parent da4e59ef3a
commit 7e1de67a5e
8 changed files with 23 additions and 76 deletions

View File

@@ -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

View File

@@ -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.*;

View File

@@ -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<ServerCommandSource> 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() {

View File

@@ -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<String> 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<String, ConfigScreenFactory<?>> getProvidedConfigScreenFactories() {
HashMap<String, ConfigScreenFactory<?>> 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);
}
}

View File

@@ -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;

View File

@@ -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<String> 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");
}
*/
}

View File

@@ -32,13 +32,9 @@
},
"mixins": [
"midnightcore.mixins.json"
"midnightlib.mixins.json"
],
"depends": {
"fabric-renderer-registries-v1": "*"
},
"custom": {
"modmenu": {
"links": {