aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel
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
parentf1980316ccd614258d98d8b7f906809c12a2c217 (diff)
downloadRoughlyEnoughItems-f8f2ffab63792a8ccd02b8627c0d2c0b2fad71fd.tar.gz
RoughlyEnoughItems-f8f2ffab63792a8ccd02b8627c0d2c0b2fad71fd.tar.bz2
RoughlyEnoughItems-f8f2ffab63792a8ccd02b8627c0d2c0b2fad71fd.zip
3.2.10
Diffstat (limited to 'src/main/java/me/shedaniel')
-rw-r--r--src/main/java/me/shedaniel/rei/api/ConfigManager.java12
-rw-r--r--src/main/java/me/shedaniel/rei/api/ConfigObject.java19
-rw-r--r--src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java6
-rw-r--r--src/main/java/me/shedaniel/rei/gui/PreRecipeViewingScreen.java8
-rw-r--r--src/main/java/me/shedaniel/rei/gui/entries/RecipeEntry.java2
-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
-rw-r--r--src/main/java/me/shedaniel/rei/utils/ClothScreenRegistry.java85
11 files changed, 291 insertions, 572 deletions
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.")
- .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