diff options
| author | shedaniel <daniel@shedaniel.me> | 2019-11-23 17:28:16 +0800 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2019-11-23 17:28:16 +0800 |
| commit | f8f2ffab63792a8ccd02b8627c0d2c0b2fad71fd (patch) | |
| tree | 0a838a2d32528e535117615d440e2b7dd1609efd | |
| parent | f1980316ccd614258d98d8b7f906809c12a2c217 (diff) | |
| download | RoughlyEnoughItems-f8f2ffab63792a8ccd02b8627c0d2c0b2fad71fd.tar.gz RoughlyEnoughItems-f8f2ffab63792a8ccd02b8627c0d2c0b2fad71fd.tar.bz2 RoughlyEnoughItems-f8f2ffab63792a8ccd02b8627c0d2c0b2fad71fd.zip | |
3.2.10
13 files changed, 293 insertions, 582 deletions
diff --git a/build.gradle b/build.gradle index 220270613..68823b488 100755 --- a/build.gradle +++ b/build.gradle @@ -57,10 +57,6 @@ dependencies { modImplementation("me.shedaniel.cloth:config-2:${cloth_config_version}") { transitive = false } - modApi("me.shedaniel.cloth:fiber2cloth:1.2.1") { - transitive = false - } - modApi "me.zeroeightsix:fiber:0.6.0-7" modApi("me.sargunvohra.mcmods:autoconfig1u:${project.autoconfig1u}") if (includeDep) { include("me.shedaniel.cloth:cloth-events:${cloth_events_version}") { @@ -69,13 +65,9 @@ dependencies { include("me.shedaniel.cloth:config-2:${cloth_config_version}") { transitive = false } - include("me.shedaniel.cloth:fiber2cloth:1.2.1") { - transitive = false - } include("me.sargunvohra.mcmods:autoconfig1u:${project.autoconfig1u}") { transitive = false } - include "me.zeroeightsix:fiber:0.6.0-7" } modImplementation "io.github.prospector:modmenu:${modmenu_version}" compile "org.lwjgl:lwjgl-jemalloc:3.2.1" diff --git a/gradle.properties b/gradle.properties index 66ff27e6b..b98f53eb0 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ -mod_version=3.2.9-unstable +mod_version=3.2.10-unstable minecraft_version=1.15-pre1 yarn_version=1.15-pre1+build.3 fabricloader_version=0.7.1+build.173 @@ -6,4 +6,4 @@ cloth_events_version=1.0.1-unstable.201911010702 cloth_config_version=2.4-unstable.201911031154 modmenu_version=1.7.15-unstable.19w42a+build.11 fabric_api=0.4.13+build.263-1.15 -autoconfig1u=1.1.0
\ No newline at end of file +autoconfig1u=1.2.3
\ No newline at end of file diff --git a/src/main/java/me/shedaniel/rei/api/ConfigManager.java b/src/main/java/me/shedaniel/rei/api/ConfigManager.java index 3d14cc131..277836859 100644 --- a/src/main/java/me/shedaniel/rei/api/ConfigManager.java +++ b/src/main/java/me/shedaniel/rei/api/ConfigManager.java @@ -6,7 +6,6 @@ package me.shedaniel.rei.api; import me.shedaniel.rei.RoughlyEnoughItemsCore; -import me.zeroeightsix.fiber.exception.FiberException; import net.minecraft.client.gui.screen.Screen; import java.io.IOException; @@ -20,17 +19,8 @@ public interface ConfigManager { /** * Saves the config. - * - * @throws IOException when error - */ - void saveConfig() throws IOException, FiberException; - - /** - * Loads the config from the json file, creates the file if not found. - * - * @throws IOException when error */ - void loadConfig() throws IOException, FiberException; + void saveConfig(); /** * Gets the config instance diff --git a/src/main/java/me/shedaniel/rei/api/ConfigObject.java b/src/main/java/me/shedaniel/rei/api/ConfigObject.java index d6cb52a60..a7d42c074 100644 --- a/src/main/java/me/shedaniel/rei/api/ConfigObject.java +++ b/src/main/java/me/shedaniel/rei/api/ConfigObject.java @@ -9,18 +9,14 @@ import me.shedaniel.rei.gui.config.ItemCheatingMode; import me.shedaniel.rei.gui.config.ItemListOrdering; import me.shedaniel.rei.gui.config.RecipeScreenType; import me.shedaniel.rei.gui.config.SearchFieldLocation; -import me.zeroeightsix.fiber.tree.ConfigNode; -import me.zeroeightsix.fiber.tree.ConfigValue; -import me.zeroeightsix.fiber.tree.Node; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; public interface ConfigObject { - Node getGeneral(); - - ConfigNode getConfigNode(); - - ConfigValue<Boolean> getOverlayVisibleNode(); - boolean isLighterButtonHover(); void setLighterButtonHover(boolean lighterButtonHover); @@ -83,4 +79,9 @@ public interface ConfigObject { boolean doesRegisterRecipesInAnotherThread(); + @Retention(RetentionPolicy.RUNTIME) + @Target({ElementType.FIELD}) + public @interface DontApplyFieldName { + } + } diff --git a/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java b/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java index e79890274..c9b811408 100644 --- a/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java +++ b/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java @@ -164,7 +164,7 @@ public class ContainerScreenOverlay extends Widget { if (setPage) page = MathHelper.clamp(page, 0, getTotalPage()); - + widgets.add(new ButtonWidget(new Rectangle(ConfigManager.getInstance().getConfig().isLeftHandSidePanel() ? window.getScaledWidth() - 30 : 10, 10, 20, 20), "") { @Override public void onPressed() { @@ -182,9 +182,9 @@ public class ContainerScreenOverlay extends Widget { Rectangle bounds = getBounds(); if (ClientHelper.getInstance().isCheating() && RoughlyEnoughItemsCore.hasOperatorPermission()) { if (RoughlyEnoughItemsCore.hasPermissionToUsePackets()) - fill(bounds.x + 1, bounds.y+ 1, bounds.getMaxX() - 1, bounds.getMaxY() - 1, 721354752); + fill(bounds.x + 1, bounds.y + 1, bounds.getMaxX() - 1, bounds.getMaxY() - 1, 721354752); else - fill(bounds.x+ 1, bounds.y+ 1, bounds.getMaxX() - 1, bounds.getMaxY() - 1, 1476440063); + fill(bounds.x + 1, bounds.y + 1, bounds.getMaxX() - 1, bounds.getMaxY() - 1, 1476440063); } MinecraftClient.getInstance().getTextureManager().bindTexture(CHEST_GUI_TEXTURE); RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F); diff --git a/src/main/java/me/shedaniel/rei/gui/PreRecipeViewingScreen.java b/src/main/java/me/shedaniel/rei/gui/PreRecipeViewingScreen.java index e9226eea3..6d36abacf 100644 --- a/src/main/java/me/shedaniel/rei/gui/PreRecipeViewingScreen.java +++ b/src/main/java/me/shedaniel/rei/gui/PreRecipeViewingScreen.java @@ -16,7 +16,6 @@ import me.shedaniel.rei.gui.widget.ButtonWidget; import me.shedaniel.rei.gui.widget.Widget; import me.shedaniel.rei.gui.widget.WidgetWithBounds; import me.shedaniel.rei.impl.ScreenHelper; -import me.zeroeightsix.fiber.exception.FiberException; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.Element; import net.minecraft.client.gui.screen.Screen; @@ -28,7 +27,6 @@ import net.minecraft.text.TranslatableText; import net.minecraft.util.Formatting; import net.minecraft.util.Identifier; -import java.io.IOException; import java.util.Collections; import java.util.List; import java.util.Map; @@ -55,11 +53,7 @@ public class PreRecipeViewingScreen extends Screen { @Override public void onPressed() { ConfigManager.getInstance().getConfig().setRecipeScreenType(original ? RecipeScreenType.ORIGINAL : RecipeScreenType.VILLAGER); - try { - ConfigManager.getInstance().saveConfig(); - } catch (IOException | FiberException e) { - e.printStackTrace(); - } + ConfigManager.getInstance().saveConfig(); ClientHelper.getInstance().openRecipeViewingScreen(map); } }); diff --git a/src/main/java/me/shedaniel/rei/gui/entries/RecipeEntry.java b/src/main/java/me/shedaniel/rei/gui/entries/RecipeEntry.java index 6939837cb..c0ff3bf53 100644 --- a/src/main/java/me/shedaniel/rei/gui/entries/RecipeEntry.java +++ b/src/main/java/me/shedaniel/rei/gui/entries/RecipeEntry.java @@ -104,9 +104,9 @@ public abstract class RecipeEntry extends DrawableHelper implements EntryStack { return this; } + @SuppressWarnings("deprecation") @Override public <T> ObjectHolder<T> getSetting(Settings<T> settings) { - //noinspection deprecation return new ObjectHolderImpl<>(settings.getDefaultValue()); } diff --git a/src/main/java/me/shedaniel/rei/impl/ClientHelperImpl.java b/src/main/java/me/shedaniel/rei/impl/ClientHelperImpl.java index 63a8e3424..a4f6cfe16 100644 --- a/src/main/java/me/shedaniel/rei/impl/ClientHelperImpl.java +++ b/src/main/java/me/shedaniel/rei/impl/ClientHelperImpl.java @@ -16,7 +16,6 @@ import me.shedaniel.rei.gui.PreRecipeViewingScreen; import me.shedaniel.rei.gui.RecipeViewingScreen; import me.shedaniel.rei.gui.VillagerRecipeViewingScreen; import me.shedaniel.rei.gui.config.RecipeScreenType; -import me.zeroeightsix.fiber.exception.FiberException; import net.fabricmc.api.ClientModInitializer; import net.fabricmc.fabric.api.client.keybinding.FabricKeyBinding; import net.fabricmc.fabric.api.network.ClientSidePacketRegistry; @@ -38,7 +37,6 @@ import net.minecraft.util.Identifier; import net.minecraft.util.PacketByteBuf; import net.minecraft.util.registry.Registry; -import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -138,11 +136,7 @@ public class ClientHelperImpl implements ClientHelper, ClientModInitializer { @Override public void setCheating(boolean cheating) { ConfigManager.getInstance().getConfig().setCheating(cheating); - try { - ConfigManager.getInstance().saveConfig(); - } catch (IOException | FiberException e) { - e.printStackTrace(); - } + ConfigManager.getInstance().saveConfig(); } @Override diff --git a/src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java b/src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java index 212284db9..c270166fc 100644 --- a/src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java +++ b/src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java @@ -5,87 +5,40 @@ package me.shedaniel.rei.impl; +import me.sargunvohra.mcmods.autoconfig1u.AutoConfig; +import me.sargunvohra.mcmods.autoconfig1u.gui.ConfigScreenProvider; +import me.sargunvohra.mcmods.autoconfig1u.serializer.JanksonConfigSerializer; import me.shedaniel.rei.RoughlyEnoughItemsCore; import me.shedaniel.rei.api.ConfigManager; import me.shedaniel.rei.api.ConfigObject; import me.shedaniel.rei.api.annotations.Internal; -import me.zeroeightsix.fiber.JanksonSettings; -import me.zeroeightsix.fiber.exception.FiberException; -import net.fabricmc.loader.api.FabricLoader; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.resource.language.I18n; import net.minecraft.text.LiteralText; -import java.io.File; -import java.io.IOException; -import java.nio.file.Files; import java.util.List; @Deprecated @Internal public class ConfigManagerImpl implements ConfigManager { - private final File configFile; - private ConfigObject config; private boolean craftableOnly; public ConfigManagerImpl() { - this.configFile = new File(FabricLoader.getInstance().getConfigDirectory(), "roughlyenoughitems/config.json5"); this.craftableOnly = false; - try { - loadConfig(); - RoughlyEnoughItemsCore.LOGGER.info("[REI] Config is loaded."); - } catch (IOException | FiberException e) { - e.printStackTrace(); - } + AutoConfig.register(ConfigObjectImpl.class, JanksonConfigSerializer::new); + RoughlyEnoughItemsCore.LOGGER.info("[REI] Config is loaded."); } @Override - public void saveConfig() throws IOException, FiberException { - configFile.getParentFile().mkdirs(); - if (!configFile.exists() && !configFile.createNewFile()) { - RoughlyEnoughItemsCore.LOGGER.error("[REI] Failed to save config! Overwriting with default config."); - config = new OldConfigObjectImpl(); - return; - } - try { - new JanksonSettings().serialize(config.getConfigNode(), Files.newOutputStream(configFile.toPath()), false); - } catch (Exception e) { - e.printStackTrace(); - RoughlyEnoughItemsCore.LOGGER.error("[REI] Failed to save config! Overwriting with default config."); - config = new OldConfigObjectImpl(); - return; - } - } - - @Override - public void loadConfig() throws IOException, FiberException { - configFile.getParentFile().mkdirs(); - if (!configFile.exists() || !configFile.canRead()) { - RoughlyEnoughItemsCore.LOGGER.warn("[REI] Config not found! Creating one."); - config = new OldConfigObjectImpl(); - saveConfig(); - return; - } - boolean failed = false; - try { - config = new OldConfigObjectImpl(); - new JanksonSettings().deserialize(config.getConfigNode(), Files.newInputStream(configFile.toPath())); - } catch (Exception e) { - e.printStackTrace(); - failed = true; - } - if (failed || config == null) { - RoughlyEnoughItemsCore.LOGGER.error("[REI] Failed to load config! Overwriting with default config."); - config = new OldConfigObjectImpl(); - } - saveConfig(); + public void saveConfig() { + ((me.sargunvohra.mcmods.autoconfig1u.ConfigManager<ConfigObjectImpl>) AutoConfig.getConfigHolder(ConfigObjectImpl.class)).save(); } @Override public ConfigObject getConfig() { - return config; + return AutoConfig.getConfigHolder(ConfigObjectImpl.class).getConfig(); } @Override @@ -105,12 +58,14 @@ public class ConfigManagerImpl implements ConfigManager { @Override public Screen getConfigScreen(Screen parent) { - if (FabricLoader.getInstance().isModLoaded("cloth-config2")) { - try { - return Screen.class.cast(Class.forName("me.shedaniel.rei.utils.ClothScreenRegistry").getDeclaredMethod("getConfigScreen", Screen.class).invoke(null, parent)); - } catch (Exception e) { - e.printStackTrace(); - } + try { + ConfigScreenProvider<ConfigObjectImpl> provider = (ConfigScreenProvider<ConfigObjectImpl>) AutoConfig.getConfigScreen(ConfigObjectImpl.class, parent); + provider.setI13nFunction(manager -> "config.roughlyenoughitems"); + provider.setOptionFunction((baseI13n, field) -> field.isAnnotationPresent(ConfigObject.DontApplyFieldName.class) ? baseI13n : String.format("%s.%s", baseI13n, field.getName())); + provider.setCategoryFunction((baseI13n, categoryName) -> String.format("%s.%s", baseI13n, categoryName)); + return provider.get(); + } catch (Exception e) { + e.printStackTrace(); } return new Screen(new LiteralText("")) { @Override diff --git a/src/main/java/me/shedaniel/rei/impl/ConfigObjectImpl.java b/src/main/java/me/shedaniel/rei/impl/ConfigObjectImpl.java new file mode 100644 index 000000000..a4d89f58d --- /dev/null +++ b/src/main/java/me/shedaniel/rei/impl/ConfigObjectImpl.java @@ -0,0 +1,257 @@ +/* + * Roughly Enough Items by Danielshe. + * Licensed under the MIT License. + */ + +package me.shedaniel.rei.impl; + +import me.sargunvohra.mcmods.autoconfig1u.ConfigData; +import me.sargunvohra.mcmods.autoconfig1u.annotation.Config; +import me.sargunvohra.mcmods.autoconfig1u.annotation.ConfigEntry; +import me.sargunvohra.mcmods.autoconfig1u.shadowed.blue.endless.jankson.Comment; +import me.shedaniel.rei.api.ConfigObject; +import me.shedaniel.rei.api.annotations.Internal; +import me.shedaniel.rei.gui.config.*; + +@Deprecated +@Internal +@Config(name = "roughlyenoughitems/config") +public class ConfigObjectImpl implements ConfigObject, ConfigData { + + @ConfigEntry.Category("!general") + @ConfigEntry.Gui.TransitiveObject + @DontApplyFieldName + private General general = new General(); + + @ConfigEntry.Category("appearance") + @ConfigEntry.Gui.TransitiveObject + @DontApplyFieldName + private Appearance appearance = new Appearance(); + + @ConfigEntry.Category("modules") + @ConfigEntry.Gui.TransitiveObject + @DontApplyFieldName + private Modules modules = new Modules(); + + @ConfigEntry.Category("technical") + @ConfigEntry.Gui.TransitiveObject + @DontApplyFieldName + private Technical technical = new Technical(); + + @Override + public boolean isLighterButtonHover() { + return appearance.lighterButtonHover; + } + + @Override + public void setLighterButtonHover(boolean lighterButtonHover) { + appearance.lighterButtonHover = lighterButtonHover; + } + + @Override + public boolean isOverlayVisible() { + return general.overlayVisible; + } + + @Override + public void setOverlayVisible(boolean overlayVisible) { + general.overlayVisible = overlayVisible; + } + + @Override + public boolean isCheating() { + return general.cheating; + } + + @Override + public void setCheating(boolean cheating) { + general.cheating = cheating; + } + + @Override + public ItemListOrdering getItemListOrdering() { + return appearance.itemListOrdering.getOrdering(); + } + + @Override + public boolean isItemListAscending() { + return appearance.itemListOrdering.isAscending(); + } + + @Override + public boolean isUsingDarkTheme() { + return appearance.darkTheme; + } + + @Override + public boolean isToastDisplayedOnCopyIdentifier() { + return modules.toastDisplayedOnCopyIdentifier; + } + + @Override + public boolean doesRenderEntryExtraOverlay() { + return appearance.renderEntryExtraOverlay; + } + + @Override + public boolean isEntryListWidgetScrolled() { + return appearance.scrollingEntryListWidget; + } + + @Override + public boolean shouldAppendModNames() { + return appearance.appendModNames; + } + + @Override + public RecipeScreenType getRecipeScreenType() { + return appearance.recipeScreenType; + } + + @Override + public void setRecipeScreenType(RecipeScreenType recipeScreenType) { + appearance.recipeScreenType = recipeScreenType; + } + + @Override + public boolean isLoadingDefaultPlugin() { + return technical.loadDefaultPlugin; + } + + @Override + public SearchFieldLocation getSearchFieldLocation() { + return appearance.searchFieldLocation; + } + + @Override + public boolean isLeftHandSidePanel() { + return appearance.mirrorItemPanel; + } + + @Override + public boolean isCraftableFilterEnabled() { + return modules.enableCraftableOnlyButton; + } + + @Override + public String getGamemodeCommand() { + return technical.gamemodeCommand; + } + + @Override + public String getGiveCommand() { + return technical.giveCommand; + } + + @Override + public String getWeatherCommand() { + return technical.weatherCommand; + } + + @Override + public int getMaxRecipePerPage() { + return appearance.maxRecipePerPage; + } + + @Override + public boolean doesShowUtilsButtons() { + return modules.showUtilsButtons; + } + + @Override + public boolean doesDisableRecipeBook() { + return modules.disableRecipeBook; + } + + @Override + public boolean doesFixTabCloseContainer() { + return modules.fixTabCloseContainer; + } + + @Override + public boolean areClickableRecipeArrowsEnabled() { + return appearance.clickableRecipeArrows; + } + + @Override + public ItemCheatingMode getItemCheatingMode() { + return appearance.itemCheatingMode; + } + + @Override + public boolean isUsingLightGrayRecipeBorder() { + return appearance.lightGrayRecipeBorder; + } + + @Override + public boolean doesVillagerScreenHavePermanentScrollBar() { + return appearance.villagerScreenPermanentScrollBar; + } + + @Override + public boolean doesRegisterRecipesInAnotherThread() { + return technical.registerRecipesInAnotherThread; + } + + public static class General { + @Comment("Declares whether cheating mode is on.") + private boolean cheating = false; + @Comment("Declares whether REI is visible.") + @ConfigEntry.Gui.Excluded + private boolean overlayVisible = true; + } + + public static class Appearance { + @Comment("The ordering of the items on the item panel.") + private ItemListOrderingConfig itemListOrdering = ItemListOrderingConfig.REGISTRY_ASCENDING; + @Comment("Declares the appearance of REI windows.") + private boolean darkTheme = false; + @Comment("Whether REI should render entry's overlay.\nExample: Enchantment Glint") + private boolean renderEntryExtraOverlay = true; + @Comment("The ordering of the items on the item panel.") + private RecipeScreenType recipeScreenType = RecipeScreenType.UNSET; + @Comment("Declares the position of the search field.") + private SearchFieldLocation searchFieldLocation = SearchFieldLocation.CENTER; + @Comment("Declares the position of the item list panel.") + private boolean mirrorItemPanel = false; + @Comment("Declares the maximum amount of recipes displayed in a page if possible.") + @ConfigEntry.BoundedDiscrete(min = 2, max = 99) + private int maxRecipePerPage = 3; + @Comment("Declares whether REI should lighten the button if hovered.") + private boolean lighterButtonHover = true; + private boolean clickableRecipeArrows = true; + private ItemCheatingMode itemCheatingMode = ItemCheatingMode.REI_LIKE; + @Comment("Declares the appearance of recipe's border.") + private boolean lightGrayRecipeBorder = false; + @Comment("Declares whether REI should append mod names to item stacks.") + private boolean appendModNames = true; + @Comment("Declares how the scrollbar in villager screen should act.") + private boolean villagerScreenPermanentScrollBar = false; + @Comment("Declares whether if entry list widget is scrolled.") + private boolean scrollingEntryListWidget = false; + } + + public static class Technical { + @Comment("To disable REI's default plugin.\nDon't change this unless you understand what you are doing!") + private boolean loadDefaultPlugin = true; + @Comment("Declares the command used to change gamemode.") + private String gamemodeCommand = "/gamemode {gamemode}"; + @Comment("Declares the command used in servers to cheat items.") + private String giveCommand = "/give {player_name} {item_identifier}{nbt} {count}"; + @Comment("Declares the command used to change weather.") + private String weatherCommand = "/weather {weather}"; + private boolean registerRecipesInAnotherThread = true; + } + + public static class Modules { + @Comment("Declares whether the craftable filter button is enabled.") + private boolean enableCraftableOnlyButton = true; + private boolean toastDisplayedOnCopyIdentifier = true; + @Comment("Declares whether the utils buttons are shown.") + private boolean showUtilsButtons = false; + @Comment("Declares whether REI should remove the recipe book.") + private boolean disableRecipeBook = false; + @Comment("Declares whether REI should fix closing container with tab.") + private boolean fixTabCloseContainer = false; + } +} diff --git a/src/main/java/me/shedaniel/rei/impl/OldConfigObjectImpl.java b/src/main/java/me/shedaniel/rei/impl/OldConfigObjectImpl.java deleted file mode 100644 index 38071b59d..000000000 --- a/src/main/java/me/shedaniel/rei/impl/OldConfigObjectImpl.java +++ /dev/null @@ -1,381 +0,0 @@ -/* - * Roughly Enough Items by Danielshe. - * Licensed under the MIT License. - */ - -package me.shedaniel.rei.impl; - -import me.shedaniel.rei.api.ConfigObject; -import me.shedaniel.rei.api.annotations.Internal; -import me.shedaniel.rei.gui.config.*; -import me.zeroeightsix.fiber.exception.FiberException; -import me.zeroeightsix.fiber.tree.ConfigNode; -import me.zeroeightsix.fiber.tree.ConfigValue; -import me.zeroeightsix.fiber.tree.Node; - -@Deprecated -@Internal -public class OldConfigObjectImpl implements ConfigObject { - - public ConfigNode configNode = new ConfigNode(); - - private Node general = configNode.fork("!general"); - private Node appearance = configNode.fork("appearance"); - private Node modules = configNode.fork("modules"); - private Node technical = configNode.fork("technical"); - - private ConfigValue<Boolean> cheating = ConfigValue.builder(Boolean.class) - .withParent(general) - .withDefaultValue(false) - .withComment("Declares whether cheating mode is on.") - .withName("cheating") - .build(); - - private ConfigValue<ItemListOrderingConfig> itemListOrdering = ConfigValue.builder(ItemListOrderingConfig.class) - .withParent(appearance) - .withDefaultValue(ItemListOrderingConfig.REGISTRY_ASCENDING) - .withComment("The ordering of the items on the item panel.") - .withName("itemListOrdering") - .build(); - - private ConfigValue<Boolean> darkTheme = ConfigValue.builder(Boolean.class) - .withParent(appearance) - .withDefaultValue(false) - .withComment("Declares the appearance of REI windows.") - .withName("darkTheme") - .build(); - - private ConfigValue<Boolean> renderEntryExtraOverlay = ConfigValue.builder(Boolean.class) - .withParent(appearance) - .withDefaultValue(true) - .withComment("Whether REI should render entry's overlay.\nExample: Enchantment Glint") - .withName("renderEntryExtraOverlay") - .build(); - - private ConfigValue<RecipeScreenType> recipeScreenType = ConfigValue.builder(RecipeScreenType.class) - .withParent(appearance) - .withDefaultValue(RecipeScreenType.UNSET) - .withComment("The ordering of the items on the item panel.") - .withName("recipeScreenType") - .build(); - - private ConfigValue<Boolean> loadDefaultPlugin = ConfigValue.builder(Boolean.class) - .withParent(technical) - .withDefaultValue(true) - .withComment("To disable REI's default plugin.\nDon't change this unless you understand what you are doing") - .withName("loadDefaultPlugin") - .build(); - - private ConfigValue<SearchFieldLocation> sideSearchField = ConfigValue.builder(SearchFieldLocation.class) - .withParent(appearance) - .withDefaultValue(SearchFieldLocation.CENTER) - .withComment("Declares the position of the search field.") - .withName("searchFieldLocation") - .build(); - - private ConfigValue<Boolean> mirrorItemPanel = ConfigValue.builder(Boolean.class) - .withParent(appearance) - .withDefaultValue(false) - .withComment("Declares the position of the item list panel.") - .withName("mirrorItemPanel") - .build(); - - private ConfigValue<Boolean> enableCraftableOnlyButton = ConfigValue.builder(Boolean.class) - .withParent(modules) - .withDefaultValue(true) - .withComment("Declares whether the craftable filter button is enabled.") - .withName("enableCraftableOnlyButton") - .build(); - - private ConfigValue<Boolean> toastDisplayedOnCopyIdentifier = ConfigValue.builder(Boolean.class) - .withParent(modules) - .withDefaultValue(true) - .withName("toastDisplayedOnCopyIdentifier") - .build(); - - private ConfigValue<String> gamemodeCommand = ConfigValue.builder(String.class) - .withParent(technical) - .withDefaultValue("/gamemode {gamemode}") - .withComment("Declares the command used to change gamemode.") - .withName("gamemodeCommand") - .build(); - - private ConfigValue<String> giveCommand = ConfigValue.builder(String.class) - .withParent(technical) - .withDefaultValue("/give {player_name} {item_identifier}{nbt} {count}") - .withComment("Declares the command used in servers to cheat items.") - .withName("giveCommand") - .build(); - - private ConfigValue<String> weatherCommand = ConfigValue.builder(String.class) - .withParent(technical) - .withDefaultValue("/weather {weather}") - .withComment("Declares the command used to change weather.") - .withName("weatherCommand") - .build(); - - private ConfigValue<Integer> maxRecipePerPage = ConfigValue.builder(Integer.class) - .withParent(appearance) - .withDefaultValue(3) - .withComment("Declares the maximum amount of recipes displayed in a page if possible.") - .withName("maxRecipePerPage") - .constraints() - .minNumerical(2) - .maxNumerical(99) - .finish() - .build(); - - private ConfigValue<Boolean> showUtilsButtons = ConfigValue.builder(Boolean.class) - .withParent(modules) - .withDefaultValue(false) - .withComment("Declares whether the utils buttons are shown.") - .withName("showUtilsButtons") - .build(); - - private ConfigValue<Boolean> disableRecipeBook = ConfigValue.builder(Boolean.class) - .withParent(modules) - .withDefaultValue(false) - .withComment("Declares whether REI should remove the recipe book.") - .withName("disableRecipeBook") - .build(); - - private ConfigValue<Boolean> lighterButtonHover = ConfigValue.builder(Boolean.class) - .withParent(appearance) - .withDefaultValue(true) - .withComment("Declares whether REI should lighten the button if hovered.") - .withName("lighterButtonHover") - .build(); - - private ConfigValue<Boolean> fixTabCloseContainer = ConfigValue.builder(Boolean.class) - .withParent(modules) - .withDefaultValue(false) - .withComment("Declares whether REI should fix closing container with tab.") - .withName("fixTabCloseContainer") - .build(); - - private ConfigValue<Boolean> clickableRecipeArrows = ConfigValue.builder(Boolean.class) - .withParent(appearance) - .withDefaultValue(true) - .withName("clickableRecipeArrows") - .build(); - - private ConfigValue<ItemCheatingMode> itemCheatingMode = ConfigValue.builder(ItemCheatingMode.class) - .withParent(appearance) - .withDefaultValue(ItemCheatingMode.REI_LIKE) - .withName("itemCheatingMode") - .build(); - - private ConfigValue<Boolean> lightGrayRecipeBorder = ConfigValue.builder(Boolean.class) - .withParent(appearance) - .withDefaultValue(false) - .withComment("Declares the appearance of recipe's border.") - |
