From 8c6767041549785c061d328ce92976462173f99c Mon Sep 17 00:00:00 2001 From: sebseb7 Date: Thu, 29 Jun 2023 02:11:07 +0200 Subject: [PATCH] reformat code & config screens --- .../github/sebseb7/autotrade/AutoTrade.java | 14 +- .../github/sebseb7/autotrade/Reference.java | 9 +- .../autotrade/compat/modmenu/ModMenuImpl.java | 22 +- .../sebseb7/autotrade/config/Configs.java | 203 +++++++++--------- .../sebseb7/autotrade/config/Hotkeys.java | 23 +- .../sebseb7/autotrade/gui/GuiConfigs.java | 192 ++++++++--------- 6 files changed, 219 insertions(+), 244 deletions(-) diff --git a/src/main/java/com/github/sebseb7/autotrade/AutoTrade.java b/src/main/java/com/github/sebseb7/autotrade/AutoTrade.java index c369ca1..9d4ed8c 100644 --- a/src/main/java/com/github/sebseb7/autotrade/AutoTrade.java +++ b/src/main/java/com/github/sebseb7/autotrade/AutoTrade.java @@ -1,16 +1,12 @@ package com.github.sebseb7.autotrade; +import net.fabricmc.api.ModInitializer; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import fi.dy.masa.malilib.event.InitializationHandler; -import net.fabricmc.api.ModInitializer; -public class AutoTrade implements ModInitializer -{ - public static final Logger logger = LogManager.getLogger(Reference.MOD_ID); +public class AutoTrade implements ModInitializer { + public static final Logger logger = LogManager.getLogger(Reference.MOD_ID); - @Override - public void onInitialize() - { - } + @Override + public void onInitialize() {} } diff --git a/src/main/java/com/github/sebseb7/autotrade/Reference.java b/src/main/java/com/github/sebseb7/autotrade/Reference.java index d84fca4..d3ce280 100644 --- a/src/main/java/com/github/sebseb7/autotrade/Reference.java +++ b/src/main/java/com/github/sebseb7/autotrade/Reference.java @@ -2,9 +2,8 @@ package com.github.sebseb7.autotrade; import fi.dy.masa.malilib.util.StringUtils; -public class Reference -{ - public static final String MOD_ID = "autotrade"; - public static final String MOD_NAME = "Auto Trade"; - public static final String MOD_VERSION = StringUtils.getModVersionString(MOD_ID); +public class Reference { + public static final String MOD_ID = "autotrade"; + public static final String MOD_NAME = "Auto Trade"; + public static final String MOD_VERSION = StringUtils.getModVersionString(MOD_ID); } diff --git a/src/main/java/com/github/sebseb7/autotrade/compat/modmenu/ModMenuImpl.java b/src/main/java/com/github/sebseb7/autotrade/compat/modmenu/ModMenuImpl.java index 618fe14..f0be4a7 100644 --- a/src/main/java/com/github/sebseb7/autotrade/compat/modmenu/ModMenuImpl.java +++ b/src/main/java/com/github/sebseb7/autotrade/compat/modmenu/ModMenuImpl.java @@ -1,18 +1,16 @@ package com.github.sebseb7.autotrade.compat.modmenu; +import com.github.sebseb7.autotrade.gui.GuiConfigs; import com.terraformersmc.modmenu.api.ConfigScreenFactory; import com.terraformersmc.modmenu.api.ModMenuApi; -import com.github.sebseb7.autotrade.gui.GuiConfigs; -public class ModMenuImpl implements ModMenuApi -{ - @Override - public ConfigScreenFactory getModConfigScreenFactory() - { - return (screen) -> { - GuiConfigs gui = new GuiConfigs(); - gui.setParent(screen); - return gui; - }; - } +public class ModMenuImpl implements ModMenuApi { + @Override + public ConfigScreenFactory getModConfigScreenFactory() { + return (screen) -> { + GuiConfigs gui = new GuiConfigs(); + gui.setParent(screen); + return gui; + }; + } } diff --git a/src/main/java/com/github/sebseb7/autotrade/config/Configs.java b/src/main/java/com/github/sebseb7/autotrade/config/Configs.java index 42d8d3c..d1f778b 100644 --- a/src/main/java/com/github/sebseb7/autotrade/config/Configs.java +++ b/src/main/java/com/github/sebseb7/autotrade/config/Configs.java @@ -1,10 +1,7 @@ -package com.github.sebseb7.autotrade.config; +package com.github.sebseb7.autotrade.config; -import java.io.File; -import java.util.HashSet; -import java.util.Set; +import com.github.sebseb7.autotrade.Reference; import com.google.common.collect.ImmutableList; -import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import fi.dy.masa.malilib.config.ConfigUtils; @@ -12,111 +9,111 @@ import fi.dy.masa.malilib.config.IConfigHandler; import fi.dy.masa.malilib.config.IConfigValue; import fi.dy.masa.malilib.config.options.ConfigBoolean; import fi.dy.masa.malilib.config.options.ConfigInteger; +import fi.dy.masa.malilib.config.options.ConfigString; import fi.dy.masa.malilib.util.FileUtils; import fi.dy.masa.malilib.util.JsonUtils; -import com.github.sebseb7.autotrade.Reference; +import java.io.File; -public class Configs implements IConfigHandler -{ - private static final String CONFIG_FILE_NAME = Reference.MOD_ID + ".json"; +public class Configs implements IConfigHandler { + private static final String CONFIG_FILE_NAME = Reference.MOD_ID + ".json"; - public static class Generic - { - public static final ImmutableList OPTIONS = ImmutableList.of( - ); + public static class Generic { + public static final ConfigBoolean ENABLED = + new ConfigBoolean("enabled", false, "Do auto trading with villagers in range"); + public static final ConfigBoolean ENABLE_SELL = + new ConfigBoolean( + "enableSell", + false, + "Enable buying (if disabled emeralds from the emerald container are taken instead)"); + public static final ConfigString BUY_ITEM = + new ConfigString("buyItem", "minecraft:gold_ingot", "The item to sell for emerald."); + public static final ConfigBoolean ENABLE_BUY = + new ConfigBoolean( + "enableBuy", + false, + "Enable selling (if disabled emeralds are placed in the emerald container)"); + public static final ConfigString SELL_ITEM = + new ConfigString("sellItem", "minecraft:redstone", "The item to buy using emerald."); + public static final ConfigInteger MAX_INPUT_ITEMS = + new ConfigInteger( + "maxInputStacks", + 9, + 1, + 35, + "stacks to take from input container (or emerald container in buy-only mode)"); + public static final ConfigInteger INPUT_CONTAINER_X = + new ConfigInteger("inputContainerX", 0, -3000000, 30000000, "Input container X"); + public static final ConfigInteger INPUT_CONTAINER_Y = + new ConfigInteger("inputContainerY", 0, -64, 320, "Input container Y"); + public static final ConfigInteger INPUT_CONTAINER_Z = + new ConfigInteger("outputContainerZ", 0, -30000000, 30000000, "Input container Z"); + public static final ConfigInteger OUTPUT_CONTAINER_X = + new ConfigInteger("outputContainerX", 0, -3000000, 30000000, "Output container X"); + public static final ConfigInteger OUTPUT_CONTAINER_Y = + new ConfigInteger("outputContainerY", 0, -64, 320, "Output container Y"); + public static final ConfigInteger OUTPUT_CONTAINER_Z = + new ConfigInteger("outputContainerZ", 0, -30000000, 30000000, "Output container Z"); + public static final ConfigInteger EMERALD_CONTAINER_X = + new ConfigInteger("emeraldContainerX", 0, -3000000, 30000000, "Emerald container X"); + public static final ConfigInteger EMERALD_CONTAINER_Y = + new ConfigInteger("emeraldContainerY", 0, -64, 320, "Emerald container Y"); + public static final ConfigInteger EMERALD_CONTAINER_Z = + new ConfigInteger("emeraldContainerZ", 0, -30000000, 30000000, "Emerald container Z"); + + public static final ImmutableList OPTIONS = + ImmutableList.of( + ENABLED, + ENABLE_BUY, + BUY_ITEM, + ENABLE_SELL, + SELL_ITEM, + MAX_INPUT_ITEMS, + INPUT_CONTAINER_X, + INPUT_CONTAINER_Y, + INPUT_CONTAINER_Z, + OUTPUT_CONTAINER_X, + OUTPUT_CONTAINER_Y, + OUTPUT_CONTAINER_Z, + EMERALD_CONTAINER_X, + EMERALD_CONTAINER_Y, + EMERALD_CONTAINER_Z); + } + + public static void loadFromFile() { + File configFile = new File(FileUtils.getConfigDirectory(), CONFIG_FILE_NAME); + + if (configFile.exists() && configFile.isFile() && configFile.canRead()) { + JsonElement element = JsonUtils.parseJsonFile(configFile); + + if (element != null && element.isJsonObject()) { + JsonObject root = element.getAsJsonObject(); + + ConfigUtils.readConfigBase(root, "Generic", Generic.OPTIONS); + ConfigUtils.readConfigBase(root, "Hotkeys", Hotkeys.HOTKEY_LIST); + } } + } - public static class Toggles - { - public static final ImmutableList OPTIONS = ImmutableList.of( - ); + public static void saveToFile() { + File dir = FileUtils.getConfigDirectory(); + + if ((dir.exists() && dir.isDirectory()) || dir.mkdirs()) { + JsonObject root = new JsonObject(); + + ConfigUtils.writeConfigBase(root, "Generic", Generic.OPTIONS); + ConfigUtils.writeConfigBase(root, "Hotkeys", Hotkeys.HOTKEY_LIST); + + JsonUtils.writeJsonToFile(root, new File(dir, CONFIG_FILE_NAME)); } + } - public static final Set GUI_BLACKLIST = new HashSet<>(); - public static final Set SLOT_BLACKLIST = new HashSet<>(); + @Override + public void load() { + loadFromFile(); + } - public static void loadFromFile() - { - File configFile = new File(FileUtils.getConfigDirectory(), CONFIG_FILE_NAME); - - if (configFile.exists() && configFile.isFile() && configFile.canRead()) - { - JsonElement element = JsonUtils.parseJsonFile(configFile); - - if (element != null && element.isJsonObject()) - { - JsonObject root = element.getAsJsonObject(); - - ConfigUtils.readConfigBase(root, "Generic", Generic.OPTIONS); - ConfigUtils.readConfigBase(root, "Hotkeys", Hotkeys.HOTKEY_LIST); - ConfigUtils.readConfigBase(root, "Toggles", Toggles.OPTIONS); - - getStrings(root, GUI_BLACKLIST, "guiBlacklist"); - getStrings(root, SLOT_BLACKLIST, "slotBlacklist"); - } - } - - } - - public static void saveToFile() - { - File dir = FileUtils.getConfigDirectory(); - - if ((dir.exists() && dir.isDirectory()) || dir.mkdirs()) - { - JsonObject root = new JsonObject(); - - ConfigUtils.writeConfigBase(root, "Generic", Generic.OPTIONS); - ConfigUtils.writeConfigBase(root, "Hotkeys", Hotkeys.HOTKEY_LIST); - ConfigUtils.writeConfigBase(root, "Toggles", Toggles.OPTIONS); - - writeStrings(root, GUI_BLACKLIST, "guiBlacklist"); - writeStrings(root, SLOT_BLACKLIST, "slotBlacklist"); - - JsonUtils.writeJsonToFile(root, new File(dir, CONFIG_FILE_NAME)); - } - } - - @Override - public void load() - { - loadFromFile(); - } - - @Override - public void save() - { - saveToFile(); - } - - private static void getStrings(JsonObject obj, Set outputSet, String arrayName) - { - outputSet.clear(); - - if (JsonUtils.hasArray(obj, arrayName)) - { - JsonArray arr = obj.getAsJsonArray(arrayName); - final int size = arr.size(); - - for (int i = 0; i < size; i++) - { - outputSet.add(arr.get(i).getAsString()); - } - } - } - - private static void writeStrings(JsonObject obj, Set inputSet, String arrayName) - { - if (inputSet.isEmpty() == false) - { - JsonArray arr = new JsonArray(); - - for (String str : inputSet) - { - arr.add(str); - } - - obj.add(arrayName, arr); - } - } + @Override + public void save() { + saveToFile(); + } } diff --git a/src/main/java/com/github/sebseb7/autotrade/config/Hotkeys.java b/src/main/java/com/github/sebseb7/autotrade/config/Hotkeys.java index 4710996..165aed7 100644 --- a/src/main/java/com/github/sebseb7/autotrade/config/Hotkeys.java +++ b/src/main/java/com/github/sebseb7/autotrade/config/Hotkeys.java @@ -1,13 +1,22 @@ package com.github.sebseb7.autotrade.config; -import java.util.List; import com.google.common.collect.ImmutableList; import fi.dy.masa.malilib.config.options.ConfigHotkey; -import fi.dy.masa.malilib.hotkeys.KeyAction; -import fi.dy.masa.malilib.hotkeys.KeybindSettings; +import java.util.List; -public class Hotkeys -{ - public static final List HOTKEY_LIST = ImmutableList.of( - ); +public class Hotkeys { + public static final ConfigHotkey TOGGLE_KEY = + new ConfigHotkey("toggleTrading", "", "Enables / disables auto trading"); + public static final ConfigHotkey SET_INPUT_KEY = + new ConfigHotkey("setInputContainer", "", "Sets the input (item to sell) container"); + public static final ConfigHotkey SET_OUTPUT_KEY = + new ConfigHotkey("setOutputContainer", "", "Sets the output (item bought) container"); + public static final ConfigHotkey SET_EMERALD_KEY = + new ConfigHotkey("setEmeraldContainer", "", "Set the emerald container"); + public static final ConfigHotkey OPEN_GUI_SETTINGS = + new ConfigHotkey("openGuiSettings", "", "Open the Config GUI"); + + public static final List HOTKEY_LIST = + ImmutableList.of( + TOGGLE_KEY, SET_INPUT_KEY, SET_OUTPUT_KEY, SET_EMERALD_KEY, OPEN_GUI_SETTINGS); } diff --git a/src/main/java/com/github/sebseb7/autotrade/gui/GuiConfigs.java b/src/main/java/com/github/sebseb7/autotrade/gui/GuiConfigs.java index 3d12b78..e06fcf3 100644 --- a/src/main/java/com/github/sebseb7/autotrade/gui/GuiConfigs.java +++ b/src/main/java/com/github/sebseb7/autotrade/gui/GuiConfigs.java @@ -1,130 +1,106 @@ package com.github.sebseb7.autotrade.gui; -import java.util.Collections; -import java.util.List; -import com.google.common.collect.ImmutableList; import com.github.sebseb7.autotrade.Reference; import com.github.sebseb7.autotrade.config.Configs; import com.github.sebseb7.autotrade.config.Hotkeys; +import com.google.common.collect.ImmutableList; import fi.dy.masa.malilib.config.IConfigBase; import fi.dy.masa.malilib.gui.GuiConfigsBase; import fi.dy.masa.malilib.gui.button.ButtonBase; import fi.dy.masa.malilib.gui.button.ButtonGeneric; import fi.dy.masa.malilib.gui.button.IButtonActionListener; import fi.dy.masa.malilib.util.StringUtils; +import java.util.Collections; +import java.util.List; -public class GuiConfigs extends GuiConfigsBase -{ - private static ConfigGuiTab tab = ConfigGuiTab.GENERIC; +public class GuiConfigs extends GuiConfigsBase { + private static ConfigGuiTab tab = ConfigGuiTab.GENERIC; - public GuiConfigs() - { - super(10, 50, Reference.MOD_ID, null, "autotrade.gui.title.configs"); + public GuiConfigs() { + super(10, 50, Reference.MOD_ID, null, "autotrade.gui.title.configs"); + } + + @Override + public void initGui() { + super.initGui(); + this.clearOptions(); + + int x = 10; + int y = 26; + + for (ConfigGuiTab tab : ConfigGuiTab.VALUES) { + x += this.createButton(x, y, -1, tab); + } + } + + private int createButton(int x, int y, int width, ConfigGuiTab tab) { + ButtonGeneric button = new ButtonGeneric(x, y, width, 20, tab.getDisplayName()); + button.setEnabled(GuiConfigs.tab != tab); + this.addButton(button, new ButtonListener(tab, this)); + + return button.getWidth() + 2; + } + + @Override + protected int getConfigWidth() { + ConfigGuiTab tab = GuiConfigs.tab; + + if (tab == ConfigGuiTab.GENERIC) { + return 200; + } + + return super.getConfigWidth(); + } + + @Override + public List getConfigs() { + List configs; + ConfigGuiTab tab = GuiConfigs.tab; + + if (tab == ConfigGuiTab.GENERIC) { + configs = Configs.Generic.OPTIONS; + } else if (tab == ConfigGuiTab.HOTKEYS) { + configs = Hotkeys.HOTKEY_LIST; + } else { + return Collections.emptyList(); + } + + return ConfigOptionWrapper.createFor(configs); + } + + private static class ButtonListener implements IButtonActionListener { + private final GuiConfigs parent; + private final ConfigGuiTab tab; + + public ButtonListener(ConfigGuiTab tab, GuiConfigs parent) { + this.tab = tab; + this.parent = parent; } @Override - public void initGui() - { - super.initGui(); - this.clearOptions(); + public void actionPerformedWithButton(ButtonBase button, int mouseButton) { + GuiConfigs.tab = this.tab; - int x = 10; - int y = 26; + this.parent.reCreateListWidget(); // apply the new config width + this.parent.getListWidget().resetScrollbarPosition(); + this.parent.initGui(); + } + } - for (ConfigGuiTab tab : ConfigGuiTab.VALUES) - { - x += this.createButton(x, y, -1, tab); - } + public enum ConfigGuiTab { + GENERIC("autotrade.gui.button.config_gui.generic"), + HOTKEYS("autotrade.gui.button.config_gui.hotkeys"); + + private final String translationKey; + + public static final ImmutableList VALUES = ImmutableList.copyOf(values()); + + ConfigGuiTab(String translationKey) { + this.translationKey = translationKey; } - private int createButton(int x, int y, int width, ConfigGuiTab tab) - { - ButtonGeneric button = new ButtonGeneric(x, y, width, 20, tab.getDisplayName()); - button.setEnabled(GuiConfigs.tab != tab); - this.addButton(button, new ButtonListener(tab, this)); - - return button.getWidth() + 2; - } - - @Override - protected int getConfigWidth() - { - ConfigGuiTab tab = GuiConfigs.tab; - - if (tab == ConfigGuiTab.GENERIC || tab == ConfigGuiTab.TOGGLES) - { - return 100; - } - - return super.getConfigWidth(); - } - - @Override - public List getConfigs() - { - List configs; - ConfigGuiTab tab = GuiConfigs.tab; - - if (tab == ConfigGuiTab.GENERIC) - { - configs = Configs.Generic.OPTIONS; - } - else if (tab == ConfigGuiTab.TOGGLES) - { - configs = Configs.Toggles.OPTIONS; - } - else if (tab == ConfigGuiTab.HOTKEYS) - { - configs = Hotkeys.HOTKEY_LIST; - } - else - { - return Collections.emptyList(); - } - - return ConfigOptionWrapper.createFor(configs); - } - - private static class ButtonListener implements IButtonActionListener - { - private final GuiConfigs parent; - private final ConfigGuiTab tab; - - public ButtonListener(ConfigGuiTab tab, GuiConfigs parent) - { - this.tab = tab; - this.parent = parent; - } - - @Override - public void actionPerformedWithButton(ButtonBase button, int mouseButton) - { - GuiConfigs.tab = this.tab; - - this.parent.reCreateListWidget(); // apply the new config width - this.parent.getListWidget().resetScrollbarPosition(); - this.parent.initGui(); - } - } - - public enum ConfigGuiTab - { - GENERIC ("autotrade.gui.button.config_gui.generic"), - TOGGLES ("autotrade.gui.button.config_gui.toggles"), - HOTKEYS ("autotrade.gui.button.config_gui.hotkeys"); - - private final String translationKey; - - public static final ImmutableList VALUES = ImmutableList.copyOf(values()); - - ConfigGuiTab(String translationKey) - { - this.translationKey = translationKey; - } - - public String getDisplayName() - { - return StringUtils.translate(this.translationKey); - } + public String getDisplayName() { + return StringUtils.translate(this.translationKey); } + } }