From 502aa64f50049a7ab55f395f86011e2afa7c7b7d Mon Sep 17 00:00:00 2001 From: alexcrea <42614139+alexcrea@users.noreply.github.com> Date: Mon, 17 Jun 2024 16:21:26 +0200 Subject: [PATCH] Abstracted away ValueUpdatableGui. --- .../alexcrea/cuanvil/gui/ValueUpdatableGui.java | 17 ++++------------- .../config/global/AbstractEnchantConfigGui.java | 9 +++++++-- .../gui/config/global/BasicConfigGui.java | 9 ++++++++- .../gui/config/global/EnchantCostConfigGui.java | 4 ++-- .../gui/config/list/ElementListConfigGui.java | 11 +++++++++-- .../elements/MappedToListSubSettingGui.java | 9 +++++++-- .../gui/config/settings/AbstractSettingGui.java | 8 ++++---- .../cuanvil/gui/util/GuiGlobalActions.java | 2 +- 8 files changed, 42 insertions(+), 27 deletions(-) diff --git a/src/main/java/xyz/alexcrea/cuanvil/gui/ValueUpdatableGui.java b/src/main/java/xyz/alexcrea/cuanvil/gui/ValueUpdatableGui.java index 3cf65f0..16bc082 100644 --- a/src/main/java/xyz/alexcrea/cuanvil/gui/ValueUpdatableGui.java +++ b/src/main/java/xyz/alexcrea/cuanvil/gui/ValueUpdatableGui.java @@ -1,20 +1,11 @@ package xyz.alexcrea.cuanvil.gui; -import com.github.stefvanschie.inventoryframework.adventuresupport.TextHolder; -import com.github.stefvanschie.inventoryframework.gui.type.ChestGui; -import org.bukkit.plugin.Plugin; -import org.jetbrains.annotations.NotNull; +import com.github.stefvanschie.inventoryframework.gui.type.util.Gui; -public abstract class ValueUpdatableGui extends ChestGui { +public interface ValueUpdatableGui { - public ValueUpdatableGui(int rows, @NotNull String title, @NotNull Plugin plugin) { - super(rows, title, plugin); - } + void updateGuiValues(); - public ValueUpdatableGui(int rows, @NotNull TextHolder title, @NotNull Plugin plugin) { - super(rows, title, plugin); - } - - public abstract void updateGuiValues(); + Gui getConnectedGui(); } 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 4bbd48a..c63d7fb 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,6 +1,8 @@ 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; @@ -17,7 +19,7 @@ import java.util.List; * * @param Type of the factory of the type of setting the gui should edit. */ -public abstract class AbstractEnchantConfigGui extends ValueUpdatableGui { +public abstract class AbstractEnchantConfigGui extends ChestGui implements ValueUpdatableGui { /** * Constructor for a gui displaying available enchantment to edit a enchantment setting. @@ -78,7 +80,10 @@ public abstract class AbstractEnchantConfigGui { - private final static String SECTION_NAME = "enchant_values"; + private static final String SECTION_NAME = "enchant_values"; - public final static EnchantCostConfigGui INSTANCE = new EnchantCostConfigGui(); + public static final EnchantCostConfigGui INSTANCE = new EnchantCostConfigGui(); static { INSTANCE.init(); diff --git a/src/main/java/xyz/alexcrea/cuanvil/gui/config/list/ElementListConfigGui.java b/src/main/java/xyz/alexcrea/cuanvil/gui/config/list/ElementListConfigGui.java index 2411bbe..8ee26ce 100644 --- a/src/main/java/xyz/alexcrea/cuanvil/gui/config/list/ElementListConfigGui.java +++ b/src/main/java/xyz/alexcrea/cuanvil/gui/config/list/ElementListConfigGui.java @@ -1,6 +1,8 @@ package xyz.alexcrea.cuanvil.gui.config.list; 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 com.github.stefvanschie.inventoryframework.pane.Pane; @@ -23,13 +25,13 @@ import java.util.HashMap; import java.util.List; import java.util.UUID; -public abstract class ElementListConfigGui< T > extends ValueUpdatableGui { +public abstract class ElementListConfigGui< T > extends ChestGui implements ValueUpdatableGui { private final String namePrefix; protected PatternPane backgroundPane; - public ElementListConfigGui(@NotNull String title) { + protected ElementListConfigGui(@NotNull String title) { super(6, title, CustomAnvil.instance); this.namePrefix = title; @@ -304,4 +306,9 @@ public abstract class ElementListConfigGui< T > extends ValueUpdatableGui { reloadValues(); } + @Override + public Gui getConnectedGui() { + return this; + } + } diff --git a/src/main/java/xyz/alexcrea/cuanvil/gui/config/list/elements/MappedToListSubSettingGui.java b/src/main/java/xyz/alexcrea/cuanvil/gui/config/list/elements/MappedToListSubSettingGui.java index 68273bc..020e6ed 100644 --- a/src/main/java/xyz/alexcrea/cuanvil/gui/config/list/elements/MappedToListSubSettingGui.java +++ b/src/main/java/xyz/alexcrea/cuanvil/gui/config/list/elements/MappedToListSubSettingGui.java @@ -1,15 +1,16 @@ package xyz.alexcrea.cuanvil.gui.config.list.elements; 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 io.delilaheve.CustomAnvil; import org.jetbrains.annotations.NotNull; import xyz.alexcrea.cuanvil.gui.ValueUpdatableGui; -public abstract class MappedToListSubSettingGui extends ValueUpdatableGui implements ElementMappedToListGui { +public abstract class MappedToListSubSettingGui extends ChestGui implements ValueUpdatableGui, ElementMappedToListGui { private final GuiItem item; - public MappedToListSubSettingGui( + protected MappedToListSubSettingGui( GuiItem item, int rows, @NotNull String title) { @@ -27,5 +28,9 @@ public abstract class MappedToListSubSettingGui extends ValueUpdatableGui implem return this; } + @Override + public Gui getConnectedGui() { + return this; + } } diff --git a/src/main/java/xyz/alexcrea/cuanvil/gui/config/settings/AbstractSettingGui.java b/src/main/java/xyz/alexcrea/cuanvil/gui/config/settings/AbstractSettingGui.java index d952f0c..4f58497 100644 --- a/src/main/java/xyz/alexcrea/cuanvil/gui/config/settings/AbstractSettingGui.java +++ b/src/main/java/xyz/alexcrea/cuanvil/gui/config/settings/AbstractSettingGui.java @@ -17,7 +17,7 @@ import xyz.alexcrea.cuanvil.gui.util.GuiGlobalItems; */ public abstract class AbstractSettingGui extends ChestGui { - protected final static String CLICK_LORE = "\u00A77Click Here to change the value"; + protected static final String CLICK_LORE = "\u00A77Click Here to change the value"; private PatternPane pane; @@ -28,7 +28,7 @@ public abstract class AbstractSettingGui extends ChestGui { * @param title Title of this gui. * @param parent Parent gui to go back when completed. */ - public AbstractSettingGui(int rows, @NotNull TextHolder title, ValueUpdatableGui parent) { + protected AbstractSettingGui(int rows, @NotNull TextHolder title, ValueUpdatableGui parent) { super(rows, title, CustomAnvil.instance); initBase(parent); } @@ -40,7 +40,7 @@ public abstract class AbstractSettingGui extends ChestGui { * @param title Title of this gui. * @param parent Parent gui to go back when completed. */ - public AbstractSettingGui(int rows, @NotNull String title, ValueUpdatableGui parent) { + protected AbstractSettingGui(int rows, @NotNull String title, ValueUpdatableGui parent) { this(rows, StringHolder.of(title), parent); } @@ -57,7 +57,7 @@ public abstract class AbstractSettingGui extends ChestGui { pane = new PatternPane(0, 0, pattern.getLength(), pattern.getHeight(), pattern); addPane(pane); - GuiGlobalItems.addBackItem(pane, parent); + GuiGlobalItems.addBackItem(pane, parent.getConnectedGui()); GuiGlobalItems.addBackgroundItem(pane); saveItem = GuiGlobalItems.saveItem(this, parent); diff --git a/src/main/java/xyz/alexcrea/cuanvil/gui/util/GuiGlobalActions.java b/src/main/java/xyz/alexcrea/cuanvil/gui/util/GuiGlobalActions.java index 6be8d83..a4eedf5 100644 --- a/src/main/java/xyz/alexcrea/cuanvil/gui/util/GuiGlobalActions.java +++ b/src/main/java/xyz/alexcrea/cuanvil/gui/util/GuiGlobalActions.java @@ -138,7 +138,7 @@ public class GuiGlobalActions { // Update gui for those who have it open. goal.updateGuiValues(); // Then show - goal.show(player); + goal.getConnectedGui().show(player); }; }