feat: main graphical user interface
This commit is contained in:
parent
6666c56f84
commit
887ffaf537
7 changed files with 40 additions and 12 deletions
|
@ -0,0 +1,30 @@
|
||||||
|
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 org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
public class AdminPanelGUI {
|
||||||
|
private final Player player;
|
||||||
|
private final GUI gui;
|
||||||
|
private String[] structureIngredients = new String[]{"# # # # # # # # #",
|
||||||
|
"# % % % % % % % #",
|
||||||
|
"# % # # B # # % #",
|
||||||
|
"# % # N A S # % #",
|
||||||
|
"# % % % % % % % #",
|
||||||
|
"E # # # # # # # #"};
|
||||||
|
|
||||||
|
public AdminPanelGUI(Player player) {
|
||||||
|
this.gui = new GUIBuilder<>(GUIType.NORMAL)
|
||||||
|
.setStructure(new Structure(structureIngredients))
|
||||||
|
.build();
|
||||||
|
this.player = player;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void open() {
|
||||||
|
new SimpleWindow(player, "Nicko", gui).show();
|
||||||
|
}
|
||||||
|
}
|
|
@ -4,17 +4,14 @@ import de.studiocode.invui.gui.GUI;
|
||||||
import de.studiocode.invui.gui.builder.GUIBuilder;
|
import de.studiocode.invui.gui.builder.GUIBuilder;
|
||||||
import de.studiocode.invui.gui.builder.guitype.GUIType;
|
import de.studiocode.invui.gui.builder.guitype.GUIType;
|
||||||
import de.studiocode.invui.gui.structure.Structure;
|
import de.studiocode.invui.gui.structure.Structure;
|
||||||
import de.studiocode.invui.item.builder.ItemBuilder;
|
|
||||||
import de.studiocode.invui.item.impl.SimpleItem;
|
|
||||||
import de.studiocode.invui.window.impl.single.SimpleWindow;
|
import de.studiocode.invui.window.impl.single.SimpleWindow;
|
||||||
import net.artelnatif.nicko.gui.items.*;
|
import net.artelnatif.nicko.gui.items.main.*;
|
||||||
import org.bukkit.Material;
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
public class MainGUI {
|
public class MainGUI {
|
||||||
private final Player player;
|
private final Player player;
|
||||||
private final GUI gui;
|
private final GUI gui;
|
||||||
private String[] structureIngredients = new String[]{"# # # # # # # # #",
|
private final String[] structureIngredients = new String[]{"# # # # # # # # #",
|
||||||
"# % % % % % % % #",
|
"# % % % % % % % #",
|
||||||
"# % # # B # # % #",
|
"# % # # B # # % #",
|
||||||
"# % # N A S # % #",
|
"# % # N A S # % #",
|
||||||
|
@ -28,8 +25,6 @@ public class MainGUI {
|
||||||
|
|
||||||
this.gui = new GUIBuilder<>(GUIType.NORMAL)
|
this.gui = new GUIBuilder<>(GUIType.NORMAL)
|
||||||
.setStructure(new Structure(structureIngredients))
|
.setStructure(new Structure(structureIngredients))
|
||||||
.addIngredient('#', new SimpleItem(new ItemBuilder(Material.BLACK_STAINED_GLASS_PANE)))
|
|
||||||
.addIngredient('%', new SimpleItem(new ItemBuilder(Material.ORANGE_STAINED_GLASS_PANE)))
|
|
||||||
.addIngredient('E', new ExitDoorItem())
|
.addIngredient('E', new ExitDoorItem())
|
||||||
.addIngredient('N', new ChangeNameItem())
|
.addIngredient('N', new ChangeNameItem())
|
||||||
.addIngredient('S', new ChangeSkinItem())
|
.addIngredient('S', new ChangeSkinItem())
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
package net.artelnatif.nicko.gui.items;
|
package net.artelnatif.nicko.gui.items.main;
|
||||||
|
|
||||||
import de.studiocode.invui.item.ItemProvider;
|
import de.studiocode.invui.item.ItemProvider;
|
||||||
import de.studiocode.invui.item.builder.ItemBuilder;
|
import de.studiocode.invui.item.builder.ItemBuilder;
|
||||||
import de.studiocode.invui.item.impl.BaseItem;
|
import de.studiocode.invui.item.impl.BaseItem;
|
||||||
|
import net.artelnatif.nicko.gui.AdminPanelGUI;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.inventory.ClickType;
|
import org.bukkit.event.inventory.ClickType;
|
||||||
|
@ -21,6 +22,8 @@ public class AdminPanelAccessItem extends BaseItem {
|
||||||
@Override
|
@Override
|
||||||
public void handleClick(@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) {
|
public void handleClick(@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) {
|
||||||
if (clickType.isLeftClick() || clickType.isRightClick()) {
|
if (clickType.isLeftClick() || clickType.isRightClick()) {
|
||||||
|
event.getView().close();
|
||||||
|
new AdminPanelGUI(player).open();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package net.artelnatif.nicko.gui.items;
|
package net.artelnatif.nicko.gui.items.main;
|
||||||
|
|
||||||
import de.studiocode.invui.item.ItemProvider;
|
import de.studiocode.invui.item.ItemProvider;
|
||||||
import de.studiocode.invui.item.builder.ItemBuilder;
|
import de.studiocode.invui.item.builder.ItemBuilder;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package net.artelnatif.nicko.gui.items;
|
package net.artelnatif.nicko.gui.items.main;
|
||||||
|
|
||||||
import de.studiocode.invui.item.ItemProvider;
|
import de.studiocode.invui.item.ItemProvider;
|
||||||
import de.studiocode.invui.item.builder.ItemBuilder;
|
import de.studiocode.invui.item.builder.ItemBuilder;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package net.artelnatif.nicko.gui.items;
|
package net.artelnatif.nicko.gui.items.main;
|
||||||
|
|
||||||
import de.studiocode.invui.item.ItemProvider;
|
import de.studiocode.invui.item.ItemProvider;
|
||||||
import de.studiocode.invui.item.builder.ItemBuilder;
|
import de.studiocode.invui.item.builder.ItemBuilder;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package net.artelnatif.nicko.gui.items;
|
package net.artelnatif.nicko.gui.items.main;
|
||||||
|
|
||||||
import de.studiocode.invui.item.ItemProvider;
|
import de.studiocode.invui.item.ItemProvider;
|
||||||
import de.studiocode.invui.item.builder.ItemBuilder;
|
import de.studiocode.invui.item.builder.ItemBuilder;
|
||||||
|
|
Loading…
Reference in a new issue