From 159d0209fb370b58bf69aafd66c2f85220f1cfb0 Mon Sep 17 00:00:00 2001 From: aro Date: Mon, 5 Dec 2022 16:14:40 +0100 Subject: [PATCH] feat: settings gui --- .../net/artelnatif/nicko/gui/MainGUI.java | 7 +++-- .../net/artelnatif/nicko/gui/SettingsGUI.java | 29 +++++++++++++++++++ .../nicko/gui/items/main/AdminItem.java | 2 +- .../nicko/gui/items/main/ResetItem.java | 2 +- .../nicko/gui/items/main/SettingsItem.java | 29 +++++++++++++++++++ 5 files changed, 64 insertions(+), 5 deletions(-) create mode 100644 nicko-core/src/main/java/net/artelnatif/nicko/gui/SettingsGUI.java create mode 100644 nicko-core/src/main/java/net/artelnatif/nicko/gui/items/main/SettingsItem.java diff --git a/nicko-core/src/main/java/net/artelnatif/nicko/gui/MainGUI.java b/nicko-core/src/main/java/net/artelnatif/nicko/gui/MainGUI.java index beadcb1..ffa9305 100644 --- a/nicko-core/src/main/java/net/artelnatif/nicko/gui/MainGUI.java +++ b/nicko-core/src/main/java/net/artelnatif/nicko/gui/MainGUI.java @@ -14,10 +14,10 @@ public class MainGUI { private final String[] structureIngredients = new String[] {"# # # # # # # # #", "# % % % % % % % #", - "# % # R B # # % #", + "# % # R B P # % #", "# % # N A S # % #", "# % % % % % % % #", - "E # # # # # # # #"}; + "E # # # # # # # P"}; public MainGUI(Player player) { if (!player.hasPermission("nicko.admin") || !player.isOp()) { @@ -29,7 +29,8 @@ public class MainGUI { .addIngredient('E', new ExitDoorItem()) .addIngredient('N', new ChangeNameItem()) .addIngredient('S', new ChangeSkinItem()) - .addIngredient('A', new AdminPanelAccessItem()) + .addIngredient('P', new SettingsItem()) + .addIngredient('A', new AdminItem()) .addIngredient('B', new ChangeNameAndSkinItem()) .addIngredient('R', new ResetItem()) .build(); diff --git a/nicko-core/src/main/java/net/artelnatif/nicko/gui/SettingsGUI.java b/nicko-core/src/main/java/net/artelnatif/nicko/gui/SettingsGUI.java new file mode 100644 index 0000000..7b2bc65 --- /dev/null +++ b/nicko-core/src/main/java/net/artelnatif/nicko/gui/SettingsGUI.java @@ -0,0 +1,29 @@ +package net.artelnatif.nicko.gui; + +import de.studiocode.invui.gui.GUI; +import de.studiocode.invui.gui.builder.GUIBuilder; +import de.studiocode.invui.gui.builder.guitype.GUIType; +import de.studiocode.invui.gui.structure.Structure; +import de.studiocode.invui.window.impl.single.SimpleWindow; +import net.artelnatif.nicko.gui.items.common.BackItem; +import org.bukkit.entity.Player; + +public class SettingsGUI { + private final Player player; + private final GUI gui; + + public SettingsGUI(Player player) { + final Structure structure = new Structure("# # # # # # # # #", + "# % % M C R % % #", + "B # # # # # # # #"); + structure.addIngredient('B', new BackItem(new MainGUI(player).getGUI())); + this.gui = new GUIBuilder<>(GUIType.NORMAL) + .setStructure(structure) + .build(); + this.player = player; + } + + public void open() { + new SimpleWindow(player, "Nicko", gui).show(); + } +} diff --git a/nicko-core/src/main/java/net/artelnatif/nicko/gui/items/main/AdminItem.java b/nicko-core/src/main/java/net/artelnatif/nicko/gui/items/main/AdminItem.java index 7464a19..193e11c 100644 --- a/nicko-core/src/main/java/net/artelnatif/nicko/gui/items/main/AdminItem.java +++ b/nicko-core/src/main/java/net/artelnatif/nicko/gui/items/main/AdminItem.java @@ -10,7 +10,7 @@ import org.bukkit.event.inventory.ClickType; import org.bukkit.event.inventory.InventoryClickEvent; import org.jetbrains.annotations.NotNull; -public class AdminPanelAccessItem extends BaseItem { +public class AdminItem extends BaseItem { @Override public ItemProvider getItemProvider() { final ItemBuilder builder = new ItemBuilder(Material.PISTON); diff --git a/nicko-core/src/main/java/net/artelnatif/nicko/gui/items/main/ResetItem.java b/nicko-core/src/main/java/net/artelnatif/nicko/gui/items/main/ResetItem.java index 4be4910..403171c 100644 --- a/nicko-core/src/main/java/net/artelnatif/nicko/gui/items/main/ResetItem.java +++ b/nicko-core/src/main/java/net/artelnatif/nicko/gui/items/main/ResetItem.java @@ -16,7 +16,7 @@ public class ResetItem extends BaseItem { @Override public ItemProvider getItemProvider() { final ItemBuilder builder = new ItemBuilder(Material.TNT); - builder.setDisplayName("§6Reset"); + builder.setDisplayName("§fReset"); builder.addLoreLines("§7Removes your disguise."); return builder; } diff --git a/nicko-core/src/main/java/net/artelnatif/nicko/gui/items/main/SettingsItem.java b/nicko-core/src/main/java/net/artelnatif/nicko/gui/items/main/SettingsItem.java new file mode 100644 index 0000000..7d94ffa --- /dev/null +++ b/nicko-core/src/main/java/net/artelnatif/nicko/gui/items/main/SettingsItem.java @@ -0,0 +1,29 @@ +package net.artelnatif.nicko.gui.items.main; + +import de.studiocode.invui.item.ItemProvider; +import de.studiocode.invui.item.builder.ItemBuilder; +import de.studiocode.invui.item.impl.BaseItem; +import net.artelnatif.nicko.gui.SettingsGUI; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.ClickType; +import org.bukkit.event.inventory.InventoryClickEvent; +import org.jetbrains.annotations.NotNull; + +public class SettingsItem extends BaseItem { + @Override + public ItemProvider getItemProvider() { + final ItemBuilder builder = new ItemBuilder(Material.COMPARATOR); + builder.setDisplayName("§fSettings..."); + builder.addLoreLines("§7Adjust your preferences."); + return builder; + } + + @Override + public void handleClick(@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { + if (clickType.isLeftClick() || clickType.isRightClick()) { + event.getView().close(); + new SettingsGUI(player).open(); + } + } +}