feat/fix/refactor: gui stuff
This commit is contained in:
parent
f4e2f9cb46
commit
50d42549de
28 changed files with 334 additions and 166 deletions
|
@ -8,7 +8,7 @@ import net.artelnatif.nicko.command.NickoCommand;
|
||||||
import net.artelnatif.nicko.config.NickoConfiguration;
|
import net.artelnatif.nicko.config.NickoConfiguration;
|
||||||
import net.artelnatif.nicko.event.PlayerJoinListener;
|
import net.artelnatif.nicko.event.PlayerJoinListener;
|
||||||
import net.artelnatif.nicko.event.PlayerQuitListener;
|
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.Locale;
|
||||||
import net.artelnatif.nicko.i18n.LocaleFileManager;
|
import net.artelnatif.nicko.i18n.LocaleFileManager;
|
||||||
import net.artelnatif.nicko.impl.Internals;
|
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.BLACK_STAINED_GLASS_PANE).setDisplayName(" ")));
|
||||||
Structure.addGlobalIngredient('%', new SimpleItem(new ItemBuilder(Material.ORANGE_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...");
|
getLogger().info("Loading persistence...");
|
||||||
dataStore = new PlayerDataStore(this);
|
dataStore = new PlayerDataStore(this);
|
||||||
|
|
|
@ -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();
|
||||||
|
}
|
||||||
|
}
|
|
@ -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();
|
||||||
|
}
|
||||||
|
}
|
|
@ -3,35 +3,35 @@ package net.artelnatif.nicko.gui;
|
||||||
import de.studiocode.invui.gui.GUI;
|
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.window.impl.single.SimpleWindow;
|
import de.studiocode.invui.window.impl.single.SimpleWindow;
|
||||||
import net.artelnatif.nicko.gui.items.main.AdminItem;
|
import net.artelnatif.nicko.gui.items.main.AdminSubGUI;
|
||||||
import net.artelnatif.nicko.gui.items.main.ResetItem;
|
import net.artelnatif.nicko.gui.items.main.ResetAppearance;
|
||||||
import net.artelnatif.nicko.gui.items.main.SettingsItem;
|
import net.artelnatif.nicko.gui.items.main.SettingsSubGUI;
|
||||||
import net.artelnatif.nicko.gui.items.main.SkinItem;
|
import net.artelnatif.nicko.gui.items.main.AppearanceManagerSubGUI;
|
||||||
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 final String[] structure = new String[]{
|
|
||||||
|
public MainGUI(Player player) {
|
||||||
|
final String[] dynamicStructure = new String[]{
|
||||||
"# # # # # # # # #",
|
"# # # # # # # # #",
|
||||||
"# % % % A % % % #",
|
"# % % % A % % % #",
|
||||||
"# % # R S P # % #",
|
"# % # R S P # % #",
|
||||||
"# % % % % % % % #",
|
"# % % % % % % % #",
|
||||||
"E # # # # # # # #"};
|
"E # # # # # # # #"};
|
||||||
|
|
||||||
public MainGUI(Player player) {
|
|
||||||
if (!player.hasPermission("nicko.admin") || !player.isOp()) {
|
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)
|
this.gui = new GUIBuilder<>(GUIType.NORMAL)
|
||||||
.setStructure(new Structure(structure))
|
.setStructure(dynamicStructure)
|
||||||
.addIngredient('R', new ResetItem())
|
.addIngredient('R', new ResetAppearance())
|
||||||
.addIngredient('S', new SkinItem())
|
.addIngredient('S', new AppearanceManagerSubGUI())
|
||||||
.addIngredient('P', new SettingsItem())
|
.addIngredient('P', new SettingsSubGUI())
|
||||||
.addIngredient('A', new AdminItem())
|
.addIngredient('A', new AdminSubGUI())
|
||||||
.build();
|
.build();
|
||||||
this.player = player;
|
this.player = player;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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.GUI;
|
||||||
import de.studiocode.invui.gui.builder.GUIBuilder;
|
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 de.studiocode.invui.window.impl.single.SimpleWindow;
|
||||||
import net.artelnatif.nicko.NickoBukkit;
|
import net.artelnatif.nicko.NickoBukkit;
|
||||||
import net.artelnatif.nicko.gui.MainGUI;
|
import net.artelnatif.nicko.gui.MainGUI;
|
||||||
import net.artelnatif.nicko.gui.items.common.BackItem;
|
import net.artelnatif.nicko.gui.items.common.GoBack;
|
||||||
import net.artelnatif.nicko.gui.items.settings.BungeeCordCyclingItem;
|
import net.artelnatif.nicko.gui.items.settings.BungeeCordCycling;
|
||||||
import net.artelnatif.nicko.gui.items.settings.LanguageCyclingItem;
|
import net.artelnatif.nicko.gui.items.settings.LanguageCycling;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
public class SettingsGUI {
|
public class SettingsGUI {
|
||||||
private final Player player;
|
private final Player player;
|
||||||
private final GUI gui;
|
private final GUI gui;
|
||||||
private final String[] structure = new String[]{
|
|
||||||
|
public SettingsGUI(Player player) {
|
||||||
|
final String[] dynamicStructure = new String[]{
|
||||||
"# # # # # # # # #",
|
"# # # # # # # # #",
|
||||||
"# % % L # T % % #",
|
"# % % L # T % % #",
|
||||||
"B # # # # # # # #"
|
"B # # # # # # # #"
|
||||||
};
|
};
|
||||||
|
|
||||||
public SettingsGUI(Player player) {
|
|
||||||
if (!NickoBukkit.getInstance().getNickoConfig().isBungeecordSupport()) {
|
if (!NickoBukkit.getInstance().getNickoConfig().isBungeecordSupport()) {
|
||||||
structure[1] = structure[1].replace("T", "#");
|
dynamicStructure[1] = dynamicStructure[1].replace("T", "#");
|
||||||
}
|
}
|
||||||
|
|
||||||
this.gui = new GUIBuilder<>(GUIType.NORMAL)
|
this.gui = new GUIBuilder<>(GUIType.NORMAL)
|
||||||
.setStructure(structure)
|
.setStructure(dynamicStructure)
|
||||||
.addIngredient('B', new BackItem(new MainGUI(player).getGUI()))
|
.addIngredient('B', new GoBack(new MainGUI(player).getGUI()))
|
||||||
.addIngredient('L', new LanguageCyclingItem().get(player))
|
.addIngredient('L', new LanguageCycling().get(player))
|
||||||
.addIngredient('T', new BungeeCordCyclingItem().get(player))
|
.addIngredient('T', new BungeeCordCycling().get(player))
|
||||||
.build();
|
.build();
|
||||||
this.player = player;
|
this.player = player;
|
||||||
}
|
}
|
|
@ -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();
|
||||||
|
}
|
||||||
|
}
|
68
nicko-core/src/main/java/net/artelnatif/nicko/gui/admin/cache/CacheDetailledGUI.java
vendored
Normal file
68
nicko-core/src/main/java/net/artelnatif/nicko/gui/admin/cache/CacheDetailledGUI.java
vendored
Normal 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();
|
||||||
|
}
|
||||||
|
}
|
|
@ -3,13 +3,13 @@ package net.artelnatif.nicko.gui.items.admin;
|
||||||
import de.studiocode.invui.item.ItemProvider;
|
import de.studiocode.invui.item.ItemProvider;
|
||||||
import de.studiocode.invui.item.builder.SkullBuilder;
|
import de.studiocode.invui.item.builder.SkullBuilder;
|
||||||
import de.studiocode.invui.item.impl.BaseItem;
|
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.entity.Player;
|
||||||
import org.bukkit.event.inventory.ClickType;
|
import org.bukkit.event.inventory.ClickType;
|
||||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
public class SkinInvalidatorItem extends BaseItem {
|
public class ManageCache extends BaseItem {
|
||||||
@Override
|
@Override
|
||||||
public ItemProvider getItemProvider() {
|
public ItemProvider getItemProvider() {
|
||||||
final SkullBuilder builder = new SkullBuilder("Notch");
|
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) {
|
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();
|
event.getView().close();
|
||||||
new SkinInvalidatorSelectionGUI(player).open();
|
new CacheManagementGUI(player).open();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
29
nicko-core/src/main/java/net/artelnatif/nicko/gui/items/admin/cache/CacheDetailed.java
vendored
Normal file
29
nicko-core/src/main/java/net/artelnatif/nicko/gui/items/admin/cache/CacheDetailed.java
vendored
Normal 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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -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.ItemProvider;
|
||||||
import de.studiocode.invui.item.builder.ItemBuilder;
|
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.bukkit.event.inventory.InventoryClickEvent;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
public class SkinCacheInvalidateAllItem extends BaseItem {
|
public class CacheInvalidate extends BaseItem {
|
||||||
@Override
|
@Override
|
||||||
public ItemProvider getItemProvider() {
|
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.setDisplayName("§6Invalidate the full Skin Cache");
|
||||||
builder.addLoreLines(
|
builder.addLoreLines(
|
||||||
"§c§oNOT RECOMMENDED",
|
"§c§oNOT RECOMMENDED",
|
|
@ -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.CacheStats;
|
||||||
import com.google.common.cache.LoadingCache;
|
import com.google.common.cache.LoadingCache;
|
||||||
|
@ -17,7 +17,7 @@ import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
public class SkinCacheStatisticsItem extends BaseItem {
|
public class CacheOverview extends BaseItem {
|
||||||
@Override
|
@Override
|
||||||
public ItemProvider getItemProvider() {
|
public ItemProvider getItemProvider() {
|
||||||
final ItemBuilder builder = new ItemBuilder(Material.OAK_SIGN);
|
final ItemBuilder builder = new ItemBuilder(Material.OAK_SIGN);
|
18
nicko-core/src/main/java/net/artelnatif/nicko/gui/items/admin/cache/SkinPlaceholder.java
vendored
Normal file
18
nicko-core/src/main/java/net/artelnatif/nicko/gui/items/admin/cache/SkinPlaceholder.java
vendored
Normal 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;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
|
@ -11,10 +11,10 @@ import org.bukkit.event.inventory.ClickType;
|
||||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
public class BackItem extends BaseItem {
|
public class GoBack extends BaseItem {
|
||||||
private final GUI gui;
|
private final GUI gui;
|
||||||
|
|
||||||
public BackItem(GUI gui) {
|
public GoBack(GUI gui) {
|
||||||
this.gui = gui;
|
this.gui = gui;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@ 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.sub.AdminPanelGUI;
|
import net.artelnatif.nicko.gui.AdminGUI;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.enchantments.Enchantment;
|
import org.bukkit.enchantments.Enchantment;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
@ -12,7 +12,7 @@ import org.bukkit.event.inventory.InventoryClickEvent;
|
||||||
import org.bukkit.inventory.ItemFlag;
|
import org.bukkit.inventory.ItemFlag;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
public class AdminItem extends BaseItem {
|
public class AdminSubGUI extends BaseItem {
|
||||||
@Override
|
@Override
|
||||||
public ItemProvider getItemProvider() {
|
public ItemProvider getItemProvider() {
|
||||||
final ItemBuilder builder = new ItemBuilder(Material.COMMAND_BLOCK);
|
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) {
|
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();
|
event.getView().close();
|
||||||
new AdminPanelGUI(player).open();
|
new AdminGUI(player).open();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -3,14 +3,14 @@ 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.sub.AppearanceGUI;
|
import net.artelnatif.nicko.gui.AppearanceManagerGUI;
|
||||||
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;
|
||||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
public class SkinItem extends BaseItem {
|
public class AppearanceManagerSubGUI extends BaseItem {
|
||||||
@Override
|
@Override
|
||||||
public ItemProvider getItemProvider() {
|
public ItemProvider getItemProvider() {
|
||||||
final ItemBuilder builder = new ItemBuilder(Material.ENDER_EYE);
|
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) {
|
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();
|
event.getView().close();
|
||||||
new AppearanceGUI(player).open();
|
new AppearanceManagerGUI(player).open();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -9,7 +9,7 @@ import org.bukkit.event.inventory.ClickType;
|
||||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
public class ExitDoorItem extends BaseItem {
|
public class ExitGUI extends BaseItem {
|
||||||
@Override
|
@Override
|
||||||
public ItemProvider getItemProvider() {
|
public ItemProvider getItemProvider() {
|
||||||
return new ItemBuilder(Material.OAK_DOOR).setDisplayName("§fExit");
|
return new ItemBuilder(Material.OAK_DOOR).setDisplayName("§fExit");
|
|
@ -12,7 +12,7 @@ import org.bukkit.event.inventory.ClickType;
|
||||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
public class ResetItem extends BaseItem {
|
public class ResetAppearance extends BaseItem {
|
||||||
@Override
|
@Override
|
||||||
public ItemProvider getItemProvider() {
|
public ItemProvider getItemProvider() {
|
||||||
final ItemBuilder builder = new ItemBuilder(Material.TNT);
|
final ItemBuilder builder = new ItemBuilder(Material.TNT);
|
|
@ -3,14 +3,14 @@ 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.sub.SettingsGUI;
|
import net.artelnatif.nicko.gui.SettingsGUI;
|
||||||
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;
|
||||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
public class SettingsItem extends BaseItem {
|
public class SettingsSubGUI extends BaseItem {
|
||||||
@Override
|
@Override
|
||||||
public ItemProvider getItemProvider() {
|
public ItemProvider getItemProvider() {
|
||||||
final ItemBuilder builder = new ItemBuilder(Material.COMPARATOR);
|
final ItemBuilder builder = new ItemBuilder(Material.COMPARATOR);
|
|
@ -13,7 +13,7 @@ import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
public class BungeeCordCyclingItem {
|
public class BungeeCordCycling {
|
||||||
private final ItemProvider[] providers = new ItemProvider[]{
|
private final ItemProvider[] providers = new ItemProvider[]{
|
||||||
getItemProviderForValue(true),
|
getItemProviderForValue(true),
|
||||||
getItemProviderForValue(false)
|
getItemProviderForValue(false)
|
|
@ -14,7 +14,7 @@ import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
public class LanguageCyclingItem {
|
public class LanguageCycling {
|
||||||
private final ItemProvider[] providers = getItems();
|
private final ItemProvider[] providers = getItems();
|
||||||
|
|
||||||
public BaseItem get(Player player) {
|
public BaseItem get(Player player) {
|
|
@ -10,7 +10,7 @@ import org.bukkit.event.inventory.ClickType;
|
||||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
public class ChangeNameItem extends BaseItem {
|
public class ChangeName extends BaseItem {
|
||||||
@Override
|
@Override
|
||||||
public ItemProvider getItemProvider() {
|
public ItemProvider getItemProvider() {
|
||||||
final ItemBuilder builder = new ItemBuilder(Material.NAME_TAG);
|
final ItemBuilder builder = new ItemBuilder(Material.NAME_TAG);
|
|
@ -10,7 +10,7 @@ import org.bukkit.event.inventory.ClickType;
|
||||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
public class ChangeNameAndSkinItem extends BaseItem {
|
public class ChangeNameAndSkin extends BaseItem {
|
||||||
@Override
|
@Override
|
||||||
public ItemProvider getItemProvider() {
|
public ItemProvider getItemProvider() {
|
||||||
final ItemBuilder builder = new ItemBuilder(Material.ENDER_PEARL);
|
final ItemBuilder builder = new ItemBuilder(Material.ENDER_PEARL);
|
|
@ -10,7 +10,7 @@ import org.bukkit.event.inventory.ClickType;
|
||||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
public class ChangeSkinItem extends BaseItem {
|
public class ChangeSkin extends BaseItem {
|
||||||
@Override
|
@Override
|
||||||
public ItemProvider getItemProvider() {
|
public ItemProvider getItemProvider() {
|
||||||
final ItemBuilder builder = new ItemBuilder(Material.PAINTING);
|
final ItemBuilder builder = new ItemBuilder(Material.PAINTING);
|
|
@ -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();
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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();
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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();
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in a new issue