diff --git a/src/main/java/com/gtnewhorizon/gtnhlib/config/ConfigurationManager.java b/src/main/java/com/gtnewhorizon/gtnhlib/config/ConfigurationManager.java index c92ab13..f1a7e2f 100644 --- a/src/main/java/com/gtnewhorizon/gtnhlib/config/ConfigurationManager.java +++ b/src/main/java/com/gtnewhorizon/gtnhlib/config/ConfigurationManager.java @@ -4,7 +4,9 @@ import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.nio.file.Path; +import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -216,6 +218,22 @@ public static List getConfigElements(Class configClass) throw })).collect(Collectors.toList()); } + @SuppressWarnings({ "rawtypes" }) + public static List getConfigElementsMulti(Class... configClasses) throws ConfigException { + switch (configClasses.length) { + case 0: + return Collections.emptyList(); + case 1: + return getConfigElements(configClasses[0]); + default: + val result = new ArrayList(); + for (val configClass : configClasses) { + result.addAll(getConfigElements(configClass)); + } + return result; + } + } + private static File minecraftHome() { return Launch.minecraftHome != null ? Launch.minecraftHome : new File("."); } diff --git a/src/main/java/com/gtnewhorizon/gtnhlib/config/SimpleGuiConfig.java b/src/main/java/com/gtnewhorizon/gtnhlib/config/SimpleGuiConfig.java index 182ad97..36695ed 100644 --- a/src/main/java/com/gtnewhorizon/gtnhlib/config/SimpleGuiConfig.java +++ b/src/main/java/com/gtnewhorizon/gtnhlib/config/SimpleGuiConfig.java @@ -19,4 +19,15 @@ public SimpleGuiConfig(GuiScreen parent, Class configClass, String modID, Str false, modName + " Configuration"); } + + public SimpleGuiConfig(GuiScreen parent, String modID, String modName, Class... configClasses) + throws ConfigException { + super( + parent, + ConfigurationManager.getConfigElementsMulti(configClasses), + modID, + false, + false, + modName + " Configuration"); + } }