diff --git a/src/main/java/xyz/alexcrea/cuanvil/gui/config/global/AbstractEnchantConfigGui.java b/src/main/java/xyz/alexcrea/cuanvil/gui/config/global/AbstractEnchantConfigGui.java index c63d7fb..1feb5af 100644 --- a/src/main/java/xyz/alexcrea/cuanvil/gui/config/global/AbstractEnchantConfigGui.java +++ b/src/main/java/xyz/alexcrea/cuanvil/gui/config/global/AbstractEnchantConfigGui.java @@ -1,25 +1,24 @@ package xyz.alexcrea.cuanvil.gui.config.global; import com.github.stefvanschie.inventoryframework.gui.GuiItem; -import com.github.stefvanschie.inventoryframework.gui.type.ChestGui; -import com.github.stefvanschie.inventoryframework.gui.type.util.Gui; -import com.github.stefvanschie.inventoryframework.pane.Orientable; -import com.github.stefvanschie.inventoryframework.pane.OutlinePane; -import io.delilaheve.CustomAnvil; +import com.github.stefvanschie.inventoryframework.pane.util.Pattern; +import org.bukkit.event.inventory.InventoryClickEvent; import xyz.alexcrea.cuanvil.enchant.WrappedEnchantment; import xyz.alexcrea.cuanvil.gui.ValueUpdatableGui; +import xyz.alexcrea.cuanvil.gui.config.list.SettingGuiListConfigGui; import xyz.alexcrea.cuanvil.gui.config.settings.AbstractSettingGui; import xyz.alexcrea.cuanvil.gui.util.GuiSharedConstant; -import java.util.ArrayList; +import java.util.Collections; import java.util.List; +import java.util.function.Consumer; /** * Abstract Global Config gui for enchantment setting configuration. * * @param Type of the factory of the type of setting the gui should edit. */ -public abstract class AbstractEnchantConfigGui extends ChestGui implements ValueUpdatableGui { +public abstract class AbstractEnchantConfigGui extends SettingGuiListConfigGui implements ValueUpdatableGui { /** * Constructor for a gui displaying available enchantment to edit a enchantment setting. @@ -27,66 +26,50 @@ public abstract class AbstractEnchantConfigGui bookItemFactoryList; - - /** - * Prepare enchantment config gui displayed items factory. - */ - protected void prepareValues() { - bookItemFactoryList = new ArrayList<>(); - - for (WrappedEnchantment enchant : GuiSharedConstant.SORTED_ENCHANTMENT_LIST) { - T factory = getFactoryFromEnchant(enchant); - - bookItemFactoryList.add(factory); - } + super(title); } @Override - public void updateGuiValues() { + public void updateGuiValues() { //TODO maybe optimise it. + reloadValues(); + } - // probably not the most efficient but hey ! it do the work - // TODO optimise one day.. maybe + @Override + protected List getEveryDisplayableInstanceOfGeneric() { + return GuiSharedConstant.SORTED_ENCHANTMENT_LIST; + } - this.filledEnchant.clear(); + @Override + protected Pattern getBackgroundPattern(){ + return new Pattern( + GuiSharedConstant.EMPTY_GUI_FULL_LINE, + GuiSharedConstant.EMPTY_GUI_FULL_LINE, + GuiSharedConstant.EMPTY_GUI_FULL_LINE, + GuiSharedConstant.EMPTY_GUI_FULL_LINE, + GuiSharedConstant.EMPTY_GUI_FULL_LINE, + "B11L1R111" + ); + } - for (T inventoryFactory : this.bookItemFactoryList) { - GuiItem item = getItemFromFactory(inventoryFactory); - this.filledEnchant.addItem(item); - } + // Unused methods + @Override + protected GuiItem prepareCreateNewItem() { + return null; + } - update(); + @Override + protected List getCreateItemLore() { + return Collections.emptyList(); } @Override - public Gui getConnectedGui() { - return this; + protected Consumer getCreateClickConsumer() { + return null; } - public abstract T getFactoryFromEnchant(WrappedEnchantment enchant); - - public abstract GuiItem getItemFromFactory(T inventoryFactory); + @Override + protected String createItemName() { + return null; + } } diff --git a/src/main/java/xyz/alexcrea/cuanvil/gui/config/global/EnchantCostConfigGui.java b/src/main/java/xyz/alexcrea/cuanvil/gui/config/global/EnchantCostConfigGui.java index 25c47eb..a74f26e 100644 --- a/src/main/java/xyz/alexcrea/cuanvil/gui/config/global/EnchantCostConfigGui.java +++ b/src/main/java/xyz/alexcrea/cuanvil/gui/config/global/EnchantCostConfigGui.java @@ -12,10 +12,7 @@ import xyz.alexcrea.cuanvil.gui.config.settings.EnchantCostSettingsGui; import xyz.alexcrea.cuanvil.gui.util.GuiGlobalItems; import xyz.alexcrea.cuanvil.util.CasedStringUtil; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Locale; +import java.util.*; /** * Global Config gui for enchantment cost settings. @@ -39,7 +36,7 @@ public class EnchantCostConfigGui extends AbstractEnchantConfigGui { - private final static String SECTION_NAME = "enchant_limits"; + private static final String SECTION_NAME = "enchant_limits"; - public final static EnchantLimitConfigGui INSTANCE = new EnchantLimitConfigGui(); + public static final EnchantLimitConfigGui INSTANCE = new EnchantLimitConfigGui(); static { INSTANCE.init(); @@ -32,7 +32,7 @@ public class EnchantLimitConfigGui extends AbstractEnchantConfigGui { - public final static UnitRepairConfigGui INSTANCE = new UnitRepairConfigGui(); + public static final UnitRepairConfigGui INSTANCE = new UnitRepairConfigGui(); static { INSTANCE.init(); @@ -89,7 +89,7 @@ public class UnitRepairConfigGui extends MappedGuiListConfigGui { + return new GuiItem(createItem, clickEvent -> { clickEvent.setCancelled(true); new SelectItemTypeGui( diff --git a/src/main/java/xyz/alexcrea/cuanvil/gui/config/list/MappedElementListConfigGui.java b/src/main/java/xyz/alexcrea/cuanvil/gui/config/list/MappedElementListConfigGui.java index 3f2b7f5..f2793a8 100644 --- a/src/main/java/xyz/alexcrea/cuanvil/gui/config/list/MappedElementListConfigGui.java +++ b/src/main/java/xyz/alexcrea/cuanvil/gui/config/list/MappedElementListConfigGui.java @@ -16,7 +16,7 @@ import java.util.function.Consumer; public abstract class MappedElementListConfigGui< T, S > extends ElementListConfigGui< T > { protected final HashMap elementGuiMap; - public MappedElementListConfigGui(@NotNull String title) { + protected MappedElementListConfigGui(@NotNull String title) { super(title); this.elementGuiMap = new HashMap<>(); @@ -38,7 +38,7 @@ public abstract class MappedElementListConfigGui< T, S > extends ElementListConf createItem.setItemMeta(createMeta); - return new GuiItem(createItem, (clickEvent) -> { + return new GuiItem(createItem, clickEvent -> { clickEvent.setCancelled(true); HumanEntity player = clickEvent.getWhoClicked(); diff --git a/src/main/java/xyz/alexcrea/cuanvil/gui/config/list/SettingGuiListConfigGui.java b/src/main/java/xyz/alexcrea/cuanvil/gui/config/list/SettingGuiListConfigGui.java index 231cf67..1b7068c 100644 --- a/src/main/java/xyz/alexcrea/cuanvil/gui/config/list/SettingGuiListConfigGui.java +++ b/src/main/java/xyz/alexcrea/cuanvil/gui/config/list/SettingGuiListConfigGui.java @@ -17,7 +17,7 @@ public abstract class SettingGuiListConfigGui< T, S extends AbstractSettingGui.S protected HashMap guiItemMap; protected HashMap factoryMap; - public SettingGuiListConfigGui(@NotNull String title) { + protected SettingGuiListConfigGui(@NotNull String title) { super(title); this.guiItemMap = new HashMap<>(); this.factoryMap = new HashMap<>();