feat/fix/refactor: gui stuff

This commit is contained in:
aro 2023-01-17 00:48:37 +01:00
parent f4e2f9cb46
commit 50d42549de
28 changed files with 334 additions and 166 deletions

View file

@ -8,7 +8,7 @@ import net.artelnatif.nicko.command.NickoCommand;
import net.artelnatif.nicko.config.NickoConfiguration;
import net.artelnatif.nicko.event.PlayerJoinListener;
import net.artelnatif.nicko.event.PlayerQuitListener;
import net.artelnatif.nicko.gui.items.main.ExitDoorItem;
import net.artelnatif.nicko.gui.items.main.ExitGUI;
import net.artelnatif.nicko.i18n.Locale;
import net.artelnatif.nicko.i18n.LocaleFileManager;
import net.artelnatif.nicko.impl.Internals;
@ -120,7 +120,7 @@ public class NickoBukkit extends JavaPlugin {
Structure.addGlobalIngredient('#', new SimpleItem(new ItemBuilder(Material.BLACK_STAINED_GLASS_PANE).setDisplayName(" ")));
Structure.addGlobalIngredient('%', new SimpleItem(new ItemBuilder(Material.ORANGE_STAINED_GLASS_PANE).setDisplayName(" ")));
Structure.addGlobalIngredient('E', new ExitDoorItem());
Structure.addGlobalIngredient('E', new ExitGUI());
getLogger().info("Loading persistence...");
dataStore = new PlayerDataStore(this);

View file

@ -0,0 +1,35 @@
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.window.impl.single.SimpleWindow;
import net.artelnatif.nicko.gui.items.admin.ManageCache;
import net.artelnatif.nicko.gui.items.common.GoBack;
import org.bukkit.entity.Player;
public class AdminGUI {
private final Player player;
private final GUI gui;
public AdminGUI(Player player) {
this.gui = new GUIBuilder<>(GUIType.NORMAL)
.setStructure(
"# # # # # # # # #",
"# % % X X S % % #",
"B # # # # # # # #"
)
.addIngredient('S', new ManageCache())
.addIngredient('B', new GoBack(new MainGUI(player).getGUI()))
.build();
this.player = player;
}
public GUI getGUI() {
return gui;
}
public void open() {
new SimpleWindow(player, "Nicko", gui).show();
}
}

View file

@ -0,0 +1,37 @@
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.window.impl.single.SimpleWindow;
import net.artelnatif.nicko.gui.items.common.GoBack;
import net.artelnatif.nicko.gui.items.skin.ChangeName;
import net.artelnatif.nicko.gui.items.skin.ChangeNameAndSkin;
import net.artelnatif.nicko.gui.items.skin.ChangeSkin;
import org.bukkit.entity.Player;
public class AppearanceManagerGUI {
private final Player player;
private final GUI gui;
public AppearanceManagerGUI(Player player) {
this.gui = new GUIBuilder<>(GUIType.NORMAL)
.setStructure(
"# # # # # # # # #",
"# % % % % % % % #",
"# % # N A S # % #",
"# % % % % % % % #",
"B # # # # # # # #"
)
.addIngredient('N', new ChangeName())
.addIngredient('A', new ChangeNameAndSkin())
.addIngredient('S', new ChangeSkin())
.addIngredient('B', new GoBack(new MainGUI(player).getGUI()))
.build();
this.player = player;
}
public void open() {
new SimpleWindow(player, "Nicko", gui).show();
}
}

View file

@ -3,35 +3,35 @@ 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.main.AdminItem;
import net.artelnatif.nicko.gui.items.main.ResetItem;
import net.artelnatif.nicko.gui.items.main.SettingsItem;
import net.artelnatif.nicko.gui.items.main.SkinItem;
import net.artelnatif.nicko.gui.items.main.AdminSubGUI;
import net.artelnatif.nicko.gui.items.main.ResetAppearance;
import net.artelnatif.nicko.gui.items.main.SettingsSubGUI;
import net.artelnatif.nicko.gui.items.main.AppearanceManagerSubGUI;
import org.bukkit.entity.Player;
public class MainGUI {
private final Player player;
private final GUI gui;
private final String[] structure = new String[]{
public MainGUI(Player player) {
final String[] dynamicStructure = new String[]{
"# # # # # # # # #",
"# % % % A % % % #",
"# % # R S P # % #",
"# % % % % % % % #",
"E # # # # # # # #"};
public MainGUI(Player player) {
if (!player.hasPermission("nicko.admin") || !player.isOp()) {
structure[3] = structure[3].replace("A", "#");
dynamicStructure[3] = dynamicStructure[3].replace("A", "#");
}
this.gui = new GUIBuilder<>(GUIType.NORMAL)
.setStructure(new Structure(structure))
.addIngredient('R', new ResetItem())
.addIngredient('S', new SkinItem())
.addIngredient('P', new SettingsItem())
.addIngredient('A', new AdminItem())
.setStructure(dynamicStructure)
.addIngredient('R', new ResetAppearance())
.addIngredient('S', new AppearanceManagerSubGUI())
.addIngredient('P', new SettingsSubGUI())
.addIngredient('A', new AdminSubGUI())
.build();
this.player = player;
}

View file

@ -1,4 +1,4 @@
package net.artelnatif.nicko.gui.sub;
package net.artelnatif.nicko.gui;
import de.studiocode.invui.gui.GUI;
import de.studiocode.invui.gui.builder.GUIBuilder;
@ -6,30 +6,31 @@ import de.studiocode.invui.gui.builder.guitype.GUIType;
import de.studiocode.invui.window.impl.single.SimpleWindow;
import net.artelnatif.nicko.NickoBukkit;
import net.artelnatif.nicko.gui.MainGUI;
import net.artelnatif.nicko.gui.items.common.BackItem;
import net.artelnatif.nicko.gui.items.settings.BungeeCordCyclingItem;
import net.artelnatif.nicko.gui.items.settings.LanguageCyclingItem;
import net.artelnatif.nicko.gui.items.common.GoBack;
import net.artelnatif.nicko.gui.items.settings.BungeeCordCycling;
import net.artelnatif.nicko.gui.items.settings.LanguageCycling;
import org.bukkit.entity.Player;
public class SettingsGUI {
private final Player player;
private final GUI gui;
private final String[] structure = new String[]{
public SettingsGUI(Player player) {
final String[] dynamicStructure = new String[]{
"# # # # # # # # #",
"# % % L # T % % #",
"B # # # # # # # #"
};
public SettingsGUI(Player player) {
if (!NickoBukkit.getInstance().getNickoConfig().isBungeecordSupport()) {
structure[1] = structure[1].replace("T", "#");
dynamicStructure[1] = dynamicStructure[1].replace("T", "#");
}
this.gui = new GUIBuilder<>(GUIType.NORMAL)
.setStructure(structure)
.addIngredient('B', new BackItem(new MainGUI(player).getGUI()))
.addIngredient('L', new LanguageCyclingItem().get(player))
.addIngredient('T', new BungeeCordCyclingItem().get(player))
.setStructure(dynamicStructure)
.addIngredient('B', new GoBack(new MainGUI(player).getGUI()))
.addIngredient('L', new LanguageCycling().get(player))
.addIngredient('T', new BungeeCordCycling().get(player))
.build();
this.player = player;
}

View file

@ -0,0 +1,36 @@
package net.artelnatif.nicko.gui.admin;
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.window.impl.single.SimpleWindow;
import net.artelnatif.nicko.gui.AdminGUI;
import net.artelnatif.nicko.gui.items.admin.cache.CacheDetailed;
import net.artelnatif.nicko.gui.items.admin.cache.CacheInvalidate;
import net.artelnatif.nicko.gui.items.admin.cache.CacheOverview;
import net.artelnatif.nicko.gui.items.common.GoBack;
import org.bukkit.entity.Player;
public class CacheManagementGUI {
private final Player player;
private final GUI gui;
public CacheManagementGUI(Player player) {
this.gui = new GUIBuilder<>(GUIType.NORMAL)
.setStructure("B # S A D")
.addIngredient('B', new GoBack(new AdminGUI(player).getGUI()))
.addIngredient('S', new CacheOverview())
.addIngredient('A', new CacheInvalidate())
.addIngredient('D', new CacheDetailed())
.build();
this.player = player;
}
public GUI getGUI() {
return gui;
}
public void open() {
new SimpleWindow(player, "Nicko", gui).show();
}
}

View file

@ -0,0 +1,68 @@
package net.artelnatif.nicko.gui.admin.cache;
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.Markers;
import de.studiocode.invui.item.Item;
import de.studiocode.invui.item.ItemProvider;
import de.studiocode.invui.window.impl.single.SimpleWindow;
import net.artelnatif.nicko.NickoBukkit;
import net.artelnatif.nicko.gui.admin.CacheManagementGUI;
import net.artelnatif.nicko.gui.items.admin.cache.SkinPlaceholder;
import net.artelnatif.nicko.gui.items.common.GoBack;
import net.artelnatif.nicko.gui.items.common.ScrollDown;
import net.artelnatif.nicko.gui.items.common.ScrollUp;
import net.artelnatif.nicko.mojang.MojangSkin;
import org.bukkit.entity.Player;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.concurrent.ConcurrentMap;
import java.util.stream.Collectors;
public class CacheDetailledGUI {
private final Player player;
private final GUI gui;
public CacheDetailledGUI(Player player) {
final ConcurrentMap<String, Optional<MojangSkin>> skins = NickoBukkit.getInstance().getMojangAPI().getCache().asMap();
final List<String> loadedSkins = skins.entrySet().stream()
.filter(entry -> entry.getValue().isPresent())
.map(Map.Entry::getKey)
.toList();
System.out.println("loadedSkins.toString() = " + loadedSkins);
final List<Item> items = loadedSkins.stream()
.map(SkinPlaceholder::new)
.collect(Collectors.toList());
this.gui = new GUIBuilder<>(GUIType.SCROLL_ITEMS)
.setStructure(
"% # # # # # # # %",
"# x x x x x x U #",
"# x x x x x x # #",
"# x x x x x x # #",
"# x x x x x x D #",
"B # # # # # # # %"
)
.addIngredient('x', Markers.ITEM_LIST_SLOT_VERTICAL)
.addIngredient('U', new ScrollUp())
.addIngredient('D', new ScrollDown())
.addIngredient('B', new GoBack(new CacheManagementGUI(player).getGUI()))
.setBackground(ItemProvider.EMPTY)
.setItems(items)
.build();
this.player = player;
}
public GUI getGUI() {
return gui;
}
public void open() {
new SimpleWindow(player, "Nicko", gui).show();
}
}

View file

@ -3,13 +3,13 @@ package net.artelnatif.nicko.gui.items.admin;
import de.studiocode.invui.item.ItemProvider;
import de.studiocode.invui.item.builder.SkullBuilder;
import de.studiocode.invui.item.impl.BaseItem;
import net.artelnatif.nicko.gui.sub.SkinInvalidatorSelectionGUI;
import net.artelnatif.nicko.gui.admin.CacheManagementGUI;
import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.jetbrains.annotations.NotNull;
public class SkinInvalidatorItem extends BaseItem {
public class ManageCache extends BaseItem {
@Override
public ItemProvider getItemProvider() {
final SkullBuilder builder = new SkullBuilder("Notch");
@ -22,7 +22,7 @@ public class SkinInvalidatorItem extends BaseItem {
public void handleClick(@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) {
if (clickType.isLeftClick() || clickType.isRightClick()) {
event.getView().close();
new SkinInvalidatorSelectionGUI(player).open();
new CacheManagementGUI(player).open();
}
}
}

View file

@ -0,0 +1,29 @@
package net.artelnatif.nicko.gui.items.admin.cache;
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.admin.cache.CacheDetailledGUI;
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 CacheDetailed extends BaseItem {
@Override
public ItemProvider getItemProvider() {
final ItemBuilder builder = new ItemBuilder(Material.ARROW);
builder.setDisplayName("§6Invalidate specific skin...");
builder.addLoreLines("§7PLACEHOLDER REPLACE ME");
return builder;
}
@Override
public void handleClick(@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) {
if (clickType.isLeftClick() || clickType.isRightClick()) {
event.getView().close();
new CacheDetailledGUI(player).open();
}
}
}

View file

@ -1,4 +1,4 @@
package net.artelnatif.nicko.gui.items.admin.invalidator;
package net.artelnatif.nicko.gui.items.admin.cache;
import de.studiocode.invui.item.ItemProvider;
import de.studiocode.invui.item.builder.ItemBuilder;
@ -12,10 +12,10 @@ import org.bukkit.event.inventory.ClickType;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.jetbrains.annotations.NotNull;
public class SkinCacheInvalidateAllItem extends BaseItem {
public class CacheInvalidate extends BaseItem {
@Override
public ItemProvider getItemProvider() {
final ItemBuilder builder = new ItemBuilder(Material.BARRIER);
final ItemBuilder builder = new ItemBuilder(Material.TNT);
builder.setDisplayName("§6Invalidate the full Skin Cache");
builder.addLoreLines(
"§c§oNOT RECOMMENDED",

View file

@ -1,4 +1,4 @@
package net.artelnatif.nicko.gui.items.admin.invalidator;
package net.artelnatif.nicko.gui.items.admin.cache;
import com.google.common.cache.CacheStats;
import com.google.common.cache.LoadingCache;
@ -17,7 +17,7 @@ import org.jetbrains.annotations.NotNull;
import java.util.Optional;
public class SkinCacheStatisticsItem extends BaseItem {
public class CacheOverview extends BaseItem {
@Override
public ItemProvider getItemProvider() {
final ItemBuilder builder = new ItemBuilder(Material.OAK_SIGN);

View file

@ -0,0 +1,18 @@
package net.artelnatif.nicko.gui.items.admin.cache;
import de.studiocode.invui.item.builder.ItemBuilder;
import de.studiocode.invui.item.builder.SkullBuilder;
import de.studiocode.invui.item.impl.AsyncItem;
import org.bukkit.Material;
public class SkinPlaceholder extends AsyncItem {
public SkinPlaceholder(String name) {
super(new ItemBuilder(Material.PAINTING).setDisplayName("§7§oLoading..."), () -> {
System.out.println("name = " + name);
final SkullBuilder skull = new SkullBuilder(name);
skull.setDisplayName(name);
skull.addLoreLines("§7Click to invalidate skin");
return skull;
});
}
}

View file

@ -11,10 +11,10 @@ import org.bukkit.event.inventory.ClickType;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.jetbrains.annotations.NotNull;
public class BackItem extends BaseItem {
public class GoBack extends BaseItem {
private final GUI gui;
public BackItem(GUI gui) {
public GoBack(GUI gui) {
this.gui = gui;
}

View file

@ -0,0 +1,26 @@
package net.artelnatif.nicko.gui.items.common;
import de.studiocode.invui.gui.impl.ScrollGUI;
import de.studiocode.invui.item.ItemProvider;
import de.studiocode.invui.item.builder.ItemBuilder;
import de.studiocode.invui.item.impl.controlitem.ScrollItem;
import org.bukkit.Material;
public class ScrollDown extends ScrollItem {
public ScrollDown() {
super(1);
}
@Override
public ItemProvider getItemProvider(ScrollGUI gui) {
ItemBuilder builder = new ItemBuilder(Material.GREEN_STAINED_GLASS_PANE);
builder.setDisplayName("§7Scroll down");
if (!gui.canScroll(1))
builder.addLoreLines("§cYou can't scroll further down");
return builder;
}
}

View file

@ -0,0 +1,26 @@
package net.artelnatif.nicko.gui.items.common;
import de.studiocode.invui.gui.impl.ScrollGUI;
import de.studiocode.invui.item.ItemProvider;
import de.studiocode.invui.item.builder.ItemBuilder;
import de.studiocode.invui.item.impl.controlitem.ScrollItem;
import org.bukkit.Material;
public class ScrollUp extends ScrollItem {
public ScrollUp() {
super(-1);
}
@Override
public ItemProvider getItemProvider(ScrollGUI gui) {
ItemBuilder builder = new ItemBuilder(Material.RED_STAINED_GLASS_PANE);
builder.setDisplayName("§7Scroll up");
if (!gui.canScroll(-1))
builder.addLoreLines("§cYou've reached the top");
return builder;
}
}

View file

@ -3,7 +3,7 @@ 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.sub.AdminPanelGUI;
import net.artelnatif.nicko.gui.AdminGUI;
import org.bukkit.Material;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Player;
@ -12,7 +12,7 @@ import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.ItemFlag;
import org.jetbrains.annotations.NotNull;
public class AdminItem extends BaseItem {
public class AdminSubGUI extends BaseItem {
@Override
public ItemProvider getItemProvider() {
final ItemBuilder builder = new ItemBuilder(Material.COMMAND_BLOCK);
@ -27,7 +27,7 @@ public class AdminItem extends BaseItem {
public void handleClick(@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) {
if (clickType.isLeftClick() || clickType.isRightClick()) {
event.getView().close();
new AdminPanelGUI(player).open();
new AdminGUI(player).open();
}
}
}

View file

@ -3,14 +3,14 @@ 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.sub.AppearanceGUI;
import net.artelnatif.nicko.gui.AppearanceManagerGUI;
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 SkinItem extends BaseItem {
public class AppearanceManagerSubGUI extends BaseItem {
@Override
public ItemProvider getItemProvider() {
final ItemBuilder builder = new ItemBuilder(Material.ENDER_EYE);
@ -23,7 +23,7 @@ public class SkinItem extends BaseItem {
public void handleClick(@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) {
if (clickType.isLeftClick() || clickType.isRightClick()) {
event.getView().close();
new AppearanceGUI(player).open();
new AppearanceManagerGUI(player).open();
}
}
}

View file

@ -9,7 +9,7 @@ import org.bukkit.event.inventory.ClickType;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.jetbrains.annotations.NotNull;
public class ExitDoorItem extends BaseItem {
public class ExitGUI extends BaseItem {
@Override
public ItemProvider getItemProvider() {
return new ItemBuilder(Material.OAK_DOOR).setDisplayName("§fExit");

View file

@ -12,7 +12,7 @@ import org.bukkit.event.inventory.ClickType;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.jetbrains.annotations.NotNull;
public class ResetItem extends BaseItem {
public class ResetAppearance extends BaseItem {
@Override
public ItemProvider getItemProvider() {
final ItemBuilder builder = new ItemBuilder(Material.TNT);

View file

@ -3,14 +3,14 @@ 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.sub.SettingsGUI;
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 {
public class SettingsSubGUI extends BaseItem {
@Override
public ItemProvider getItemProvider() {
final ItemBuilder builder = new ItemBuilder(Material.COMPARATOR);

View file

@ -13,7 +13,7 @@ import org.bukkit.entity.Player;
import java.util.Optional;
public class BungeeCordCyclingItem {
public class BungeeCordCycling {
private final ItemProvider[] providers = new ItemProvider[]{
getItemProviderForValue(true),
getItemProviderForValue(false)

View file

@ -14,7 +14,7 @@ import org.bukkit.entity.Player;
import java.util.*;
public class LanguageCyclingItem {
public class LanguageCycling {
private final ItemProvider[] providers = getItems();
public BaseItem get(Player player) {

View file

@ -10,7 +10,7 @@ import org.bukkit.event.inventory.ClickType;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.jetbrains.annotations.NotNull;
public class ChangeNameItem extends BaseItem {
public class ChangeName extends BaseItem {
@Override
public ItemProvider getItemProvider() {
final ItemBuilder builder = new ItemBuilder(Material.NAME_TAG);

View file

@ -10,7 +10,7 @@ import org.bukkit.event.inventory.ClickType;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.jetbrains.annotations.NotNull;
public class ChangeNameAndSkinItem extends BaseItem {
public class ChangeNameAndSkin extends BaseItem {
@Override
public ItemProvider getItemProvider() {
final ItemBuilder builder = new ItemBuilder(Material.ENDER_PEARL);

View file

@ -10,7 +10,7 @@ import org.bukkit.event.inventory.ClickType;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.jetbrains.annotations.NotNull;
public class ChangeSkinItem extends BaseItem {
public class ChangeSkin extends BaseItem {
@Override
public ItemProvider getItemProvider() {
final ItemBuilder builder = new ItemBuilder(Material.PAINTING);

View file

@ -1,37 +0,0 @@
package net.artelnatif.nicko.gui.sub;
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.window.impl.single.SimpleWindow;
import net.artelnatif.nicko.gui.MainGUI;
import net.artelnatif.nicko.gui.items.admin.SkinInvalidatorItem;
import net.artelnatif.nicko.gui.items.common.BackItem;
import org.bukkit.entity.Player;
public class AdminPanelGUI {
private final Player player;
private final GUI gui;
private final String[] structure = new String[]{
"# # # # # # # # #",
"# % % X X S % % #",
"B # # # # # # # #"
};
public AdminPanelGUI(Player player) {
this.gui = new GUIBuilder<>(GUIType.NORMAL)
.setStructure(structure)
.addIngredient('S', new SkinInvalidatorItem())
.addIngredient('B', new BackItem(new MainGUI(player).getGUI()))
.build();
this.player = player;
}
public GUI getGUI() {
return gui;
}
public void open() {
new SimpleWindow(player, "Nicko", gui).show();
}
}

View file

@ -1,39 +0,0 @@
package net.artelnatif.nicko.gui.sub;
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.MainGUI;
import net.artelnatif.nicko.gui.items.common.BackItem;
import net.artelnatif.nicko.gui.items.skin.ChangeNameAndSkinItem;
import net.artelnatif.nicko.gui.items.skin.ChangeNameItem;
import net.artelnatif.nicko.gui.items.skin.ChangeSkinItem;
import org.bukkit.entity.Player;
public class AppearanceGUI {
private final Player player;
private final GUI gui;
private final String[] structure = new String[]{
"# # # # # # # # #",
"# % % % % % % % #",
"# % # N A S # % #",
"# % % % % % % % #",
"B # # # # # # # #"};
public AppearanceGUI(Player player) {
this.gui = new GUIBuilder<>(GUIType.NORMAL)
.setStructure(new Structure(structure))
.addIngredient('N', new ChangeNameItem())
.addIngredient('A', new ChangeNameAndSkinItem())
.addIngredient('S', new ChangeSkinItem())
.addIngredient('B', new BackItem(new MainGUI(player).getGUI()))
.build();
this.player = player;
}
public void open() {
new SimpleWindow(player, "Nicko", gui).show();
}
}

View file

@ -1,32 +0,0 @@
package net.artelnatif.nicko.gui.sub;
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.window.impl.single.SimpleWindow;
import net.artelnatif.nicko.gui.items.admin.invalidator.SkinCacheStatisticsItem;
import net.artelnatif.nicko.gui.items.common.BackItem;
import net.artelnatif.nicko.gui.items.admin.invalidator.SkinCacheInvalidateAllItem;
import org.bukkit.entity.Player;
public class SkinInvalidatorSelectionGUI {
private final Player player;
private final GUI gui;
private final String[] structure = new String[]{
"B # S A #",
};
public SkinInvalidatorSelectionGUI(Player player) {
this.gui = new GUIBuilder<>(GUIType.NORMAL)
.setStructure(structure)
.addIngredient('B', new BackItem(new AdminPanelGUI(player).getGUI()))
.addIngredient('A', new SkinCacheInvalidateAllItem())
.addIngredient('S', new SkinCacheStatisticsItem())
.build();
this.player = player;
}
public void open() {
new SimpleWindow(player, "Nicko", gui).show();
}
}