diff --git a/src/main/java/xyz/alexcrea/cuanvil/gui/gui/GuiGlobalActions.java b/src/main/java/xyz/alexcrea/cuanvil/gui/GuiGlobalActions.java similarity index 69% rename from src/main/java/xyz/alexcrea/cuanvil/gui/gui/GuiGlobalActions.java rename to src/main/java/xyz/alexcrea/cuanvil/gui/GuiGlobalActions.java index 8edc3cc..de1fb6a 100644 --- a/src/main/java/xyz/alexcrea/cuanvil/gui/gui/GuiGlobalActions.java +++ b/src/main/java/xyz/alexcrea/cuanvil/gui/GuiGlobalActions.java @@ -1,7 +1,8 @@ -package xyz.alexcrea.cuanvil.gui.gui; +package xyz.alexcrea.cuanvil.gui; import com.github.stefvanschie.inventoryframework.gui.type.util.Gui; import org.bukkit.event.inventory.InventoryClickEvent; +import org.jetbrains.annotations.NotNull; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; @@ -12,10 +13,10 @@ public class GuiGlobalActions { public static Consumer stayInPlace = (event) -> event.setCancelled(true); - public static Consumer openGuiFactory( - Class clazz, - Class[] argClass, - Object... args){ + public static @NotNull Consumer openGuiFactory( + @NotNull Class clazz, + @NotNull Class[] argClass, + @NotNull Object... args){ return event -> { event.setCancelled(true); try { @@ -31,12 +32,12 @@ public class GuiGlobalActions { }; } - public static Consumer openGuiFactory( - Class clazz){ + public static @NotNull Consumer openGuiFactory( + @NotNull Class clazz){ return openGuiFactory(clazz, new Class[0]); } - public static Consumer openGuiFactory(Gui goal) { + public static @NotNull Consumer openGuiFactory(@NotNull Gui goal) { return event -> { event.setCancelled(true); goal.show(event.getWhoClicked()); diff --git a/src/main/java/xyz/alexcrea/cuanvil/gui/GuiGlobalItems.java b/src/main/java/xyz/alexcrea/cuanvil/gui/GuiGlobalItems.java new file mode 100644 index 0000000..42ecaa3 --- /dev/null +++ b/src/main/java/xyz/alexcrea/cuanvil/gui/GuiGlobalItems.java @@ -0,0 +1,56 @@ +package xyz.alexcrea.cuanvil.gui; + +import com.github.stefvanschie.inventoryframework.gui.GuiItem; +import com.github.stefvanschie.inventoryframework.gui.type.util.Gui; +import com.github.stefvanschie.inventoryframework.pane.PatternPane; +import io.delilaheve.CustomAnvil; +import org.bukkit.Material; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; +import org.jetbrains.annotations.NotNull; + +// maybe use builder patern ? +public class GuiGlobalItems { + + // return + public static GuiItem toGuiItem(@NotNull ItemStack item, @NotNull Gui goal){ + return new GuiItem(item, GuiGlobalActions.openGuiFactory(goal), CustomAnvil.instance); + } + + // statically create back itemstack + private static final ItemStack BACK_ITEM = new ItemStack(Material.BARRIER); + static { + // todo add what I need to add to the back item + ItemMeta meta = BACK_ITEM.getItemMeta(); + meta.setDisplayName("\u00A7cBack"); + BACK_ITEM.setItemMeta(meta); + } + public static GuiItem backItem(@NotNull Gui goal){ + // simple go back item + return toGuiItem(BACK_ITEM, goal); + } + public static void addBackItem(@NotNull PatternPane target, + @NotNull Gui goal){ + target.bindItem('B', backItem(goal)); + } + + private static final Material DEFAULT_BACKGROUND_MAT = Material.LIGHT_GRAY_STAINED_GLASS_PANE; + public static GuiItem backgroundItem(Material backgroundMat){ + ItemStack item = new ItemStack(backgroundMat); + ItemMeta meta = item.getItemMeta(); + meta.setDisplayName("\u00A7c"); + item.setItemMeta(meta); + return new GuiItem(item, GuiGlobalActions.stayInPlace, CustomAnvil.instance); + } + public static GuiItem backgroundItem(){ + return backgroundItem(DEFAULT_BACKGROUND_MAT); + } + public static void addBackgroundItem(@NotNull PatternPane target, + @NotNull Material backgroundMat){ + target.bindItem('0', backgroundItem(backgroundMat)); + } + public static void addBackgroundItem(@NotNull PatternPane target){ + addBackgroundItem(target, DEFAULT_BACKGROUND_MAT); + } + +} diff --git a/src/main/java/xyz/alexcrea/cuanvil/gui/gui/MainConfigGui.java b/src/main/java/xyz/alexcrea/cuanvil/gui/MainConfigGui.java similarity index 74% rename from src/main/java/xyz/alexcrea/cuanvil/gui/gui/MainConfigGui.java rename to src/main/java/xyz/alexcrea/cuanvil/gui/MainConfigGui.java index 33359b8..c2214ac 100644 --- a/src/main/java/xyz/alexcrea/cuanvil/gui/gui/MainConfigGui.java +++ b/src/main/java/xyz/alexcrea/cuanvil/gui/MainConfigGui.java @@ -1,4 +1,4 @@ -package xyz.alexcrea.cuanvil.gui.gui; +package xyz.alexcrea.cuanvil.gui; import com.github.stefvanschie.inventoryframework.gui.GuiItem; import com.github.stefvanschie.inventoryframework.gui.type.ChestGui; @@ -7,29 +7,30 @@ import com.github.stefvanschie.inventoryframework.pane.util.Pattern; import io.delilaheve.CustomAnvil; import org.bukkit.Material; import org.bukkit.inventory.ItemStack; -import xyz.alexcrea.cuanvil.gui.gui.config.BasicConfigGui; +import xyz.alexcrea.cuanvil.gui.config.BasicConfigGui; public class MainConfigGui extends ChestGui { public final static MainConfigGui INSTANCE = new MainConfigGui(); + static { + INSTANCE.init(); + } private MainConfigGui() { - super(3, "§8Anvil Config", CustomAnvil.instance); + super(3, "\u00A7cAnvil Config", CustomAnvil.instance); + } + + private void init(){ Pattern pattern = new Pattern( - "111111111", - "112345611", - "111111111" + "000000000", + "001234500", + "000000000" ); PatternPane pane = new PatternPane(0, 0, 9, 3, pattern); addPane(pane); - ItemStack backgroundBukkit = new ItemStack(Material.GRAY_STAINED_GLASS_PANE); - - GuiItem background = new GuiItem(backgroundBukkit,GuiGlobalActions.stayInPlace, CustomAnvil.instance); - - - pane.bindItem('1', background); + GuiGlobalItems.addBackgroundItem(pane); ItemStack stonePlaceholder = new ItemStack(Material.STONE); diff --git a/src/main/java/xyz/alexcrea/cuanvil/gui/gui/config/BasicConfigGui.java b/src/main/java/xyz/alexcrea/cuanvil/gui/config/BasicConfigGui.java similarity index 59% rename from src/main/java/xyz/alexcrea/cuanvil/gui/gui/config/BasicConfigGui.java rename to src/main/java/xyz/alexcrea/cuanvil/gui/config/BasicConfigGui.java index c9e6353..6a4aa9b 100644 --- a/src/main/java/xyz/alexcrea/cuanvil/gui/gui/config/BasicConfigGui.java +++ b/src/main/java/xyz/alexcrea/cuanvil/gui/config/BasicConfigGui.java @@ -1,28 +1,36 @@ -package xyz.alexcrea.cuanvil.gui.gui.config; +package xyz.alexcrea.cuanvil.gui.config; import com.github.stefvanschie.inventoryframework.gui.type.ChestGui; import com.github.stefvanschie.inventoryframework.pane.PatternPane; import com.github.stefvanschie.inventoryframework.pane.util.Pattern; import io.delilaheve.CustomAnvil; -import xyz.alexcrea.cuanvil.gui.gui.GuiGlobalItems; -import xyz.alexcrea.cuanvil.gui.gui.MainConfigGui; +import xyz.alexcrea.cuanvil.gui.MainConfigGui; +import xyz.alexcrea.cuanvil.gui.GuiGlobalItems; public class BasicConfigGui extends ChestGui { public final static BasicConfigGui INSTANCE = new BasicConfigGui(); - private BasicConfigGui(){ - super(3, "Basic Config GUI", CustomAnvil.instance); + static { + INSTANCE.init(); + } + private BasicConfigGui(){ + super(3, "\u00A7cBasic Config GUI", CustomAnvil.instance); + + } + + private void init(){ Pattern pattern = new Pattern( - "111111111", - "111111111", - "B11111111" + "000000000", + "000000000", + "B00000000" ); PatternPane pane = new PatternPane(0, 0, 9, 3, pattern); addPane(pane); GuiGlobalItems.addBackItem(pane, MainConfigGui.INSTANCE); + GuiGlobalItems.addBackgroundItem(pane); } diff --git a/src/main/java/xyz/alexcrea/cuanvil/gui/gui/GuiGlobalItems.java b/src/main/java/xyz/alexcrea/cuanvil/gui/gui/GuiGlobalItems.java deleted file mode 100644 index 6060c70..0000000 --- a/src/main/java/xyz/alexcrea/cuanvil/gui/gui/GuiGlobalItems.java +++ /dev/null @@ -1,34 +0,0 @@ -package xyz.alexcrea.cuanvil.gui.gui; - -import com.github.stefvanschie.inventoryframework.gui.GuiItem; -import com.github.stefvanschie.inventoryframework.gui.type.util.Gui; -import com.github.stefvanschie.inventoryframework.pane.PatternPane; -import io.delilaheve.CustomAnvil; -import org.bukkit.Material; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.ItemMeta; - -public class GuiGlobalItems { - - // return - public static GuiItem toGuiItem(ItemStack item, Gui goal){ - return new GuiItem(item, GuiGlobalActions.openGuiFactory(goal), CustomAnvil.instance); - } - - // statically create back itemstack - private static final ItemStack BACK_ITEM = new ItemStack(Material.BARRIER); - static { - // todo add what I need to add to the back item - ItemMeta meta = BACK_ITEM.getItemMeta(); - meta.setDisplayName("§cBack"); - BACK_ITEM.setItemMeta(meta); - } - public static GuiItem backItem(Gui goal){ - // simple go back item - return toGuiItem(BACK_ITEM, goal); - } - public static void addBackItem(PatternPane target, Gui goal){ - target.bindItem('B', backItem(goal)); - } - -} diff --git a/src/main/kotlin/xyz/alexcrea/cuanvil/command/TestExecutor.kt b/src/main/kotlin/xyz/alexcrea/cuanvil/command/TestExecutor.kt index 9140edc..fbe1506 100644 --- a/src/main/kotlin/xyz/alexcrea/cuanvil/command/TestExecutor.kt +++ b/src/main/kotlin/xyz/alexcrea/cuanvil/command/TestExecutor.kt @@ -4,7 +4,7 @@ import org.bukkit.command.Command import org.bukkit.command.CommandExecutor import org.bukkit.command.CommandSender import org.bukkit.entity.HumanEntity -import xyz.alexcrea.cuanvil.gui.gui.MainConfigGui +import xyz.alexcrea.cuanvil.gui.MainConfigGui class TestExecutor : CommandExecutor {