From f7841ce562b3bd2283430fef22fd6e6acbadc18d Mon Sep 17 00:00:00 2001 From: alexcrea Date: Sun, 3 Mar 2024 13:48:51 +0100 Subject: [PATCH] progress on enchantment cost config gui --- .../alexcrea/cuanvil/gui/MainConfigGui.java | 14 ++- .../gui/config/AbstractEnchantConfigGui.java | 105 ++++++++++++++++++ .../cuanvil/gui/config/BasicConfigGui.java | 14 +-- .../gui/config/EnchantCostConfigGui.java | 63 +++++++++++ .../gui/config/EnchantLimitConfigGui.java | 93 +++------------- .../gui/config/settings/BoolSettingsGui.java | 6 +- .../settings/EnchantCostSettingsGui.java | 48 ++++++-- .../gui/config/settings/IntSettingsGui.java | 6 +- .../cuanvil/gui/util/GuiGlobalItems.java | 2 +- 9 files changed, 248 insertions(+), 103 deletions(-) create mode 100644 src/main/java/xyz/alexcrea/cuanvil/gui/config/AbstractEnchantConfigGui.java create mode 100644 src/main/java/xyz/alexcrea/cuanvil/gui/config/EnchantCostConfigGui.java diff --git a/src/main/java/xyz/alexcrea/cuanvil/gui/MainConfigGui.java b/src/main/java/xyz/alexcrea/cuanvil/gui/MainConfigGui.java index 8dd42a5..3e17b56 100644 --- a/src/main/java/xyz/alexcrea/cuanvil/gui/MainConfigGui.java +++ b/src/main/java/xyz/alexcrea/cuanvil/gui/MainConfigGui.java @@ -9,6 +9,7 @@ import org.bukkit.Material; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import xyz.alexcrea.cuanvil.gui.config.BasicConfigGui; +import xyz.alexcrea.cuanvil.gui.config.EnchantCostConfigGui; import xyz.alexcrea.cuanvil.gui.config.EnchantLimitConfigGui; import xyz.alexcrea.cuanvil.gui.util.GuiGlobalActions; import xyz.alexcrea.cuanvil.gui.util.GuiGlobalItems; @@ -60,18 +61,27 @@ public class MainConfigGui extends ChestGui { GuiItem enchantLimitItem = GuiGlobalItems.goToGuiItem(enchantLimitItemstack, EnchantLimitConfigGui.INSTANCE); pane.bindItem('2', enchantLimitItem); + // enchant cost item + ItemStack enchantCostItemstack = new ItemStack(Material.EXPERIENCE_BOTTLE); + ItemMeta enchantCostMeta = enchantCostItemstack.getItemMeta(); + + enchantCostMeta.setDisplayName("\u00A7aEnchantment Cost"); + enchantCostMeta.setLore(Collections.singletonList("\u00A77Click here to open enchantment costs menu")); + enchantCostItemstack.setItemMeta(enchantCostMeta); + + GuiItem enchantCostItem = GuiGlobalItems.goToGuiItem(enchantCostItemstack, EnchantCostConfigGui.INSTANCE); + pane.bindItem('3', enchantCostItem); + // WIP configuration items ItemStack wipItemstack = new ItemStack(Material.BARRIER); ItemMeta wipMeta = wipItemstack.getItemMeta(); wipMeta.setDisplayName("\u00A7cWIP"); wipItemstack.setItemMeta(wipMeta); - GuiItem wip3 = new GuiItem(wipItemstack, GuiGlobalActions.stayInPlace, CustomAnvil.instance); GuiItem wip4 = new GuiItem(wipItemstack, GuiGlobalActions.stayInPlace, CustomAnvil.instance); GuiItem wip5 = new GuiItem(wipItemstack, GuiGlobalActions.stayInPlace, CustomAnvil.instance); GuiItem wip6 = new GuiItem(wipItemstack, GuiGlobalActions.stayInPlace, CustomAnvil.instance); - pane.bindItem('3', wip3); pane.bindItem('4', wip4); pane.bindItem('5', wip5); pane.bindItem('6', wip6); diff --git a/src/main/java/xyz/alexcrea/cuanvil/gui/config/AbstractEnchantConfigGui.java b/src/main/java/xyz/alexcrea/cuanvil/gui/config/AbstractEnchantConfigGui.java new file mode 100644 index 0000000..a249be1 --- /dev/null +++ b/src/main/java/xyz/alexcrea/cuanvil/gui/config/AbstractEnchantConfigGui.java @@ -0,0 +1,105 @@ +package xyz.alexcrea.cuanvil.gui.config; + +import com.github.stefvanschie.inventoryframework.gui.GuiItem; +import com.github.stefvanschie.inventoryframework.pane.Orientable; +import com.github.stefvanschie.inventoryframework.pane.OutlinePane; +import com.github.stefvanschie.inventoryframework.pane.Pane; +import com.github.stefvanschie.inventoryframework.pane.PatternPane; +import com.github.stefvanschie.inventoryframework.pane.util.Pattern; +import io.delilaheve.CustomAnvil; +import org.bukkit.Material; +import org.bukkit.enchantments.Enchantment; +import xyz.alexcrea.cuanvil.gui.MainConfigGui; +import xyz.alexcrea.cuanvil.gui.ValueUpdatableGui; +import xyz.alexcrea.cuanvil.gui.config.settings.AbstractSettingGui; +import xyz.alexcrea.cuanvil.gui.util.GuiGlobalItems; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Comparator; +import java.util.List; + +public abstract class AbstractEnchantConfigGui extends ValueUpdatableGui { + + private final static Material SECONDARY_BACKGROUND_MATERIAL = Material.BLACK_STAINED_GLASS_PANE; + + protected AbstractEnchantConfigGui(String title){ + super(6, title, CustomAnvil.instance); + } + + PatternPane backItems; + OutlinePane filledEnchant; + protected void init(){ + // Back item panel + Pattern pattern = new Pattern( + "000000000", + "000000000", + "000000000", + "000000000", + "000000000", + "B11111111" + ); + backItems = new PatternPane(0, 0, 9, 6, Pane.Priority.LOW, pattern); + addPane(backItems); + + GuiGlobalItems.addBackItem(backItems, MainConfigGui.INSTANCE); + + GuiGlobalItems.addBackgroundItem(backItems); + backItems.bindItem('1', GuiGlobalItems.backgroundItem(SECONDARY_BACKGROUND_MATERIAL)); + + // enchant item panel + filledEnchant = new OutlinePane(0, 0, 9, 5); + filledEnchant.align(OutlinePane.Alignment.BEGIN); + filledEnchant.setOrientation(Orientable.Orientation.HORIZONTAL); + addPane(filledEnchant); + + prepareValues(); + updateGuiValues(); + } + + private List bookItemFactoryList; + protected void prepareValues(){ + bookItemFactoryList = new ArrayList<>(); + + List enchantments = Arrays.asList(Enchantment.values()); + enchantments.sort(Comparator.comparing(ench -> ench.getKey().getKey())); + + for (Enchantment enchant : enchantments) { + //String key = enchant.getKey().getKey().toLowerCase(Locale.ROOT); + //String prettyKey = StringUtil.snakeToUpperSpacedCase(key); + + T factory = getFactoryFromEnchant(enchant); + /*IntSettingsGui.factory(prettyKey, this, + SECTION_NAME+'.'+key, ConfigHolder.DEFAULT_CONFIG, 0, 255, + enchant.getMaxLevel(), + 1, 5, 10, 50, 100);*/ + + bookItemFactoryList.add(factory); + } + } + + @Override + public void updateGuiValues() { + // probably not the most efficient but hey ! it do the work + // TODO optimise one day.. maybe + + this.filledEnchant.clear(); + + for (T inventoryFactory : this.bookItemFactoryList) { + + GuiItem item = getItemFromFactory(inventoryFactory); + /*GuiGlobalItems.intSettingGuiItem(inventoryFactory, + Material.ENCHANTED_BOOK, + inventoryFactory.getTitle());*/ + this.filledEnchant.addItem(item); + } + + update(); + } + + + public abstract T getFactoryFromEnchant(Enchantment enchant); + + public abstract GuiItem getItemFromFactory(T inventoryFactory); + +} diff --git a/src/main/java/xyz/alexcrea/cuanvil/gui/config/BasicConfigGui.java b/src/main/java/xyz/alexcrea/cuanvil/gui/config/BasicConfigGui.java index d87381a..8f1d1a5 100644 --- a/src/main/java/xyz/alexcrea/cuanvil/gui/config/BasicConfigGui.java +++ b/src/main/java/xyz/alexcrea/cuanvil/gui/config/BasicConfigGui.java @@ -60,12 +60,12 @@ public class BasicConfigGui extends ValueUpdatableGui { protected void prepareValues(){ // limit repair item - this.limitRepairFactory = BoolSettingsGui.factory("\u00A78Limit Repair Cost ?",this, + this.limitRepairFactory = BoolSettingsGui.boolFactory("\u00A78Limit Repair Cost ?",this, ConfigOptions.LIMIT_REPAIR_COST, ConfigHolder.DEFAULT_CONFIG, ConfigOptions.DEFAULT_LIMIT_REPAIR); // rename cost item IntRange range = ConfigOptions.REPAIR_LIMIT_RANGE; - this.repairCostFactory = IntSettingsGui.factory("\u00A78Repair Cost Limit", this, + this.repairCostFactory = IntSettingsGui.intFactory("\u00A78Repair Cost Limit", this, ConfigOptions.LIMIT_REPAIR_VALUE, ConfigHolder.DEFAULT_CONFIG, range.getFirst(),range.getLast(), ConfigOptions.DEFAULT_LIMIT_REPAIR_VALUE, 1, 5, 10); @@ -80,32 +80,32 @@ public class BasicConfigGui extends ValueUpdatableGui { this.notNeededLimitValueItem = new GuiItem(item, GuiGlobalActions.stayInPlace, CustomAnvil.instance); // remove repair limit item - this.removeRepairLimit = BoolSettingsGui.factory("\u00A78Remove Repair Limit ?",this, + this.removeRepairLimit = BoolSettingsGui.boolFactory("\u00A78Remove Repair Limit ?",this, ConfigOptions.REMOVE_REPAIR_LIMIT, ConfigHolder.DEFAULT_CONFIG, ConfigOptions.DEFAULT_REMOVE_LIMIT); // item repair cost range = ConfigOptions.REPAIR_COST_RANGE; - this.itemRepairCost = IntSettingsGui.factory("\u00A78Item Repair Cost", this, + this.itemRepairCost = IntSettingsGui.intFactory("\u00A78Item Repair Cost", this, ConfigOptions.ITEM_REPAIR_COST, ConfigHolder.DEFAULT_CONFIG, range.getFirst(),range.getLast(), ConfigOptions.DEFAULT_ITEM_REPAIR_COST, 1, 5, 10, 50, 100); // unit repair cost - this.unitRepairCost = IntSettingsGui.factory("\u00A78Unit Repair Cost", this, + this.unitRepairCost = IntSettingsGui.intFactory("\u00A78Unit Repair Cost", this, ConfigOptions.UNIT_REPAIR_COST, ConfigHolder.DEFAULT_CONFIG, range.getFirst(),range.getLast(), ConfigOptions.DEFAULT_UNIT_REPAIR_COST, 1, 5, 10, 50, 100); // item rename cost range = ConfigOptions.ITEM_RENAME_COST_RANGE; - this.itemRenameCost = IntSettingsGui.factory("\u00A78Rename Cost", this, + this.itemRenameCost = IntSettingsGui.intFactory("\u00A78Rename Cost", this, ConfigOptions.ITEM_RENAME_COST, ConfigHolder.DEFAULT_CONFIG, range.getFirst(),range.getLast(), ConfigOptions.DEFAULT_ITEM_RENAME_COST, 1, 5, 10, 50, 100); // sacrifice illegal enchant cost range = ConfigOptions.SACRIFICE_ILLEGAL_COST_RANGE; - this.sacrificeIllegalEnchantCost = IntSettingsGui.factory("\u00A78Sacrifice Illegal Enchant Cost", this, + this.sacrificeIllegalEnchantCost = IntSettingsGui.intFactory("\u00A78Sacrifice Illegal Enchant Cost", this, ConfigOptions.SACRIFICE_ILLEGAL_COST, ConfigHolder.DEFAULT_CONFIG, range.getFirst(),range.getLast(), ConfigOptions.DEFAULT_SACRIFICE_ILLEGAL_COST, 1, 5, 10, 50, 100); diff --git a/src/main/java/xyz/alexcrea/cuanvil/gui/config/EnchantCostConfigGui.java b/src/main/java/xyz/alexcrea/cuanvil/gui/config/EnchantCostConfigGui.java new file mode 100644 index 0000000..9a0d58d --- /dev/null +++ b/src/main/java/xyz/alexcrea/cuanvil/gui/config/EnchantCostConfigGui.java @@ -0,0 +1,63 @@ +package xyz.alexcrea.cuanvil.gui.config; + +import com.github.stefvanschie.inventoryframework.gui.GuiItem; +import org.bukkit.Material; +import org.bukkit.enchantments.Enchantment; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; +import xyz.alexcrea.cuanvil.config.ConfigHolder; +import xyz.alexcrea.cuanvil.gui.config.settings.EnchantCostSettingsGui; +import xyz.alexcrea.cuanvil.gui.util.GuiGlobalItems; +import xyz.alexcrea.cuanvil.util.StringUtil; + +import java.util.Arrays; +import java.util.Locale; + +public class EnchantCostConfigGui extends AbstractEnchantConfigGui { + + private final static String SECTION_NAME = "enchant_values"; + + public final static EnchantCostConfigGui INSTANCE = new EnchantCostConfigGui(); + + static { + INSTANCE.init(); + } + + private EnchantCostConfigGui() { + super("\u00A78Enchantment Level Limit"); + + } + + @Override + public EnchantCostSettingsGui.EnchantCostSettingFactory getFactoryFromEnchant(Enchantment enchant) { + String key = enchant.getKey().getKey().toLowerCase(Locale.ROOT); + String prettyKey = StringUtil.snakeToUpperSpacedCase(key); + + return EnchantCostSettingsGui.enchFactory(prettyKey+" Level Cost", this, + SECTION_NAME+'.'+key, ConfigHolder.DEFAULT_CONFIG, 0, 255, + enchant.getMaxLevel(),4, + 1, 10, 50); + } + + @Override + public GuiItem getItemFromFactory(EnchantCostSettingsGui.EnchantCostSettingFactory factory) { + // Get item properties + int itemCost = factory.getConfiguredValue(); + int bookCost = factory.getConfiguredBookValue(); + StringBuilder itemName = new StringBuilder("\u00A7a").append(factory.getTitle()); + // Create item + ItemStack item = new ItemStack(Material.ENCHANTED_BOOK); + ItemMeta itemMeta = item.getItemMeta(); + + // Edit name and lore + itemMeta.setDisplayName(itemName.toString()); + itemMeta.setLore(Arrays.asList( + "\u00A77Book Cost: " + bookCost, + "\u00A77Item Cost: " + itemCost)); + + item.setItemMeta(itemMeta); + + return GuiGlobalItems.openSettingGuiItem(item, factory); + } + +} diff --git a/src/main/java/xyz/alexcrea/cuanvil/gui/config/EnchantLimitConfigGui.java b/src/main/java/xyz/alexcrea/cuanvil/gui/config/EnchantLimitConfigGui.java index cf90e1d..bda77b7 100644 --- a/src/main/java/xyz/alexcrea/cuanvil/gui/config/EnchantLimitConfigGui.java +++ b/src/main/java/xyz/alexcrea/cuanvil/gui/config/EnchantLimitConfigGui.java @@ -1,27 +1,18 @@ package xyz.alexcrea.cuanvil.gui.config; import com.github.stefvanschie.inventoryframework.gui.GuiItem; -import com.github.stefvanschie.inventoryframework.pane.Orientable; -import com.github.stefvanschie.inventoryframework.pane.OutlinePane; -import com.github.stefvanschie.inventoryframework.pane.Pane; -import com.github.stefvanschie.inventoryframework.pane.PatternPane; -import com.github.stefvanschie.inventoryframework.pane.util.Pattern; -import io.delilaheve.CustomAnvil; import org.bukkit.Material; import org.bukkit.enchantments.Enchantment; import xyz.alexcrea.cuanvil.config.ConfigHolder; -import xyz.alexcrea.cuanvil.gui.MainConfigGui; -import xyz.alexcrea.cuanvil.gui.ValueUpdatableGui; import xyz.alexcrea.cuanvil.gui.config.settings.IntSettingsGui; import xyz.alexcrea.cuanvil.gui.util.GuiGlobalItems; import xyz.alexcrea.cuanvil.util.StringUtil; -import java.util.*; +import java.util.Locale; -public class EnchantLimitConfigGui extends ValueUpdatableGui { +public class EnchantLimitConfigGui extends AbstractEnchantConfigGui { private final static String SECTION_NAME = "enchant_limits"; - private final static Material SECONDARY_BACKGROUND_MATERIAL = Material.BLACK_STAINED_GLASS_PANE; public final static EnchantLimitConfigGui INSTANCE = new EnchantLimitConfigGui(); @@ -29,77 +20,27 @@ public class EnchantLimitConfigGui extends ValueUpdatableGui { INSTANCE.init(); } - private EnchantLimitConfigGui(){ - super(6, "\u00A78Enchantment Level Limit", CustomAnvil.instance); + private EnchantLimitConfigGui() { + super("\u00A78Enchantment Level Limit"); } - PatternPane backItems; - OutlinePane filledEnchant; - private void init(){ - // Back item panel - Pattern pattern = new Pattern( - "000000000", - "000000000", - "000000000", - "000000000", - "000000000", - "B11111111" - ); - backItems = new PatternPane(0, 0, 9, 6, Pane.Priority.LOW, pattern); - addPane(backItems); - - GuiGlobalItems.addBackItem(backItems, MainConfigGui.INSTANCE); - - GuiGlobalItems.addBackgroundItem(backItems); - backItems.bindItem('1', GuiGlobalItems.backgroundItem(SECONDARY_BACKGROUND_MATERIAL)); - - // enchant item panel - filledEnchant = new OutlinePane(0, 0, 9, 5); - filledEnchant.align(OutlinePane.Alignment.BEGIN); - filledEnchant.setOrientation(Orientable.Orientation.HORIZONTAL); - addPane(filledEnchant); - - prepareValues(); - updateGuiValues(); - } - - private List bookItemFactoryList; - protected void prepareValues(){ - bookItemFactoryList = new ArrayList<>(); - - List enchantments = Arrays.asList(Enchantment.values()); - enchantments.sort(Comparator.comparing(ench -> ench.getKey().getKey())); - - for (Enchantment enchant : enchantments) { - String key = enchant.getKey().getKey().toLowerCase(Locale.ROOT); - String prettyKey = StringUtil.snakeToUpperSpacedCase(key); - - IntSettingsGui.IntSettingFactory factory = IntSettingsGui.factory(prettyKey, this, - SECTION_NAME+'.'+key, ConfigHolder.DEFAULT_CONFIG, 0, 255, - enchant.getMaxLevel(), - 1, 5, 10, 50, 100); - - bookItemFactoryList.add(factory); - } - } - @Override - public void updateGuiValues() { - // probably not the most efficient but hey ! it do the work - // TODO optimise one day.. maybe + public IntSettingsGui.IntSettingFactory getFactoryFromEnchant(Enchantment enchant) { + String key = enchant.getKey().getKey().toLowerCase(Locale.ROOT); + String prettyKey = StringUtil.snakeToUpperSpacedCase(key); - this.filledEnchant.clear(); + return IntSettingsGui.intFactory(prettyKey+" Level Limit", this, + SECTION_NAME+'.'+key, ConfigHolder.DEFAULT_CONFIG, 0, 255, + enchant.getMaxLevel(), + 1, 5, 10, 50, 100); + } - for (IntSettingsGui.IntSettingFactory inventoryFactory : this.bookItemFactoryList) { - - GuiItem item = GuiGlobalItems.intSettingGuiItem(inventoryFactory, - Material.ENCHANTED_BOOK, - inventoryFactory.getTitle()); - this.filledEnchant.addItem(item); - } - - update(); + @Override + public GuiItem getItemFromFactory(IntSettingsGui.IntSettingFactory inventoryFactory) { + return GuiGlobalItems.intSettingGuiItem(inventoryFactory, + Material.ENCHANTED_BOOK, + inventoryFactory.getTitle()); } } diff --git a/src/main/java/xyz/alexcrea/cuanvil/gui/config/settings/BoolSettingsGui.java b/src/main/java/xyz/alexcrea/cuanvil/gui/config/settings/BoolSettingsGui.java index 9e04c5a..b6369c2 100644 --- a/src/main/java/xyz/alexcrea/cuanvil/gui/config/settings/BoolSettingsGui.java +++ b/src/main/java/xyz/alexcrea/cuanvil/gui/config/settings/BoolSettingsGui.java @@ -115,9 +115,9 @@ public class BoolSettingsGui extends AbstractSettingGui{ return now != before; } - public static BoolSettingFactory factory(@NotNull String title, ValueUpdatableGui parent, - String configPath, ConfigHolder config, - boolean defaultVal){ + public static BoolSettingFactory boolFactory(@NotNull String title, ValueUpdatableGui parent, + String configPath, ConfigHolder config, + boolean defaultVal){ return new BoolSettingFactory( title,parent, configPath, config, diff --git a/src/main/java/xyz/alexcrea/cuanvil/gui/config/settings/EnchantCostSettingsGui.java b/src/main/java/xyz/alexcrea/cuanvil/gui/config/settings/EnchantCostSettingsGui.java index 28ae717..5cf52ad 100644 --- a/src/main/java/xyz/alexcrea/cuanvil/gui/config/settings/EnchantCostSettingsGui.java +++ b/src/main/java/xyz/alexcrea/cuanvil/gui/config/settings/EnchantCostSettingsGui.java @@ -6,6 +6,7 @@ import com.github.stefvanschie.inventoryframework.pane.util.Pattern; import io.delilaheve.CustomAnvil; import org.bukkit.Material; import org.bukkit.event.inventory.InventoryClickEvent; +import org.bukkit.inventory.ItemFlag; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import org.jetbrains.annotations.NotNull; @@ -15,6 +16,7 @@ import xyz.alexcrea.cuanvil.gui.util.GuiGlobalActions; import xyz.alexcrea.cuanvil.gui.util.GuiGlobalItems; import java.util.Arrays; +import java.util.Collections; import java.util.function.Consumer; public class EnchantCostSettingsGui extends IntSettingsGui { @@ -33,20 +35,43 @@ public class EnchantCostSettingsGui extends IntSettingsGui { this.step = holder.steps[0]; - updateValueDisplay(); - initStepsValue(); + initStaticItem(); } - @Override public Pattern getGuiPattern() { return new Pattern( - "abc1bMVP0", - "D001s-v+0", + "abc12MVP0", + "D0013-v+0", "B0010000S" ); } + private void initStaticItem() { + PatternPane pane = getPane(); + + // book display + ItemStack bookItemstack = new ItemStack(Material.BOOK); + ItemMeta bookMeta = bookItemstack.getItemMeta(); + + bookMeta.setDisplayName("\u00A7aEnchantment by Book Cost"); + bookMeta.setLore(Collections.singletonList("\u00A77Value on the right represent cost of enchantment for every level if combined by a book")); + bookItemstack.setItemMeta(bookMeta); + + // sword display + ItemStack swordItemstack = new ItemStack(Material.WOODEN_SWORD); + ItemMeta swordMeta = swordItemstack.getItemMeta(); + swordMeta.addItemFlags(ItemFlag.HIDE_ATTRIBUTES); + + swordMeta.setDisplayName("\u00A7aEnchantment by Sword Cost"); + swordMeta.setLore(Collections.singletonList("\u00A77Value on the right represent cost of enchantment for every level if combined by an item other than a book")); + swordItemstack.setItemMeta(swordMeta); + + pane.bindItem('1', GuiGlobalItems.backgroundItem(Material.BLACK_STAINED_GLASS_PANE)); + pane.bindItem('2', new GuiItem(bookItemstack, GuiGlobalActions.stayInPlace, CustomAnvil.instance)); + pane.bindItem('3', new GuiItem(swordItemstack, GuiGlobalActions.stayInPlace, CustomAnvil.instance)); + } + @Override protected void prepareReturnToDefault(){ ItemStack item = new ItemStack(Material.COMMAND_BLOCK); @@ -153,9 +178,10 @@ public class EnchantCostSettingsGui extends IntSettingsGui { @Override public boolean onSave() { + System.out.println("ON SAVE"); if(TEMPORARY_DO_SAVE_TO_DISK_EVERY_CHANGE){ holder.config.getConfig().set(holder.configPath+ITEM_PATH, now); - holder.config.getConfig().set(holder.configPath+BOOK_PATH, now); + holder.config.getConfig().set(holder.configPath+BOOK_PATH, nowBook); return holder.config.saveToDisk(TEMPORARY_DO_BACKUP_EVERY_SAVE); } return true; @@ -166,10 +192,10 @@ public class EnchantCostSettingsGui extends IntSettingsGui { return super.hadChange() || nowBook != beforeBook; } - public static EnchantCostSettingFactory factory(@NotNull String title, ValueUpdatableGui parent, - String configPath, ConfigHolder config, - int min, int max, int defaultItemVal, int defaultBookVal, - int... steps){ + public static EnchantCostSettingFactory enchFactory(@NotNull String title, ValueUpdatableGui parent, + String configPath, ConfigHolder config, + int min, int max, int defaultItemVal, int defaultBookVal, + int... steps){ return new EnchantCostSettingFactory( title,parent, configPath, config, @@ -212,7 +238,7 @@ public class EnchantCostSettingsGui extends IntSettingsGui { // Get value or default int nowItem = getConfiguredValue(); // Get value or default - int nowBook = getConfiguredValue(); + int nowBook = getConfiguredBookValue(); // create new gui return new EnchantCostSettingsGui(this, nowItem, nowBook); } diff --git a/src/main/java/xyz/alexcrea/cuanvil/gui/config/settings/IntSettingsGui.java b/src/main/java/xyz/alexcrea/cuanvil/gui/config/settings/IntSettingsGui.java index c01a9ff..b217838 100644 --- a/src/main/java/xyz/alexcrea/cuanvil/gui/config/settings/IntSettingsGui.java +++ b/src/main/java/xyz/alexcrea/cuanvil/gui/config/settings/IntSettingsGui.java @@ -217,9 +217,9 @@ public class IntSettingsGui extends AbstractSettingGui{ return now != before; } - public static IntSettingFactory factory(@NotNull String title, ValueUpdatableGui parent, - String configPath, ConfigHolder config, - int min, int max, int defaultVal, int... steps){ + public static IntSettingFactory intFactory(@NotNull String title, ValueUpdatableGui parent, + String configPath, ConfigHolder config, + int min, int max, int defaultVal, int... steps){ return new IntSettingFactory( title,parent, configPath, config, diff --git a/src/main/java/xyz/alexcrea/cuanvil/gui/util/GuiGlobalItems.java b/src/main/java/xyz/alexcrea/cuanvil/gui/util/GuiGlobalItems.java index aadcde3..68df6df 100644 --- a/src/main/java/xyz/alexcrea/cuanvil/gui/util/GuiGlobalItems.java +++ b/src/main/java/xyz/alexcrea/cuanvil/gui/util/GuiGlobalItems.java @@ -95,7 +95,7 @@ public class GuiGlobalItems { return new GuiItem(item, GuiGlobalActions.openSettingGuiAction(factory), CustomAnvil.instance); } - private static final String SETTING_ITEM_LORE_PREFIX = "\u00A77value: "; + public static final String SETTING_ITEM_LORE_PREFIX = "\u00A77value: "; public static GuiItem boolSettingGuiItem( @NotNull BoolSettingsGui.BoolSettingFactory factory,