Skip to content

Commit

Permalink
MidnightLib 1.5.1 - Fix AutoModMenu opt-out
Browse files Browse the repository at this point in the history
  • Loading branch information
Motschen committed Jun 6, 2022
1 parent 7e1de67 commit 1be14dc
Show file tree
Hide file tree
Showing 4 changed files with 64 additions and 2 deletions.
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ org.gradle.jvmargs=-Xmx1G
loader_version=0.14.6

# Mod Properties
mod_version = 0.5.0
mod_version = 0.5.1
maven_group = eu.midnightdust
archives_base_name = midnightlib

Expand Down
2 changes: 2 additions & 0 deletions src/main/java/eu/midnightdust/core/MidnightLibClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import eu.midnightdust.core.config.MidnightLibConfig;
import eu.midnightdust.hats.web.HatLoader;
import eu.midnightdust.hats.witch.WitchHatFeatureRenderer;
import eu.midnightdust.lib.config.AutoModMenu;
import eu.midnightdust.lib.config.MidnightConfig;
import eu.midnightdust.lib.util.MidnightColorUtil;
import net.fabricmc.api.ClientModInitializer;
Expand All @@ -16,6 +17,7 @@ public class MidnightLibClient implements ClientModInitializer {
@Override
public void onInitializeClient() {
MidnightConfig.init("midnightlib", MidnightLibConfig.class);
AutoModMenu.hideFromModMenu("puzzle");

EntityModelLayerRegistry.registerModelLayer(WitchHatFeatureRenderer.WITCH_HAT_MODEL_LAYER, WitchHatFeatureRenderer::getTexturedModelData);
if (MidnightLibConfig.special_hats) HatLoader.init();
Expand Down
3 changes: 2 additions & 1 deletion src/main/java/eu/midnightdust/lib/config/AutoModMenu.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,13 @@
import com.terraformersmc.modmenu.api.ModMenuApi;
import eu.midnightdust.core.config.MidnightLibConfig;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class AutoModMenu implements ModMenuApi {
protected static List<String> hiddenMods = List.of();
protected static List<String> hiddenMods = new ArrayList<>();

@Override
public ConfigScreenFactory<?> getModConfigScreenFactory() {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
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");
}
*/
}

0 comments on commit 1be14dc

Please sign in to comment.