aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/rei/impl
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2019-11-23 17:28:16 +0800
committershedaniel <daniel@shedaniel.me>2019-11-23 17:28:16 +0800
commitf8f2ffab63792a8ccd02b8627c0d2c0b2fad71fd (patch)
tree0a838a2d32528e535117615d440e2b7dd1609efd /src/main/java/me/shedaniel/rei/impl
parentf1980316ccd614258d98d8b7f906809c12a2c217 (diff)
downloadRoughlyEnoughItems-f8f2ffab63792a8ccd02b8627c0d2c0b2fad71fd.tar.gz
RoughlyEnoughItems-f8f2ffab63792a8ccd02b8627c0d2c0b2fad71fd.tar.bz2
RoughlyEnoughItems-f8f2ffab63792a8ccd02b8627c0d2c0b2fad71fd.zip
3.2.10
Diffstat (limited to 'src/main/java/me/shedaniel/rei/impl')
-rw-r--r--src/main/java/me/shedaniel/rei/impl/ClientHelperImpl.java8
-rw-r--r--src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java77
-rw-r--r--src/main/java/me/shedaniel/rei/impl/ConfigObjectImpl.java257
-rw-r--r--src/main/java/me/shedaniel/rei/impl/OldConfigObjectImpl.java381
-rw-r--r--src/main/java/me/shedaniel/rei/impl/ScreenHelper.java8
5 files changed, 275 insertions, 456 deletions
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.")
- .withName("lightGrayRecipeBorder")
- .build();
-
- private ConfigValue<Boolean> appendModNames = ConfigValue.builder(Boolean.class)
- .withParent(appearance)
- .withDefaultValue(false)
- .withComment("Declares whether REI should append mod names to item stacks.")
- .withName("appendModNames")
- .build();
-
- private ConfigValue<Boolean> villagerScreenPermanentScrollBar = ConfigValue.builder(Boolean.class)
- .withParent(appearance)
- .withDefaultValue(false)
- .withComment("Declares how the scrollbar in villager screen act.")
- .withName("villagerScreenPermanentScrollBar")
- .build();
-
- private ConfigValue<Boolean> registerRecipesInAnotherThread = ConfigValue.builder(Boolean.class)
- .withParent(technical)
- .withDefaultValue(true)
- .withName("registerRecipesInAnotherThread")
- .build();
-
- private ConfigValue<Boolean> scrollingEntryListWidget = ConfigValue.builder(Boolean.class)
- .withParent(appearance)
- .withDefaultValue(false)
- .withComment("Declares whether if entry list widget is scrolled.")
- .withName("scrollingEntryListWidget")
- .build();
-
- private ConfigValue<Boolean> overlayVisible = ConfigValue.builder(Boolean.class)
- .withParent(general)
- .withDefaultValue(true)
- .withName("overlayVisible")
- .build();
-
- public OldConfigObjectImpl() throws FiberException {
-
- }
-
- @Override
- public Node getGeneral() {
- return general;
- }
-
- @Override
- public ConfigNode getConfigNode() {
- return configNode;
- }
-
- @Override
- public ConfigValue<Boolean> getOverlayVisibleNode() {
- return overlayVisible;
- }
-
- @Override
- public boolean isLighterButtonHover() {
- return this.lighterButtonHover.getValue();
- }
-
- @Override
- public void setLighterButtonHover(boolean lighterButtonHover) {
- this.lighterButtonHover.setValue(lighterButtonHover);
- }
-
- @Override
- public boolean isOverlayVisible() {
- return this.overlayVisible.getValue();
- }
-
- @Override
- public void setOverlayVisible(boolean overlayVisible) {
- this.overlayVisible.setValue(overlayVisible);
- }
-
- @Override
- public boolean isCheating() {
- return cheating.getValue();
- }
-
- @Override
- public void setCheating(boolean cheating) {
- this.cheating.setValue(cheating);
- }
-
- @Override
- public ItemListOrdering getItemListOrdering() {
- return itemListOrdering.getValue().getOrdering();
- }
-
- @Override
- public boolean isItemListAscending() {
- return itemListOrdering.getValue().isAscending();
- }
-
- @Override
- public boolean isUsingDarkTheme() {
- return darkTheme.getValue().booleanValue();
- }
-
- @Override
- public boolean isToastDisplayedOnCopyIdentifier() {
- return toastDisplayedOnCopyIdentifier.getValue();
- }
-
- @Override
- public boolean doesRenderEntryExtraOverlay() {
- return renderEntryExtraOverlay.getValue().booleanValue();
- }
-
- @Override
- public boolean isEntryListWidgetScrolled() {
- return scrollingEntryListWidget.getValue().booleanValue();
- }
-
- @Override
- public boolean shouldAppendModNames() {
- return appendModNames.getValue().booleanValue();
- }
-
- @Override
- public RecipeScreenType getRecipeScreenType() {
- return recipeScreenType.getValue();
- }
-
- @Override
- public void setRecipeScreenType(RecipeScreenType recipeScreenType) {
- this.recipeScreenType.setValue(recipeScreenType);
- }
-
- @Override
- public boolean isLoadingDefaultPlugin() {
- return loadDefaultPlugin.getValue().booleanValue();
- }
-
- @Override
- public SearchFieldLocation getSearchFieldLocation() {
- return sideSearchField.getValue();
- }
-
- @Override
- public boolean isLeftHandSidePanel() {
- return mirrorItemPanel.getValue().booleanValue();
- }
-
- @Override
- public boolean isCraftableFilterEnabled() {
- return enableCraftableOnlyButton.getValue().booleanValue();
- }
-
- @Override
- public String getGamemodeCommand() {
- return gamemodeCommand.getValue();
- }
-
- @Override
- public String getGiveCommand() {
- return giveCommand.getValue();
- }
-
- @Override
- public String getWeatherCommand() {
- return weatherCommand.getValue();
- }
-
- @Override
- public int getMaxRecipePerPage() {
- return maxRecipePerPage.getValue().intValue();
- }
-
- @Override
- public boolean doesShowUtilsButtons() {
- return showUtilsButtons.getValue().booleanValue();
- }
-
- @Override
- public boolean doesDisableRecipeBook() {
- return disableRecipeBook.getValue().booleanValue();
- }
-
- @Override
- public boolean doesFixTabCloseContainer() {
- return fixTabCloseContainer.getValue().booleanValue();
- }
-
- @Override
- public boolean areClickableRecipeArrowsEnabled() {
- return clickableRecipeArrows.getValue().booleanValue();
- }
-
- @Override
- public ItemCheatingMode getItemCheatingMode() {
- return itemCheatingMode.getValue();
- }
-
- @Override
- public boolean isUsingLightGrayRecipeBorder() {
- return lightGrayRecipeBorder.getValue().booleanValue();
- }
-
- @Override
- public boolean doesVillagerScreenHavePermanentScrollBar() {
- return villagerScreenPermanentScrollBar.getValue().booleanValue();
- }
-
- @Override
- public boolean doesRegisterRecipesInAnotherThread() {
- return registerRecipesInAnotherThread.getValue().booleanValue();
- }
-}
diff --git a/src/main/java/me/shedaniel/rei/impl/ScreenHelper.java b/src/main/java/me/shedaniel/rei/impl/ScreenHelper.java
index 986c6979d..49b761021 100644
--- a/src/main/java/me/shedaniel/rei/impl/ScreenHelper.java
+++ b/src/main/java/me/shedaniel/rei/impl/ScreenHelper.java
@@ -13,7 +13,6 @@ import me.shedaniel.rei.api.ConfigManager;
import me.shedaniel.rei.gui.ContainerScreenOverlay;
import me.shedaniel.rei.gui.OverlaySearchField;
import me.shedaniel.rei.listeners.ContainerScreenHooks;
-import me.zeroeightsix.fiber.exception.FiberException;
import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.fabric.api.event.client.ClientTickCallback;
import net.minecraft.client.MinecraftClient;
@@ -24,7 +23,6 @@ import net.minecraft.item.ItemStack;
import net.minecraft.util.ActionResult;
import org.apache.logging.log4j.util.TriConsumer;
-import java.io.IOException;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Optional;
@@ -77,11 +75,7 @@ public class ScreenHelper implements ClientModInitializer {
public static void toggleOverlayVisible() {
ConfigManager.getInstance().getConfig().setOverlayVisible(!ConfigManager.getInstance().getConfig().isOverlayVisible());
- try {
- ConfigManager.getInstance().saveConfig();
- } catch (IOException | FiberException e) {
- e.printStackTrace();
- }
+ ConfigManager.getInstance().saveConfig();
}
public static Optional<ContainerScreenOverlay> getOptionalOverlay() {