From f4b67c93c318f35140ecb5a9c31eeb5375b581f7 Mon Sep 17 00:00:00 2001 From: Len <40720638+destro174@users.noreply.github.com> Date: Sun, 11 Feb 2024 16:22:22 +0100 Subject: [PATCH] Add back button to GUI --- .../alttd/cometskyblock/challenges/ChallengesGUI.java | 2 +- .../com/alttd/cometskyblock/gui/GUIInventory.java | 11 ++++++++++- .../com/alttd/cometskyblock/island/gui/IslandGUI.java | 2 +- .../alttd/cometskyblock/island/gui/MembersGUI.java | 2 +- .../alttd/cometskyblock/island/gui/SettingsGUI.java | 2 +- .../alttd/cometskyblock/island/gui/UpgradesGUI.java | 2 +- 6 files changed, 15 insertions(+), 6 deletions(-) diff --git a/plugin/src/main/java/com/alttd/cometskyblock/challenges/ChallengesGUI.java b/plugin/src/main/java/com/alttd/cometskyblock/challenges/ChallengesGUI.java index 8cf361b..35b0dbf 100644 --- a/plugin/src/main/java/com/alttd/cometskyblock/challenges/ChallengesGUI.java +++ b/plugin/src/main/java/com/alttd/cometskyblock/challenges/ChallengesGUI.java @@ -20,7 +20,7 @@ public class ChallengesGUI extends GUIInventory { @Override public void decorate(Player player) { - makeMenuBar(); + makeMenuBar(player); super.decorate(player); } diff --git a/plugin/src/main/java/com/alttd/cometskyblock/gui/GUIInventory.java b/plugin/src/main/java/com/alttd/cometskyblock/gui/GUIInventory.java index 055ca91..bf5ba44 100644 --- a/plugin/src/main/java/com/alttd/cometskyblock/gui/GUIInventory.java +++ b/plugin/src/main/java/com/alttd/cometskyblock/gui/GUIInventory.java @@ -1,6 +1,7 @@ package com.alttd.cometskyblock.gui; import com.alttd.cometskyblock.island.Island; +import com.alttd.cometskyblock.island.gui.IslandGUI; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.minimessage.MiniMessage; import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder; @@ -97,10 +98,11 @@ public abstract class GUIInventory implements GUI, InventoryHolder { return item; } - protected void makeMenuBar() { + protected void makeMenuBar(Player player) { for (int i = inventory.getSize() - 9; i < inventory.getSize(); ++i) { addButton(i, createMenuButton(Material.BLACK_STAINED_GLASS_PANE, "", new ArrayList<>(), event -> {})); } + createMainMenuButton(player, inventory.getSize() - 9); makeTopBar(); } @@ -144,6 +146,13 @@ public abstract class GUIInventory implements GUI, InventoryHolder { addButton(slot, createMenuButton(Material.BARRIER, "Exit Menu", new ArrayList<>(), event -> player.closeInventory())); } + protected void createMainMenuButton(Player player, int slot) { + addButton(slot, createMenuButton(Material.BARRIER, "Island Menu", new ArrayList<>(), event -> { + player.closeInventory(); + new IslandGUI(island).open(player); + })); + } + protected GUIButton createPlayerHeadMenuButton(UUID uuid, Consumer eventConsumer) { return new GUIButton() .creator(player -> createPlayerHead(uuid)) diff --git a/plugin/src/main/java/com/alttd/cometskyblock/island/gui/IslandGUI.java b/plugin/src/main/java/com/alttd/cometskyblock/island/gui/IslandGUI.java index 8a7ae86..9cd1eb2 100644 --- a/plugin/src/main/java/com/alttd/cometskyblock/island/gui/IslandGUI.java +++ b/plugin/src/main/java/com/alttd/cometskyblock/island/gui/IslandGUI.java @@ -24,7 +24,7 @@ public class IslandGUI extends GUIInventory { @Override public void decorate(Player player) { - makeMenuBar(); + makeMenuBar(player); // Island GO addButton(10, createMenuButton(Material.GRASS_BLOCK, "Visit your island!", new ArrayList<>(), event -> { diff --git a/plugin/src/main/java/com/alttd/cometskyblock/island/gui/MembersGUI.java b/plugin/src/main/java/com/alttd/cometskyblock/island/gui/MembersGUI.java index 08eaafe..8a82ef1 100644 --- a/plugin/src/main/java/com/alttd/cometskyblock/island/gui/MembersGUI.java +++ b/plugin/src/main/java/com/alttd/cometskyblock/island/gui/MembersGUI.java @@ -33,7 +33,7 @@ public class MembersGUI extends GUIInventory { @Override public void decorate(Player player) { currentSlot = 9; - makeMenuBar(); + makeMenuBar(player); int startIndex = pageIndex * 45; for (int i = startIndex; i < island.members().size(); i++) { diff --git a/plugin/src/main/java/com/alttd/cometskyblock/island/gui/SettingsGUI.java b/plugin/src/main/java/com/alttd/cometskyblock/island/gui/SettingsGUI.java index a0733e3..638a8b1 100644 --- a/plugin/src/main/java/com/alttd/cometskyblock/island/gui/SettingsGUI.java +++ b/plugin/src/main/java/com/alttd/cometskyblock/island/gui/SettingsGUI.java @@ -27,7 +27,7 @@ public class SettingsGUI extends GUIInventory { @Override public void decorate(Player player) { - makeMenuBar(); + makeMenuBar(player); // setHome addButton(10, createMenuButton(Material.GRASS_BLOCK, "Set your IslandSpawn location!", List.of( "This sets your island spawn location to your current location." diff --git a/plugin/src/main/java/com/alttd/cometskyblock/island/gui/UpgradesGUI.java b/plugin/src/main/java/com/alttd/cometskyblock/island/gui/UpgradesGUI.java index 97d43c4..bc68158 100644 --- a/plugin/src/main/java/com/alttd/cometskyblock/island/gui/UpgradesGUI.java +++ b/plugin/src/main/java/com/alttd/cometskyblock/island/gui/UpgradesGUI.java @@ -31,7 +31,7 @@ public class UpgradesGUI extends GUIInventory { @Override public void decorate(Player player) { - makeMenuBar(); + makeMenuBar(player); MessageConfiguration.Island islandMessages = CometSkyBlockPlugin.instance().messagesConfiguration().get().island(); // Todo - move to handlers, add costs, validation ... // WorldBorder