From 5413b7aca9d6676c825df6470c51654f57cc7ad4 Mon Sep 17 00:00:00 2001 From: ineanto Date: Sat, 1 Apr 2023 11:25:51 +0200 Subject: [PATCH] feat: updated to latest version of InvUI --- core/pom.xml | 19 +++---- .../net/artelnatif/nicko/NickoBukkit.java | 6 +- .../net/artelnatif/nicko/gui/AdminGUI.java | 16 +++--- .../nicko/gui/AppearanceManagerGUI.java | 14 ++--- .../net/artelnatif/nicko/gui/MainGUI.java | 14 ++--- .../net/artelnatif/nicko/gui/SettingsGUI.java | 12 ++-- .../nicko/gui/admin/CacheManagementGUI.java | 14 ++--- .../gui/admin/cache/CacheDetailledGUI.java | 48 +++++++--------- .../nicko/gui/items/admin/ManageCache.java | 6 +- .../gui/items/admin/cache/CacheDetailed.java | 39 ++++++------- .../items/admin/cache/CacheInvalidate.java | 51 +++++++++-------- .../gui/items/admin/cache/CacheOverview.java | 43 ++++++-------- .../items/admin/cache/SkinPlaceholder.java | 6 +- .../nicko/gui/items/common/GoBack.java | 44 ++++++--------- .../nicko/gui/items/common/ScrollDown.java | 11 ++-- .../nicko/gui/items/common/ScrollUp.java | 10 ++-- .../nicko/gui/items/main/AdminSubGUI.java | 43 +++++++------- .../items/main/AppearanceManagerSubGUI.java | 39 ++++++------- .../nicko/gui/items/main/ExitGUI.java | 27 ++++----- .../nicko/gui/items/main/ResetAppearance.java | 56 +++++++++---------- .../nicko/gui/items/main/SettingsSubGUI.java | 39 ++++++------- .../gui/items/settings/BungeeCordCycling.java | 12 ++-- .../gui/items/settings/LanguageCycling.java | 17 +++--- .../gui/items/settings/OptionUnavailable.java | 29 ++++------ .../nicko/gui/items/skin/ChangeName.java | 40 ++++++------- .../gui/items/skin/ChangeNameAndSkin.java | 40 ++++++------- .../nicko/gui/items/skin/ChangeSkin.java | 40 ++++++------- .../nicko/i18n/LocaleFileManager.java | 2 +- .../nicko/impl/InternalsProvider.java | 3 + pom.xml | 4 +- .../net/artelnatif/nicko/impl/v1_19_R3.java | 2 +- 31 files changed, 334 insertions(+), 412 deletions(-) diff --git a/core/pom.xml b/core/pom.xml index 7f78d5d..f5f4aab 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -15,7 +15,6 @@ UTF-8 - 2.6.1.Final @@ -23,10 +22,6 @@ papermc https://repo.papermc.io/repository/maven-public/ - - xenondevs - https://repo.xenondevs.xyz/releases - spigot-repo https://hub.spigotmc.org/nexus/content/groups/public/ @@ -58,9 +53,9 @@ - de.studiocode.invui - InvUI - 0.10.2 + xyz.xenondevs.invui + invui + 1.0-SNAPSHOT @@ -86,23 +81,23 @@ org.mariadb.jdbc mariadb-java-client - 3.1.0 + 3.1.2 com.github.jsixface yamlconfig - 1.1.1 + 1.1.2 com.fasterxml.jackson.core jackson-core - 2.14.0-rc1 + 2.14.2 com.fasterxml.jackson.dataformat jackson-dataformat-yaml - 2.14.0-rc1 + 2.14.2 diff --git a/core/src/main/java/net/artelnatif/nicko/NickoBukkit.java b/core/src/main/java/net/artelnatif/nicko/NickoBukkit.java index b080349..16554ce 100644 --- a/core/src/main/java/net/artelnatif/nicko/NickoBukkit.java +++ b/core/src/main/java/net/artelnatif/nicko/NickoBukkit.java @@ -1,8 +1,8 @@ package net.artelnatif.nicko; -import de.studiocode.invui.gui.structure.Structure; -import de.studiocode.invui.item.builder.ItemBuilder; -import de.studiocode.invui.item.impl.SimpleItem; +import xyz.xenondevs.invui.gui.structure.Structure; +import xyz.xenondevs.invui.item.builder.ItemBuilder; +import xyz.xenondevs.invui.item.impl.SimpleItem; import net.artelnatif.nicko.command.NickoCommand; import net.artelnatif.nicko.config.Configuration; import net.artelnatif.nicko.config.ConfigurationManager; diff --git a/core/src/main/java/net/artelnatif/nicko/gui/AdminGUI.java b/core/src/main/java/net/artelnatif/nicko/gui/AdminGUI.java index b7ac911..cdfc4be 100644 --- a/core/src/main/java/net/artelnatif/nicko/gui/AdminGUI.java +++ b/core/src/main/java/net/artelnatif/nicko/gui/AdminGUI.java @@ -1,19 +1,17 @@ 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.admin.ManageCache; +import net.artelnatif.nicko.gui.items.common.GoBack; import org.bukkit.entity.Player; +import xyz.xenondevs.invui.gui.Gui; +import xyz.xenondevs.invui.window.Window; public class AdminGUI { private final Player player; - private final GUI gui; + private final Gui gui; public AdminGUI(Player player) { - this.gui = new GUIBuilder<>(GUIType.NORMAL) + this.gui = Gui.normal() .setStructure( "# # # # # # # # #", "# % % X X S % % #", @@ -25,11 +23,11 @@ public class AdminGUI { this.player = player; } - public GUI getGUI() { + public Gui getGUI() { return gui; } public void open() { - new SimpleWindow(player, "Nicko", gui).show(); + Window.single().setGui(gui).setTitle("Nicko").open(player); } } diff --git a/core/src/main/java/net/artelnatif/nicko/gui/AppearanceManagerGUI.java b/core/src/main/java/net/artelnatif/nicko/gui/AppearanceManagerGUI.java index 98837a7..bba1055 100644 --- a/core/src/main/java/net/artelnatif/nicko/gui/AppearanceManagerGUI.java +++ b/core/src/main/java/net/artelnatif/nicko/gui/AppearanceManagerGUI.java @@ -1,21 +1,19 @@ 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.ChangeSkin; 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; +import xyz.xenondevs.invui.gui.Gui; +import xyz.xenondevs.invui.window.Window; public class AppearanceManagerGUI { private final Player player; - private final GUI gui; + private final Gui gui; public AppearanceManagerGUI(Player player) { - this.gui = new GUIBuilder<>(GUIType.NORMAL) + this.gui = Gui.normal() .setStructure( "# # # # # # # # #", "# % % % % % % % #", @@ -32,6 +30,6 @@ public class AppearanceManagerGUI { } public void open() { - new SimpleWindow(player, "Nicko", gui).show(); + Window.single().setGui(gui).setTitle("Nicko").open(player); } } diff --git a/core/src/main/java/net/artelnatif/nicko/gui/MainGUI.java b/core/src/main/java/net/artelnatif/nicko/gui/MainGUI.java index d7d2324..8e66292 100644 --- a/core/src/main/java/net/artelnatif/nicko/gui/MainGUI.java +++ b/core/src/main/java/net/artelnatif/nicko/gui/MainGUI.java @@ -1,18 +1,16 @@ 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.main.AdminSubGUI; import net.artelnatif.nicko.gui.items.main.AppearanceManagerSubGUI; import net.artelnatif.nicko.gui.items.main.ResetAppearance; import net.artelnatif.nicko.gui.items.main.SettingsSubGUI; import org.bukkit.entity.Player; +import xyz.xenondevs.invui.gui.Gui; +import xyz.xenondevs.invui.window.Window; public class MainGUI { private final Player player; - private final GUI gui; + private final Gui gui; public MainGUI(Player player) { final String[] dynamicStructure = new String[]{ @@ -26,7 +24,7 @@ public class MainGUI { dynamicStructure[3] = dynamicStructure[3].replace("A", "#"); } - this.gui = new GUIBuilder<>(GUIType.NORMAL) + this.gui = Gui.normal() .setStructure(dynamicStructure) .addIngredient('R', new ResetAppearance()) .addIngredient('S', new AppearanceManagerSubGUI()) @@ -36,11 +34,11 @@ public class MainGUI { this.player = player; } - public GUI getGUI() { + public Gui getGUI() { return gui; } public void open() { - new SimpleWindow(player, "Nicko", gui).show(); + Window.single().setGui(gui).setTitle("Nicko").open(player); } } diff --git a/core/src/main/java/net/artelnatif/nicko/gui/SettingsGUI.java b/core/src/main/java/net/artelnatif/nicko/gui/SettingsGUI.java index 98bbdda..6e302bf 100644 --- a/core/src/main/java/net/artelnatif/nicko/gui/SettingsGUI.java +++ b/core/src/main/java/net/artelnatif/nicko/gui/SettingsGUI.java @@ -1,18 +1,16 @@ 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.settings.BungeeCordCycling; import net.artelnatif.nicko.gui.items.settings.LanguageCycling; import net.artelnatif.nicko.gui.items.settings.OptionUnavailable; import org.bukkit.entity.Player; +import xyz.xenondevs.invui.gui.Gui; +import xyz.xenondevs.invui.window.Window; public class SettingsGUI { private final Player player; - private final GUI gui; + private final Gui gui; public SettingsGUI(Player player) { final String[] dynamicStructure = new String[]{ @@ -24,7 +22,7 @@ public class SettingsGUI { // TODO: 3/6/23 Replace when Redis is not enabled dynamicStructure[1] = dynamicStructure[1].replace("T", "U"); - this.gui = new GUIBuilder<>(GUIType.NORMAL) + this.gui = Gui.normal() .setStructure(dynamicStructure) .addIngredient('B', new GoBack(new MainGUI(player).getGUI())) .addIngredient('L', new LanguageCycling().get(player)) @@ -35,6 +33,6 @@ public class SettingsGUI { } public void open() { - new SimpleWindow(player, "Nicko", gui).show(); + Window.single().setGui(gui).setTitle("Nicko").open(player); } } diff --git a/core/src/main/java/net/artelnatif/nicko/gui/admin/CacheManagementGUI.java b/core/src/main/java/net/artelnatif/nicko/gui/admin/CacheManagementGUI.java index ac23ff1..549d230 100644 --- a/core/src/main/java/net/artelnatif/nicko/gui/admin/CacheManagementGUI.java +++ b/core/src/main/java/net/artelnatif/nicko/gui/admin/CacheManagementGUI.java @@ -1,22 +1,20 @@ 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; +import xyz.xenondevs.invui.gui.Gui; +import xyz.xenondevs.invui.window.Window; public class CacheManagementGUI { private final Player player; - private final GUI gui; + private final Gui gui; public CacheManagementGUI(Player player) { - this.gui = new GUIBuilder<>(GUIType.NORMAL) + this.gui = Gui.normal() .setStructure("B # S A D") .addIngredient('B', new GoBack(new AdminGUI(player).getGUI())) .addIngredient('S', new CacheOverview()) @@ -26,11 +24,11 @@ public class CacheManagementGUI { this.player = player; } - public GUI getGUI() { + public Gui getGUI() { return gui; } public void open() { - new SimpleWindow(player, "Nicko", gui).show(); + Window.single().setGui(gui).setTitle("Nicko").open(player); } } diff --git a/core/src/main/java/net/artelnatif/nicko/gui/admin/cache/CacheDetailledGUI.java b/core/src/main/java/net/artelnatif/nicko/gui/admin/cache/CacheDetailledGUI.java index 14723a7..f233a3a 100644 --- a/core/src/main/java/net/artelnatif/nicko/gui/admin/cache/CacheDetailledGUI.java +++ b/core/src/main/java/net/artelnatif/nicko/gui/admin/cache/CacheDetailledGUI.java @@ -1,11 +1,9 @@ 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.window.impl.single.SimpleWindow; +import xyz.xenondevs.invui.gui.Gui; +import xyz.xenondevs.invui.gui.ScrollGui; +import xyz.xenondevs.invui.gui.structure.Markers; +import xyz.xenondevs.invui.item.Item; import net.artelnatif.nicko.NickoBukkit; import net.artelnatif.nicko.gui.items.admin.cache.SkinPlaceholder; import net.artelnatif.nicko.gui.admin.CacheManagementGUI; @@ -14,6 +12,7 @@ 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 xyz.xenondevs.invui.window.Window; import java.util.List; import java.util.Map; @@ -23,7 +22,7 @@ import java.util.stream.Collectors; public class CacheDetailledGUI { private final Player player; - private final GUI gui; + private final Gui gui; public CacheDetailledGUI(Player player) { final ConcurrentMap> skins = NickoBukkit.getInstance().getMojangAPI().getCache().asMap(); @@ -36,29 +35,24 @@ public class CacheDetailledGUI { .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_HORIZONTAL) - .addIngredient('U', new ScrollUp()) - .addIngredient('D', new ScrollDown()) - .addIngredient('B', new GoBack(new CacheManagementGUI(player).getGUI())) - .setItems(items) - .build(); + gui = ScrollGui.items(guiItemBuilder -> { + guiItemBuilder.setStructure("% # # # # # # # %", + "# x x x x x x U #", + "# x x x x x x # #", + "# x x x x x x D #", + "# x x x x x x # #", + "B # # # # # # # %"); + guiItemBuilder.addIngredient('x', Markers.CONTENT_LIST_SLOT_HORIZONTAL); + guiItemBuilder.addIngredient('U', new ScrollUp()); + guiItemBuilder.addIngredient('D', new ScrollDown()); + guiItemBuilder.addIngredient('B', new GoBack(new CacheManagementGUI(player).getGUI())); + guiItemBuilder.setContent(items); + }); + this.player = player; } - public GUI getGUI() { - return gui; - } - public void open() { - new SimpleWindow(player, "Nicko", gui).show(); + Window.single().setGui(gui).setTitle("Nicko").open(player); } } diff --git a/core/src/main/java/net/artelnatif/nicko/gui/items/admin/ManageCache.java b/core/src/main/java/net/artelnatif/nicko/gui/items/admin/ManageCache.java index d7c7562..ed814ec 100644 --- a/core/src/main/java/net/artelnatif/nicko/gui/items/admin/ManageCache.java +++ b/core/src/main/java/net/artelnatif/nicko/gui/items/admin/ManageCache.java @@ -1,8 +1,8 @@ package net.artelnatif.nicko.gui.items.admin; -import de.studiocode.invui.item.builder.ItemBuilder; -import de.studiocode.invui.item.builder.SkullBuilder; -import de.studiocode.invui.item.impl.AsyncItem; +import xyz.xenondevs.invui.item.builder.ItemBuilder; +import xyz.xenondevs.invui.item.builder.SkullBuilder; +import xyz.xenondevs.invui.item.impl.AsyncItem; import net.artelnatif.nicko.gui.admin.CacheManagementGUI; import org.bukkit.Material; import org.bukkit.entity.Player; diff --git a/core/src/main/java/net/artelnatif/nicko/gui/items/admin/cache/CacheDetailed.java b/core/src/main/java/net/artelnatif/nicko/gui/items/admin/cache/CacheDetailed.java index 2b81e3a..48e1eca 100644 --- a/core/src/main/java/net/artelnatif/nicko/gui/items/admin/cache/CacheDetailed.java +++ b/core/src/main/java/net/artelnatif/nicko/gui/items/admin/cache/CacheDetailed.java @@ -1,29 +1,26 @@ 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; +import xyz.xenondevs.invui.item.builder.ItemBuilder; +import xyz.xenondevs.invui.item.impl.SuppliedItem; -public class CacheDetailed extends BaseItem { - @Override - public ItemProvider getItemProvider() { - final ItemBuilder builder = new ItemBuilder(Material.PAPER); - builder.setDisplayName("§6Invalidate specific skin..."); - builder.addLoreLines("§7Select a specific skin to invalidate."); - 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(); - } +public class CacheDetailed extends SuppliedItem { + public CacheDetailed() { + super(() -> { + final ItemBuilder builder = new ItemBuilder(Material.PAPER); + builder.setDisplayName("§6Invalidate specific skin..."); + builder.addLoreLines("§7Select a specific skin to invalidate."); + return builder; + }, (click) -> { + final ClickType clickType = click.getClickType(); + if (clickType.isLeftClick() || clickType.isRightClick()) { + click.getEvent().getView().close(); + new CacheDetailledGUI(click.getPlayer()).open(); + return true; + } + return false; + }); } } diff --git a/core/src/main/java/net/artelnatif/nicko/gui/items/admin/cache/CacheInvalidate.java b/core/src/main/java/net/artelnatif/nicko/gui/items/admin/cache/CacheInvalidate.java index b448484..f454e92 100644 --- a/core/src/main/java/net/artelnatif/nicko/gui/items/admin/cache/CacheInvalidate.java +++ b/core/src/main/java/net/artelnatif/nicko/gui/items/admin/cache/CacheInvalidate.java @@ -1,37 +1,36 @@ 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.NickoBukkit; import net.artelnatif.nicko.i18n.I18N; import net.artelnatif.nicko.i18n.I18NDict; 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; +import xyz.xenondevs.invui.item.builder.ItemBuilder; +import xyz.xenondevs.invui.item.impl.SuppliedItem; -public class CacheInvalidate extends BaseItem { - @Override - public ItemProvider getItemProvider() { - final ItemBuilder builder = new ItemBuilder(Material.TNT); - builder.setDisplayName("§fInvalidate §6skin cache"); - builder.addLoreLines( - "§c§oNOT RECOMMENDED", - "§7Invalidates every skin entry present in the cache.", - "§7Does not reset player disguises.", - "§7Could be useful if a skin has been updated", - "§7recently and the cache is now outdated."); - return builder; - } - - @Override - public void handleClick(@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { - if (clickType.isLeftClick() || clickType.isRightClick()) { - event.getView().close(); - player.sendMessage(I18N.translate(player, I18NDict.Event.Admin.CACHE_CLEAN)); - NickoBukkit.getInstance().getMojangAPI().getCache().invalidateAll(); - } +public class CacheInvalidate extends SuppliedItem { + public CacheInvalidate() { + super(() -> { + final ItemBuilder builder = new ItemBuilder(Material.TNT); + builder.setDisplayName("§fInvalidate §6skin cache"); + builder.addLoreLines( + "§c§oNOT RECOMMENDED", + "§7Invalidates every skin entry present in the cache.", + "§7Does not reset player disguises.", + "§7Could be useful if a skin has been updated", + "§7recently and the cache is now outdated."); + return builder; + }, (click) -> { + final ClickType clickType = click.getClickType(); + if (clickType.isLeftClick() || clickType.isRightClick()) { + final Player player = click.getPlayer(); + click.getEvent().getView().close(); + player.sendMessage(I18N.translate(player, I18NDict.Event.Admin.CACHE_CLEAN)); + NickoBukkit.getInstance().getMojangAPI().getCache().invalidateAll(); + return true; + } + return false; + }); } } diff --git a/core/src/main/java/net/artelnatif/nicko/gui/items/admin/cache/CacheOverview.java b/core/src/main/java/net/artelnatif/nicko/gui/items/admin/cache/CacheOverview.java index e09b64d..b916b95 100644 --- a/core/src/main/java/net/artelnatif/nicko/gui/items/admin/cache/CacheOverview.java +++ b/core/src/main/java/net/artelnatif/nicko/gui/items/admin/cache/CacheOverview.java @@ -2,38 +2,27 @@ package net.artelnatif.nicko.gui.items.admin.cache; import com.google.common.cache.CacheStats; import com.google.common.cache.LoadingCache; -import de.studiocode.invui.item.ItemProvider; -import de.studiocode.invui.item.builder.ItemBuilder; -import de.studiocode.invui.item.impl.BaseItem; import net.artelnatif.nicko.NickoBukkit; import net.artelnatif.nicko.mojang.MojangSkin; 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; +import xyz.xenondevs.invui.item.builder.ItemBuilder; +import xyz.xenondevs.invui.item.impl.SuppliedItem; import java.util.Optional; -public class CacheOverview extends BaseItem { - @Override - public ItemProvider getItemProvider() { - final ItemBuilder builder = new ItemBuilder(Material.OAK_SIGN); - final LoadingCache> cache = NickoBukkit.getInstance().getMojangAPI().getCache(); - final CacheStats stats = cache.stats(); - builder.setDisplayName("§6Skin cache §foverview:"); - builder.addLoreLines( - "Request Count: §2" + stats.requestCount(), - "Skin Cached: §2" + Math.round(cache.size()), - "§7§oCache is cleared every 24 hours.", - "§7§o(Click to refresh)"); - return builder; - } - - @Override - public void handleClick(@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { - if (clickType.isLeftClick() || clickType.isRightClick()) { - notifyWindows(); - } +public class CacheOverview extends SuppliedItem { + public CacheOverview() { + super(() -> { + final ItemBuilder builder = new ItemBuilder(Material.OAK_SIGN); + final LoadingCache> cache = NickoBukkit.getInstance().getMojangAPI().getCache(); + final CacheStats stats = cache.stats(); + builder.setDisplayName("§6Skin cache §foverview:"); + builder.addLoreLines( + "Request Count: §2" + stats.requestCount(), + "Skin Cached: §2" + Math.round(cache.size()), + "§7§oCache is cleared every 24 hours.", + "§7§o(Click to refresh)"); + return builder; + }, (event) -> true); } } \ No newline at end of file diff --git a/core/src/main/java/net/artelnatif/nicko/gui/items/admin/cache/SkinPlaceholder.java b/core/src/main/java/net/artelnatif/nicko/gui/items/admin/cache/SkinPlaceholder.java index ae227a1..2984c53 100644 --- a/core/src/main/java/net/artelnatif/nicko/gui/items/admin/cache/SkinPlaceholder.java +++ b/core/src/main/java/net/artelnatif/nicko/gui/items/admin/cache/SkinPlaceholder.java @@ -1,9 +1,9 @@ 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; +import xyz.xenondevs.invui.item.builder.ItemBuilder; +import xyz.xenondevs.invui.item.builder.SkullBuilder; +import xyz.xenondevs.invui.item.impl.AsyncItem; import java.util.UUID; diff --git a/core/src/main/java/net/artelnatif/nicko/gui/items/common/GoBack.java b/core/src/main/java/net/artelnatif/nicko/gui/items/common/GoBack.java index 73609d2..9b966ce 100644 --- a/core/src/main/java/net/artelnatif/nicko/gui/items/common/GoBack.java +++ b/core/src/main/java/net/artelnatif/nicko/gui/items/common/GoBack.java @@ -1,34 +1,22 @@ package net.artelnatif.nicko.gui.items.common; -import de.studiocode.invui.gui.GUI; -import de.studiocode.invui.item.ItemProvider; -import de.studiocode.invui.item.builder.ItemBuilder; -import de.studiocode.invui.item.impl.BaseItem; -import de.studiocode.invui.window.impl.single.SimpleWindow; 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; +import xyz.xenondevs.invui.gui.Gui; +import xyz.xenondevs.invui.item.builder.ItemBuilder; +import xyz.xenondevs.invui.item.impl.SuppliedItem; +import xyz.xenondevs.invui.window.Window; -public class GoBack extends BaseItem { - private final GUI gui; - - public GoBack(GUI gui) { - this.gui = gui; - } - - @Override - public ItemProvider getItemProvider() { - final ItemBuilder builder = new ItemBuilder(Material.ARROW); - builder.setDisplayName("Go back"); - builder.addLoreLines("§7Return to the previous window."); - return builder; - } - - @Override - public void handleClick(@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { - event.getView().close(); - new SimpleWindow(player, "Nicko", gui).show(); +public class GoBack extends SuppliedItem { + public GoBack(Gui gui) { + super(() -> { + final ItemBuilder builder = new ItemBuilder(Material.ARROW); + builder.setDisplayName("Go back"); + builder.addLoreLines("§7Return to the previous window."); + return builder; + }, click -> { + click.getEvent().getView().close(); + Window.single().setGui(gui).setTitle("Nicko").open(click.getPlayer()); + return true; + }); } } diff --git a/core/src/main/java/net/artelnatif/nicko/gui/items/common/ScrollDown.java b/core/src/main/java/net/artelnatif/nicko/gui/items/common/ScrollDown.java index 3050dda..8cc8536 100644 --- a/core/src/main/java/net/artelnatif/nicko/gui/items/common/ScrollDown.java +++ b/core/src/main/java/net/artelnatif/nicko/gui/items/common/ScrollDown.java @@ -1,10 +1,10 @@ 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; +import xyz.xenondevs.invui.gui.ScrollGui; +import xyz.xenondevs.invui.item.ItemProvider; +import xyz.xenondevs.invui.item.builder.ItemBuilder; +import xyz.xenondevs.invui.item.impl.controlitem.ScrollItem; public class ScrollDown extends ScrollItem { @@ -13,7 +13,7 @@ public class ScrollDown extends ScrollItem { } @Override - public ItemProvider getItemProvider(ScrollGUI gui) { + public ItemProvider getItemProvider(ScrollGui gui) { ItemBuilder builder = new ItemBuilder(Material.GREEN_STAINED_GLASS_PANE); builder.setDisplayName("§7Scroll down"); if (!gui.canScroll(1)) @@ -21,6 +21,5 @@ public class ScrollDown extends ScrollItem { return builder; } - } diff --git a/core/src/main/java/net/artelnatif/nicko/gui/items/common/ScrollUp.java b/core/src/main/java/net/artelnatif/nicko/gui/items/common/ScrollUp.java index 0be6e71..cd30663 100644 --- a/core/src/main/java/net/artelnatif/nicko/gui/items/common/ScrollUp.java +++ b/core/src/main/java/net/artelnatif/nicko/gui/items/common/ScrollUp.java @@ -1,10 +1,10 @@ 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; +import xyz.xenondevs.invui.gui.ScrollGui; +import xyz.xenondevs.invui.item.ItemProvider; +import xyz.xenondevs.invui.item.builder.ItemBuilder; +import xyz.xenondevs.invui.item.impl.controlitem.ScrollItem; public class ScrollUp extends ScrollItem { @@ -13,7 +13,7 @@ public class ScrollUp extends ScrollItem { } @Override - public ItemProvider getItemProvider(ScrollGUI gui) { + public ItemProvider getItemProvider(ScrollGui gui) { ItemBuilder builder = new ItemBuilder(Material.RED_STAINED_GLASS_PANE); builder.setDisplayName("§7Scroll up"); if (!gui.canScroll(-1)) diff --git a/core/src/main/java/net/artelnatif/nicko/gui/items/main/AdminSubGUI.java b/core/src/main/java/net/artelnatif/nicko/gui/items/main/AdminSubGUI.java index b2e4d47..0ad8982 100644 --- a/core/src/main/java/net/artelnatif/nicko/gui/items/main/AdminSubGUI.java +++ b/core/src/main/java/net/artelnatif/nicko/gui/items/main/AdminSubGUI.java @@ -1,33 +1,30 @@ 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.AdminGUI; import org.bukkit.Material; import org.bukkit.enchantments.Enchantment; -import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; -import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.inventory.ItemFlag; -import org.jetbrains.annotations.NotNull; +import xyz.xenondevs.invui.item.builder.ItemBuilder; +import xyz.xenondevs.invui.item.impl.SuppliedItem; -public class AdminSubGUI extends BaseItem { - @Override - public ItemProvider getItemProvider() { - final ItemBuilder builder = new ItemBuilder(Material.COMMAND_BLOCK); - builder.addEnchantment(Enchantment.DAMAGE_ALL, 1, false); - builder.addItemFlags(ItemFlag.HIDE_ENCHANTS); - builder.setDisplayName("§cAdministration panel..."); - builder.addLoreLines("§7Access the administration panel."); - return builder; - } - - @Override - public void handleClick(@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { - if (clickType.isLeftClick() || clickType.isRightClick()) { - event.getView().close(); - new AdminGUI(player).open(); - } +public class AdminSubGUI extends SuppliedItem { + public AdminSubGUI() { + super(() -> { + final ItemBuilder builder = new ItemBuilder(Material.COMMAND_BLOCK); + builder.addEnchantment(Enchantment.DAMAGE_ALL, 1, false); + builder.addItemFlags(ItemFlag.HIDE_ENCHANTS); + builder.setDisplayName("§cAdministration panel..."); + builder.addLoreLines("§7Access the administration panel."); + return builder; + }, click -> { + final ClickType clickType = click.getClickType(); + if (clickType.isLeftClick() || clickType.isRightClick()) { + click.getEvent().getView().close(); + new AdminGUI(click.getPlayer()).open(); + return true; + } + return false; + }); } } diff --git a/core/src/main/java/net/artelnatif/nicko/gui/items/main/AppearanceManagerSubGUI.java b/core/src/main/java/net/artelnatif/nicko/gui/items/main/AppearanceManagerSubGUI.java index 68091f5..6529667 100644 --- a/core/src/main/java/net/artelnatif/nicko/gui/items/main/AppearanceManagerSubGUI.java +++ b/core/src/main/java/net/artelnatif/nicko/gui/items/main/AppearanceManagerSubGUI.java @@ -1,29 +1,26 @@ 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.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; +import xyz.xenondevs.invui.item.builder.ItemBuilder; +import xyz.xenondevs.invui.item.impl.SuppliedItem; -public class AppearanceManagerSubGUI extends BaseItem { - @Override - public ItemProvider getItemProvider() { - final ItemBuilder builder = new ItemBuilder(Material.ENDER_EYE); - builder.setDisplayName("§fManage §6appearance§f..."); - builder.addLoreLines("§7Access the appearance manager."); - return builder; - } - - @Override - public void handleClick(@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { - if (clickType.isLeftClick() || clickType.isRightClick()) { - event.getView().close(); - new AppearanceManagerGUI(player).open(); - } +public class AppearanceManagerSubGUI extends SuppliedItem { + public AppearanceManagerSubGUI() { + super(() -> { + final ItemBuilder builder = new ItemBuilder(Material.ENDER_EYE); + builder.setDisplayName("§fManage §6appearance§f..."); + builder.addLoreLines("§7Access the appearance manager."); + return builder; + }, (click) -> { + final ClickType clickType = click.getClickType(); + if (clickType.isLeftClick() || clickType.isRightClick()) { + click.getEvent().getView().close(); + new AppearanceManagerGUI(click.getPlayer()).open(); + return true; + } + return false; + }); } } diff --git a/core/src/main/java/net/artelnatif/nicko/gui/items/main/ExitGUI.java b/core/src/main/java/net/artelnatif/nicko/gui/items/main/ExitGUI.java index ac313fb..3992b2a 100644 --- a/core/src/main/java/net/artelnatif/nicko/gui/items/main/ExitGUI.java +++ b/core/src/main/java/net/artelnatif/nicko/gui/items/main/ExitGUI.java @@ -1,24 +1,17 @@ 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 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; +import xyz.xenondevs.invui.item.builder.ItemBuilder; +import xyz.xenondevs.invui.item.impl.SimpleItem; -public class ExitGUI extends BaseItem { - @Override - public ItemProvider getItemProvider() { - return new ItemBuilder(Material.OAK_DOOR).setDisplayName("§fExit"); - } - - @Override - public void handleClick(@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { - if (clickType.isLeftClick() || clickType.isRightClick()) { - event.getView().close(); - } +public class ExitGUI extends SimpleItem { + public ExitGUI() { + super(new ItemBuilder(Material.OAK_DOOR).setDisplayName("§fExit"), click -> { + final ClickType clickType = click.getClickType(); + if (clickType.isLeftClick() || clickType.isRightClick()) { + click.getEvent().getView().close(); + } + }); } } diff --git a/core/src/main/java/net/artelnatif/nicko/gui/items/main/ResetAppearance.java b/core/src/main/java/net/artelnatif/nicko/gui/items/main/ResetAppearance.java index 5be5493..48fa0d6 100644 --- a/core/src/main/java/net/artelnatif/nicko/gui/items/main/ResetAppearance.java +++ b/core/src/main/java/net/artelnatif/nicko/gui/items/main/ResetAppearance.java @@ -1,42 +1,42 @@ 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.appearance.AppearanceManager; import net.artelnatif.nicko.i18n.I18N; import net.artelnatif.nicko.i18n.I18NDict; 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; +import xyz.xenondevs.invui.item.builder.ItemBuilder; +import xyz.xenondevs.invui.item.impl.SuppliedItem; -public class ResetAppearance extends BaseItem { - @Override - public ItemProvider getItemProvider() { - final ItemBuilder builder = new ItemBuilder(Material.TNT); - builder.setDisplayName("§fReset"); - builder.addLoreLines("§7Get rid of your disguise."); - return builder; - } +public class ResetAppearance extends SuppliedItem { + public ResetAppearance() { + super(() -> { + final ItemBuilder builder = new ItemBuilder(Material.TNT); + builder.setDisplayName("§fReset"); + builder.addLoreLines("§7Get rid of your disguise."); + return builder; + }, (event) -> { + final Player player = event.getPlayer(); + final ClickType clickType = event.getClickType(); + if (clickType.isLeftClick() || clickType.isRightClick()) { + final AppearanceManager appearanceManager = AppearanceManager.get(player); - @Override - public void handleClick(@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { - if (clickType.isLeftClick() || clickType.isRightClick()) { - final AppearanceManager appearanceManager = AppearanceManager.get(player); + if (!appearanceManager.hasData()) { + player.sendMessage(I18N.translate(player, I18NDict.Event.Undisguise.NONE)); + event.getEvent().getView().close(); + return true; + } - if (!appearanceManager.hasData()) { - player.sendMessage(I18N.translate(player, I18NDict.Event.Undisguise.NONE)); - event.getView().close(); - return; + if (!appearanceManager.reset().isError()) { + player.sendMessage(I18N.translate(player, I18NDict.Event.Undisguise.SUCCESS)); + return true; + } else { + player.sendMessage(I18N.translate(player, I18NDict.Event.Undisguise.FAIL)); + return false; + } } - - if (!appearanceManager.reset().isError()) { - player.sendMessage(I18N.translate(player, I18NDict.Event.Undisguise.SUCCESS)); - } else { - player.sendMessage(I18N.translate(player, I18NDict.Event.Undisguise.FAIL)); - } - } + return false; + }); } } diff --git a/core/src/main/java/net/artelnatif/nicko/gui/items/main/SettingsSubGUI.java b/core/src/main/java/net/artelnatif/nicko/gui/items/main/SettingsSubGUI.java index f8a2b33..52f9c28 100644 --- a/core/src/main/java/net/artelnatif/nicko/gui/items/main/SettingsSubGUI.java +++ b/core/src/main/java/net/artelnatif/nicko/gui/items/main/SettingsSubGUI.java @@ -1,29 +1,26 @@ 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; +import xyz.xenondevs.invui.item.builder.ItemBuilder; +import xyz.xenondevs.invui.item.impl.SuppliedItem; -public class SettingsSubGUI 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(); - } +public class SettingsSubGUI extends SuppliedItem { + public SettingsSubGUI() { + super(() -> { + final ItemBuilder builder = new ItemBuilder(Material.COMPARATOR); + builder.setDisplayName("§fSettings..."); + builder.addLoreLines("§7Adjust your preferences."); + return builder; + }, click -> { + final ClickType clickType = click.getClickType(); + if (clickType.isLeftClick() || clickType.isRightClick()) { + click.getEvent().getView().close(); + new SettingsGUI(click.getPlayer()).open(); + return true; + } + return false; + }); } } diff --git a/core/src/main/java/net/artelnatif/nicko/gui/items/settings/BungeeCordCycling.java b/core/src/main/java/net/artelnatif/nicko/gui/items/settings/BungeeCordCycling.java index 02068d4..61a389b 100644 --- a/core/src/main/java/net/artelnatif/nicko/gui/items/settings/BungeeCordCycling.java +++ b/core/src/main/java/net/artelnatif/nicko/gui/items/settings/BungeeCordCycling.java @@ -1,15 +1,15 @@ package net.artelnatif.nicko.gui.items.settings; -import de.studiocode.invui.item.ItemProvider; -import de.studiocode.invui.item.builder.ItemBuilder; -import de.studiocode.invui.item.impl.BaseItem; -import de.studiocode.invui.item.impl.CycleItem; -import de.studiocode.invui.item.impl.SimpleItem; import net.artelnatif.nicko.NickoBukkit; import net.artelnatif.nicko.disguise.NickoProfile; import org.bukkit.Material; import org.bukkit.Sound; import org.bukkit.entity.Player; +import xyz.xenondevs.invui.item.ItemProvider; +import xyz.xenondevs.invui.item.builder.ItemBuilder; +import xyz.xenondevs.invui.item.impl.AbstractItem; +import xyz.xenondevs.invui.item.impl.CycleItem; +import xyz.xenondevs.invui.item.impl.SimpleItem; import java.util.Optional; @@ -19,7 +19,7 @@ public class BungeeCordCycling { getItemProviderForValue(false) }; - public BaseItem get(Player player) { + public AbstractItem get(Player player) { final Optional profile = NickoBukkit.getInstance().getDataStore().getData(player.getUniqueId()); if (profile.isPresent()) { final NickoProfile nickoProfile = profile.get(); diff --git a/core/src/main/java/net/artelnatif/nicko/gui/items/settings/LanguageCycling.java b/core/src/main/java/net/artelnatif/nicko/gui/items/settings/LanguageCycling.java index b34ad7b..abe1399 100644 --- a/core/src/main/java/net/artelnatif/nicko/gui/items/settings/LanguageCycling.java +++ b/core/src/main/java/net/artelnatif/nicko/gui/items/settings/LanguageCycling.java @@ -1,23 +1,26 @@ package net.artelnatif.nicko.gui.items.settings; -import de.studiocode.invui.item.ItemProvider; -import de.studiocode.invui.item.builder.ItemBuilder; -import de.studiocode.invui.item.impl.BaseItem; -import de.studiocode.invui.item.impl.CycleItem; -import de.studiocode.invui.item.impl.SimpleItem; import net.artelnatif.nicko.NickoBukkit; import net.artelnatif.nicko.disguise.NickoProfile; import net.artelnatif.nicko.i18n.Locale; import org.bukkit.Material; import org.bukkit.Sound; import org.bukkit.entity.Player; +import xyz.xenondevs.invui.item.ItemProvider; +import xyz.xenondevs.invui.item.builder.ItemBuilder; +import xyz.xenondevs.invui.item.impl.AbstractItem; +import xyz.xenondevs.invui.item.impl.CycleItem; +import xyz.xenondevs.invui.item.impl.SimpleItem; -import java.util.*; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Optional; public class LanguageCycling { private final ItemProvider[] providers = getItems(); - public BaseItem get(Player player) { + public AbstractItem get(Player player) { final Optional profile = NickoBukkit.getInstance().getDataStore().getData(player.getUniqueId()); if (profile.isPresent()) { final NickoProfile nickoProfile = profile.get(); diff --git a/core/src/main/java/net/artelnatif/nicko/gui/items/settings/OptionUnavailable.java b/core/src/main/java/net/artelnatif/nicko/gui/items/settings/OptionUnavailable.java index 78ec0ac..aaa9417 100644 --- a/core/src/main/java/net/artelnatif/nicko/gui/items/settings/OptionUnavailable.java +++ b/core/src/main/java/net/artelnatif/nicko/gui/items/settings/OptionUnavailable.java @@ -1,24 +1,17 @@ package net.artelnatif.nicko.gui.items.settings; -import de.studiocode.invui.item.ItemProvider; -import de.studiocode.invui.item.builder.ItemBuilder; -import de.studiocode.invui.item.impl.BaseItem; 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; +import xyz.xenondevs.invui.item.builder.ItemBuilder; +import xyz.xenondevs.invui.item.impl.SuppliedItem; -public class OptionUnavailable extends BaseItem { - @Override - public ItemProvider getItemProvider() { - final ItemBuilder builder = new ItemBuilder(Material.RED_TERRACOTTA); - builder.setDisplayName("§cOption unavailable :("); - builder.addLoreLines("§7This option is disabled due to the", - "§7feature it controls being disabled."); - return builder; +public class OptionUnavailable extends SuppliedItem { + public OptionUnavailable() { + super(() -> { + final ItemBuilder builder = new ItemBuilder(Material.RED_TERRACOTTA); + builder.setDisplayName("§cOption unavailable :("); + builder.addLoreLines("§7This option is disabled due to the", + "§7feature it controls being disabled."); + return builder; + }, click -> true); } - - @Override - public void handleClick(@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent inventoryClickEvent) { } } diff --git a/core/src/main/java/net/artelnatif/nicko/gui/items/skin/ChangeName.java b/core/src/main/java/net/artelnatif/nicko/gui/items/skin/ChangeName.java index 7d4cd6b..a5b7a02 100644 --- a/core/src/main/java/net/artelnatif/nicko/gui/items/skin/ChangeName.java +++ b/core/src/main/java/net/artelnatif/nicko/gui/items/skin/ChangeName.java @@ -1,30 +1,26 @@ package net.artelnatif.nicko.gui.items.skin; -import de.studiocode.invui.item.ItemProvider; -import de.studiocode.invui.item.builder.ItemBuilder; -import de.studiocode.invui.item.impl.BaseItem; import net.artelnatif.nicko.anvil.AnvilManager; 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; +import xyz.xenondevs.invui.item.builder.ItemBuilder; +import xyz.xenondevs.invui.item.impl.SuppliedItem; -public class ChangeName extends BaseItem { - @Override - public ItemProvider getItemProvider() { - final ItemBuilder builder = new ItemBuilder(Material.NAME_TAG); - builder.setDisplayName("§6Name §fchange"); - builder.addLoreLines("§7Only change your name."); - return builder; - } - - @Override - public void handleClick(@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { - if (clickType.isLeftClick() || clickType.isRightClick()) { - event.getView().close(); - final AnvilManager manager = new AnvilManager(player); - manager.openNameAnvil(); - } +public class ChangeName extends SuppliedItem { + public ChangeName() { + super(() -> { + final ItemBuilder builder = new ItemBuilder(Material.NAME_TAG); + builder.setDisplayName("§6Name §fchange"); + builder.addLoreLines("§7Only change your name."); + return builder; + }, click -> { + final ClickType clickType = click.getClickType(); + if (clickType.isLeftClick() || clickType.isRightClick()) { + click.getEvent().getView().close(); + final AnvilManager manager = new AnvilManager(click.getPlayer()); + manager.openNameAnvil(); + } + return true; + }); } } diff --git a/core/src/main/java/net/artelnatif/nicko/gui/items/skin/ChangeNameAndSkin.java b/core/src/main/java/net/artelnatif/nicko/gui/items/skin/ChangeNameAndSkin.java index d404ec3..cd8cbc2 100644 --- a/core/src/main/java/net/artelnatif/nicko/gui/items/skin/ChangeNameAndSkin.java +++ b/core/src/main/java/net/artelnatif/nicko/gui/items/skin/ChangeNameAndSkin.java @@ -1,30 +1,26 @@ package net.artelnatif.nicko.gui.items.skin; -import de.studiocode.invui.item.ItemProvider; -import de.studiocode.invui.item.builder.ItemBuilder; -import de.studiocode.invui.item.impl.BaseItem; import net.artelnatif.nicko.anvil.AnvilManager; 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; +import xyz.xenondevs.invui.item.builder.ItemBuilder; +import xyz.xenondevs.invui.item.impl.SuppliedItem; -public class ChangeNameAndSkin extends BaseItem { - @Override - public ItemProvider getItemProvider() { - final ItemBuilder builder = new ItemBuilder(Material.ENDER_PEARL); - builder.setDisplayName("§6Skin §fand §6name §fchange"); - builder.addLoreLines("§7Change both your skin and name."); - return builder; - } - - @Override - public void handleClick(@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { - if (clickType.isLeftClick() || clickType.isRightClick()) { - event.getView().close(); - final AnvilManager manager = new AnvilManager(player); - manager.openNameThenSkinAnvil(); - } +public class ChangeNameAndSkin extends SuppliedItem { + public ChangeNameAndSkin() { + super(() -> { + final ItemBuilder builder = new ItemBuilder(Material.ENDER_PEARL); + builder.setDisplayName("§6Skin §fand §6name §fchange"); + builder.addLoreLines("§7Change both your skin and name."); + return builder; + }, click -> { + final ClickType clickType = click.getClickType(); + if (clickType.isLeftClick() || clickType.isRightClick()) { + click.getEvent().getView().close(); + final AnvilManager manager = new AnvilManager(click.getPlayer()); + manager.openNameThenSkinAnvil(); + } + return true; + }); } } diff --git a/core/src/main/java/net/artelnatif/nicko/gui/items/skin/ChangeSkin.java b/core/src/main/java/net/artelnatif/nicko/gui/items/skin/ChangeSkin.java index e94bb70..746fe2c 100644 --- a/core/src/main/java/net/artelnatif/nicko/gui/items/skin/ChangeSkin.java +++ b/core/src/main/java/net/artelnatif/nicko/gui/items/skin/ChangeSkin.java @@ -1,30 +1,26 @@ package net.artelnatif.nicko.gui.items.skin; -import de.studiocode.invui.item.ItemProvider; -import de.studiocode.invui.item.builder.ItemBuilder; -import de.studiocode.invui.item.impl.BaseItem; import net.artelnatif.nicko.anvil.AnvilManager; 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; +import xyz.xenondevs.invui.item.builder.ItemBuilder; +import xyz.xenondevs.invui.item.impl.SuppliedItem; -public class ChangeSkin extends BaseItem { - @Override - public ItemProvider getItemProvider() { - final ItemBuilder builder = new ItemBuilder(Material.PAINTING); - builder.setDisplayName("§6Skin §fchange"); - builder.addLoreLines("§7Only change your skin."); - return builder; - } - - @Override - public void handleClick(@NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { - if(clickType.isLeftClick() || clickType.isRightClick()) { - event.getView().close(); - final AnvilManager manager = new AnvilManager(player); - manager.openSkinAnvil(); - } +public class ChangeSkin extends SuppliedItem { + public ChangeSkin() { + super(() -> { + final ItemBuilder builder = new ItemBuilder(Material.ENDER_PEARL); + builder.setDisplayName("§6Skin §fchange"); + builder.addLoreLines("§7Only change your skin."); + return builder; + }, click -> { + final ClickType clickType = click.getClickType(); + if (clickType.isLeftClick() || clickType.isRightClick()) { + click.getEvent().getView().close(); + final AnvilManager manager = new AnvilManager(click.getPlayer()); + manager.openSkinAnvil(); + } + return true; + }); } } diff --git a/core/src/main/java/net/artelnatif/nicko/i18n/LocaleFileManager.java b/core/src/main/java/net/artelnatif/nicko/i18n/LocaleFileManager.java index d77480d..90d56de 100644 --- a/core/src/main/java/net/artelnatif/nicko/i18n/LocaleFileManager.java +++ b/core/src/main/java/net/artelnatif/nicko/i18n/LocaleFileManager.java @@ -1,7 +1,7 @@ package net.artelnatif.nicko.i18n; import com.github.jsixface.YamlConfig; -import de.studiocode.invui.util.IOUtils; +import xyz.xenondevs.invui.util.IOUtils; import net.artelnatif.nicko.NickoBukkit; import java.io.*; diff --git a/core/src/main/java/net/artelnatif/nicko/impl/InternalsProvider.java b/core/src/main/java/net/artelnatif/nicko/impl/InternalsProvider.java index 627c307..d0ebd0d 100644 --- a/core/src/main/java/net/artelnatif/nicko/impl/InternalsProvider.java +++ b/core/src/main/java/net/artelnatif/nicko/impl/InternalsProvider.java @@ -3,8 +3,10 @@ package net.artelnatif.nicko.impl; import org.bukkit.Bukkit; import java.lang.reflect.InvocationTargetException; +import java.util.logging.Logger; public class InternalsProvider { + private static final Logger logger = Logger.getLogger("Internals"); private static Internals internals; static { @@ -14,6 +16,7 @@ public class InternalsProvider { final String fullClassName = packageName + "." + bukkitVersion; final Class clazz = Class.forName(fullClassName); internals = (Internals) clazz.getConstructors()[0].newInstance(); + logger.info("Loaded support for " + bukkitVersion); } catch (InvocationTargetException | ClassNotFoundException | InstantiationException | IllegalAccessException | ClassCastException exception) { internals = null; diff --git a/pom.xml b/pom.xml index d62ed02..e9f92dc 100644 --- a/pom.xml +++ b/pom.xml @@ -29,7 +29,7 @@ - 1.8 - 1.8 + 11 + 11 \ No newline at end of file diff --git a/v1_19_R3/src/main/java/net/artelnatif/nicko/impl/v1_19_R3.java b/v1_19_R3/src/main/java/net/artelnatif/nicko/impl/v1_19_R3.java index 130d207..d0ef0eb 100644 --- a/v1_19_R3/src/main/java/net/artelnatif/nicko/impl/v1_19_R3.java +++ b/v1_19_R3/src/main/java/net/artelnatif/nicko/impl/v1_19_R3.java @@ -89,6 +89,7 @@ public class v1_19_R3 implements Internals { final PropertyMap properties = gameProfile.getProperties(); properties.removeAll("textures"); properties.put("textures", new Property("textures", skin.getValue(), skin.getSignature())); + updateSelf(player); } } @@ -122,7 +123,6 @@ public class v1_19_R3 implements Internals { onlinePlayer.connection.send(remove); onlinePlayer.connection.send(init); }); - updateSelf(player); // TODO: 3/17/23 Update signature to avoid duplicate for loop updateOthers(player); return new ActionResult<>();