From f0aac9cac78fc14e2991741061c67b622c039f37 Mon Sep 17 00:00:00 2001 From: DeDiamondPro <67508414+DeDiamondPro@users.noreply.github.com> Date: Tue, 10 May 2022 17:20:24 +0200 Subject: new category system --- .../polyfrost/oneconfig/config/interfaces/Config.java | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'src/main/java/cc/polyfrost/oneconfig/config/interfaces') diff --git a/src/main/java/cc/polyfrost/oneconfig/config/interfaces/Config.java b/src/main/java/cc/polyfrost/oneconfig/config/interfaces/Config.java index e8ffe42..35115b1 100644 --- a/src/main/java/cc/polyfrost/oneconfig/config/interfaces/Config.java +++ b/src/main/java/cc/polyfrost/oneconfig/config/interfaces/Config.java @@ -6,6 +6,7 @@ import cc.polyfrost.oneconfig.config.core.ConfigCore; import cc.polyfrost.oneconfig.config.data.Mod; import cc.polyfrost.oneconfig.config.data.OptionCategory; import cc.polyfrost.oneconfig.config.data.OptionPage; +import cc.polyfrost.oneconfig.config.data.OptionSubcategory; import cc.polyfrost.oneconfig.config.profiles.Profiles; import cc.polyfrost.oneconfig.gui.OneConfigGui; import cc.polyfrost.oneconfig.gui.elements.config.*; @@ -84,6 +85,10 @@ public class Config { ConfigPage option = field.getAnnotation(ConfigPage.class); if (!page.categories.containsKey(option.category())) page.categories.put(option.category(), new OptionCategory()); + OptionCategory category = page.categories.get(option.category()); + if (category.subcategories.size() == 0 || !category.subcategories.get(category.subcategories.size() - 1).getName().equals(option.subcategory())) + category.subcategories.add(new OptionSubcategory(option.subcategory())); + OptionSubcategory subcategory = category.subcategories.get(category.subcategories.size() - 1); OptionPage newPage = new OptionPage(option.name(), mod); try { field.setAccessible(true); @@ -91,10 +96,10 @@ public class Config { generateOptionList(object.getClass(), newPage, mod); switch (option.location()) { case TOP: - page.categories.get(option.category()).topPages.add(new ConfigPageButton(field, option.name(), option.description(), newPage)); + subcategory.topButtons.add(new ConfigPageButton(field, option.name(), option.description(), newPage)); break; case BOTTOM: - page.categories.get(option.category()).bottomPages.add(new ConfigPageButton(field, option.name(), option.description(), newPage)); + subcategory.bottomButtons.add(new ConfigPageButton(field, option.name(), option.description(), newPage)); break; } } catch (IllegalAccessException e) { @@ -105,9 +110,10 @@ public class Config { Option option = field.getAnnotation(Option.class); if (!page.categories.containsKey(option.category())) page.categories.put(option.category(), new OptionCategory()); - if (!page.categories.get(option.category()).subcategories.containsKey(option.subcategory())) - page.categories.get(option.category()).subcategories.put(option.subcategory(), new ArrayList<>()); - ArrayList options = page.categories.get(option.category()).subcategories.get(option.subcategory()); + OptionCategory category = page.categories.get(option.category()); + if (category.subcategories.size() == 0 || !category.subcategories.get(category.subcategories.size() - 1).getName().equals(option.subcategory())) + category.subcategories.add(new OptionSubcategory(option.subcategory())); + ArrayList options = category.subcategories.get(category.subcategories.size() - 1).options; switch (option.type()) { case SWITCH: options.add(new ConfigSwitch(field, option.name(), option.size())); @@ -136,6 +142,9 @@ public class Config { case COLOR: options.add(new ConfigColorElement(field, option.name(), option.size())); break; + case HEADER: + options.add(new ConfigHeader(field, option.name(), option.size())); + break; } } } -- cgit From e299255d82e69e461893ce8ff0ec945c253d945f Mon Sep 17 00:00:00 2001 From: DeDiamondPro <67508414+DeDiamondPro@users.noreply.github.com> Date: Tue, 10 May 2022 17:48:05 +0200 Subject: button --- src/main/java/cc/polyfrost/oneconfig/config/interfaces/Config.java | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/main/java/cc/polyfrost/oneconfig/config/interfaces') diff --git a/src/main/java/cc/polyfrost/oneconfig/config/interfaces/Config.java b/src/main/java/cc/polyfrost/oneconfig/config/interfaces/Config.java index 35115b1..c00c62e 100644 --- a/src/main/java/cc/polyfrost/oneconfig/config/interfaces/Config.java +++ b/src/main/java/cc/polyfrost/oneconfig/config/interfaces/Config.java @@ -145,6 +145,9 @@ public class Config { case HEADER: options.add(new ConfigHeader(field, option.name(), option.size())); break; + case BUTTON: + options.add(new ConfigButton(field, option.name(), option.size(), option.buttonText())); + break; } } } -- cgit From c920e2c93970e0df1dc863afc70741ade6b3cec4 Mon Sep 17 00:00:00 2001 From: DeDiamondPro <67508414+DeDiamondPro@users.noreply.github.com> Date: Tue, 10 May 2022 18:22:56 +0200 Subject: new sidebar --- src/main/java/cc/polyfrost/oneconfig/config/interfaces/Config.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/main/java/cc/polyfrost/oneconfig/config/interfaces') diff --git a/src/main/java/cc/polyfrost/oneconfig/config/interfaces/Config.java b/src/main/java/cc/polyfrost/oneconfig/config/interfaces/Config.java index c00c62e..906153e 100644 --- a/src/main/java/cc/polyfrost/oneconfig/config/interfaces/Config.java +++ b/src/main/java/cc/polyfrost/oneconfig/config/interfaces/Config.java @@ -184,7 +184,7 @@ public class Config { Object object = adapter.fromJsonTree(value); field.setAccessible(true); field.set(this, object); - } catch (NoSuchFieldException | IllegalAccessException ignored) { + } catch (Exception ignored) { } } } -- cgit