diff --git a/build.gradle.kts b/build.gradle.kts index fdfb716..b63be28 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -2,12 +2,11 @@ import net.minecrell.pluginyml.bukkit.BukkitPluginDescription plugins { `java-library` - id("io.papermc.paperweight.userdev") version "1.7.3" - id("org.sonarqube") version "5.1.0.4882" - id("net.minecrell.plugin-yml.paper") version "0.6.0" + id("io.papermc.paperweight.userdev") version "2.0.0-beta.10" + id("org.sonarqube") version "6.0.1.5171" + id("de.eldoria.plugin-yml.paper") version "0.6.0" } -// from 1.20.5+ upward, spigot is not supported paperweight.reobfArtifactConfiguration = io.papermc.paperweight.userdev.ReobfArtifactConfiguration.MOJANG_PRODUCTION @@ -15,13 +14,14 @@ group = "me.unurled.sacredrealms" version = "0.1.0" description = "The main SR plugin." -val mcVersion = "1.21.1-R0.1-SNAPSHOT" +val mcVersion = "1.21.4-R0.1-SNAPSHOT" val redisVersion = "5.2.0-beta4" -val invuiVersion = "1.36" +val invuiVersion = "2.0.0-alpha.6" val gsonVersion = "2.11.0" -val srcoreVersion = "0.1.2" +val srcoreVersion = "0.2.0" +val packeteventsVersion = "2.7.0" -val javaVersion = 21 +val javaVersion = 23 repositories { mavenCentral() @@ -52,7 +52,7 @@ dependencies { paperLibrary("redis.clients", "jedis", redisVersion) - paperLibrary("com.github.retrooper", "packetevents-spigot", "2.5.0") + paperLibrary("com.github.retrooper", "packetevents-spigot", packeteventsVersion) compileOnly("me.unurled:SR-Core:${srcoreVersion}") } diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index d64cd49..a4b76b9 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 9355b41..cea7a79 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.10-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew b/gradlew index 1aa94a4..f5feea6 100755 --- a/gradlew +++ b/gradlew @@ -15,6 +15,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # +# SPDX-License-Identifier: Apache-2.0 +# ############################################################################## # @@ -55,7 +57,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/. @@ -84,7 +86,8 @@ done # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s +' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum diff --git a/gradlew.bat b/gradlew.bat index 93e3f59..9d21a21 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -13,6 +13,8 @@ @rem See the License for the specific language governing permissions and @rem limitations under the License. @rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem @if "%DEBUG%"=="" @echo off @rem ########################################################################## @@ -43,11 +45,11 @@ set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 if %ERRORLEVEL% equ 0 goto execute -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail @@ -57,11 +59,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe if exist "%JAVA_EXE%" goto execute -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail diff --git a/src/main/java/me/unurled/sacredrealms/sr/SRLoader.java b/src/main/java/me/unurled/sacredrealms/sr/SRLoader.java index 07ba1d0..227b49d 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/SRLoader.java +++ b/src/main/java/me/unurled/sacredrealms/sr/SRLoader.java @@ -21,12 +21,12 @@ public class SRLoader implements PluginLoader { public void classloader(@NotNull PluginClasspathBuilder classpathBuilder) { MavenLibraryResolver resolver = new MavenLibraryResolver(); resolver.addDependency( - new Dependency(new DefaultArtifact("xyz.xenondevs.invui:invui:pom:1.36"), null)); + new Dependency(new DefaultArtifact("xyz.xenondevs.invui:invui:pom:2.0.0-alpha.6"), null)); resolver.addRepository( new RemoteRepository.Builder("invui", "default", "https://repo.xenondevs.xyz/releases/") .build()); - resolver.addDependency(new Dependency(new DefaultArtifact("me.unurled:SR-Core:0.1.1"), null)); + resolver.addDependency(new Dependency(new DefaultArtifact("me.unurled:SR-Core:0.2.0"), null)); resolver.addRepository( new RemoteRepository.Builder("srcore", "default", "https://repo.unurled.me/releases") .build()); diff --git a/src/main/java/me/unurled/sacredrealms/sr/gui/BackItem.java b/src/main/java/me/unurled/sacredrealms/sr/gui/BackItem.java index 77b8bd3..d9fb429 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/gui/BackItem.java +++ b/src/main/java/me/unurled/sacredrealms/sr/gui/BackItem.java @@ -1,26 +1,34 @@ package me.unurled.sacredrealms.sr.gui; import org.bukkit.Material; -import xyz.xenondevs.invui.gui.PagedGui; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.ClickType; +import org.jetbrains.annotations.NotNull; +import xyz.xenondevs.invui.item.AbstractPagedGuiBoundItem; +import xyz.xenondevs.invui.item.Click; +import xyz.xenondevs.invui.item.ItemBuilder; import xyz.xenondevs.invui.item.ItemProvider; -import xyz.xenondevs.invui.item.builder.ItemBuilder; -import xyz.xenondevs.invui.item.impl.controlitem.PageItem; -public class BackItem extends PageItem { +public class BackItem extends AbstractPagedGuiBoundItem { - public BackItem() { - super(false); - } + public BackItem() {} @Override - public ItemProvider getItemProvider(PagedGui gui) { + public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) { ItemBuilder builder = new ItemBuilder(Material.RED_STAINED_GLASS_PANE); builder - .setDisplayName("§cPrevious Page") + .setCustomName("§cPrevious Page") .addLoreLines( - gui.hasPreviousPage() - ? "§7Go to page §e" + gui.getCurrentPage() + "§7/§e" + gui.getPageAmount() + this.getGui().hasPreviousPage() + ? "§7Go to page §e" + + this.getGui().getPage() + + "§7/§e" + + this.getGui().getPageAmount() : "§cYou can't go further back"); return builder; } + + @Override + public void handleClick( + @NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) {} } diff --git a/src/main/java/me/unurled/sacredrealms/sr/gui/ForwardItem.java b/src/main/java/me/unurled/sacredrealms/sr/gui/ForwardItem.java index e26666f..28d26b8 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/gui/ForwardItem.java +++ b/src/main/java/me/unurled/sacredrealms/sr/gui/ForwardItem.java @@ -1,27 +1,38 @@ package me.unurled.sacredrealms.sr.gui; +import static me.unurled.srcore.utils.Component.comp; + import org.bukkit.Material; -import xyz.xenondevs.invui.gui.PagedGui; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.ClickType; +import org.jetbrains.annotations.NotNull; +import xyz.xenondevs.invui.item.AbstractPagedGuiBoundItem; +import xyz.xenondevs.invui.item.Click; +import xyz.xenondevs.invui.item.ItemBuilder; import xyz.xenondevs.invui.item.ItemProvider; -import xyz.xenondevs.invui.item.builder.ItemBuilder; -import xyz.xenondevs.invui.item.impl.controlitem.PageItem; -public class ForwardItem extends PageItem { +public class ForwardItem extends AbstractPagedGuiBoundItem { - public ForwardItem() { - super(true); - } + public ForwardItem() {} @Override - public ItemProvider getItemProvider(PagedGui gui) { + public @NotNull ItemProvider getItemProvider(@NotNull Player player) { ItemBuilder builder = new ItemBuilder(Material.GREEN_STAINED_GLASS_PANE); builder - .setDisplayName("§7Next page") + .setCustomName(comp("Next page")) .addLoreLines( - gui.hasNextPage() - ? "§7Go to page §e" + (gui.getCurrentPage() + 2) + "§7/§e" + gui.getPageAmount() - : "§cThere are no more pages"); + this.getGui().hasNextPage() + ? comp( + "Go to page §e" + + (this.getGui().getPage() + 2) + + "§7/§e" + + this.getGui().getPageAmount()) + : comp("There are no more pages")); return builder; } + + @Override + public void handleClick( + @NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) {} } diff --git a/src/main/java/me/unurled/sacredrealms/sr/gui/attributes/AttributeItem.java b/src/main/java/me/unurled/sacredrealms/sr/gui/attributes/AttributeItem.java index 87d40b4..796d27f 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/gui/attributes/AttributeItem.java +++ b/src/main/java/me/unurled/sacredrealms/sr/gui/attributes/AttributeItem.java @@ -1,7 +1,7 @@ package me.unurled.sacredrealms.sr.gui.attributes; -import static me.unurled.srcore.utils.Component.comp; import static me.unurled.sacredrealms.sr.utils.SRPlayerUtils.syncSRToPlayer; +import static me.unurled.srcore.utils.Component.comp; import me.unurled.sacredrealms.sr.components.attributes.Attribute; import me.unurled.sacredrealms.sr.components.player.PlayerManager; @@ -10,15 +10,11 @@ import me.unurled.srcore.api.Manager; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; -import xyz.xenondevs.inventoryaccess.component.AdventureComponentWrapper; -import xyz.xenondevs.invui.item.Item; +import xyz.xenondevs.invui.item.AbstractItem; +import xyz.xenondevs.invui.item.Click; +import xyz.xenondevs.invui.item.ItemBuilder; import xyz.xenondevs.invui.item.ItemProvider; -import xyz.xenondevs.invui.item.builder.ItemBuilder; -import xyz.xenondevs.invui.item.impl.AbstractItem; -import xyz.xenondevs.invui.window.Window; public class AttributeItem extends AbstractItem { @@ -31,15 +27,8 @@ public class AttributeItem extends AbstractItem { this.targetPlayer = target; } - /** - * Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified - * ({@link #notifyWindows()}). - * - * @return The {@link ItemProvider} - */ @Override - public ItemProvider getItemProvider() { - + public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) { double value = 0; if (targetPlayer != null) { @@ -50,38 +39,27 @@ public class AttributeItem extends AbstractItem { ItemBuilder ip = switch (attribute) { - case STRENGTH -> new ItemBuilder(Material.IRON_SWORD).setDisplayName("Strength " + value); - case AGILITY -> new ItemBuilder(Material.BOW).setDisplayName("Agility " + value); - case MANA -> new ItemBuilder(Material.ENCHANTING_TABLE).setDisplayName("Mana " + value); - case HEALTH -> new ItemBuilder(Material.GOLDEN_APPLE).setDisplayName("Health " + value); + case STRENGTH -> new ItemBuilder(Material.IRON_SWORD).setCustomName("Strength " + value); + case AGILITY -> new ItemBuilder(Material.BOW).setCustomName("Agility " + value); + case MANA -> new ItemBuilder(Material.ENCHANTING_TABLE).setCustomName("Mana " + value); + case HEALTH -> new ItemBuilder(Material.GOLDEN_APPLE).setCustomName("Health " + value); case LUCK -> - new ItemBuilder(Material.ENCHANTED_GOLDEN_APPLE).setDisplayName("Luck " + value); - case DEFENSE -> new ItemBuilder(Material.SHIELD).setDisplayName("Defense " + value); - case CHARISMA -> - new ItemBuilder(Material.PLAYER_HEAD).setDisplayName("Charisma " + value); + new ItemBuilder(Material.ENCHANTED_GOLDEN_APPLE).setCustomName("Luck " + value); + case DEFENSE -> new ItemBuilder(Material.SHIELD).setCustomName("Defense " + value); + case CHARISMA -> new ItemBuilder(Material.PLAYER_HEAD).setCustomName("Charisma " + value); }; - ip.addLoreLines(new AdventureComponentWrapper(comp("+1 Left Click to increase"))); - ip.addLoreLines(new AdventureComponentWrapper(comp("-1 Right Click to decrease"))); - ip.addLoreLines( - new AdventureComponentWrapper(comp("Shift + Left Click to increase by 10"))); - ip.addLoreLines( - new AdventureComponentWrapper(comp("Shift + Right Click to decrease by 10"))); + ip.addLoreLines(comp("+1 Left Click to increase")); + ip.addLoreLines(comp("-1 Right Click to decrease")); + ip.addLoreLines(comp("Shift + Left Click to increase by 10")); + ip.addLoreLines(comp("Shift + Right Click to decrease by 10")); return ip; } - /** - * A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a - * player. - * - * @param clickType The {@link ClickType} the {@link Player} performed. - * @param player The {@link Player} who clicked on the {@link ItemStack}. - * @param event The {@link InventoryClickEvent} associated with this click. - */ @Override public void handleClick( - @NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { + @NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) { if (targetPlayer != null) { PlayerManager playerManager = Manager.getInstance(PlayerManager.class); diff --git a/src/main/java/me/unurled/sacredrealms/sr/gui/attributes/AttributesGUI.java b/src/main/java/me/unurled/sacredrealms/sr/gui/attributes/AttributesGUI.java index 781acc5..ae8c213 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/gui/attributes/AttributesGUI.java +++ b/src/main/java/me/unurled/sacredrealms/sr/gui/attributes/AttributesGUI.java @@ -8,9 +8,8 @@ import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.SkullMeta; import xyz.xenondevs.invui.gui.Gui; -import xyz.xenondevs.invui.gui.Gui.Builder.Normal; +import xyz.xenondevs.invui.gui.Gui.Builder; import xyz.xenondevs.invui.item.Item; -import xyz.xenondevs.invui.item.impl.SimpleItem; public class AttributesGUI { @@ -20,8 +19,8 @@ public class AttributesGUI { tMeta.setOwningPlayer(target); tMeta.displayName(comp(target.getName())); t.setItemMeta(tMeta); - Item head = new SimpleItem(t); - Normal gui = + Item head = Item.simple(t); + Builder gui = Gui.normal() .setStructure(".........", "....h....", ".........", ".0123456.") .addIngredient('h', head); diff --git a/src/main/java/me/unurled/sacredrealms/sr/gui/difficulty/DifficultyGUI.java b/src/main/java/me/unurled/sacredrealms/sr/gui/difficulty/DifficultyGUI.java index 6b6544b..63622c4 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/gui/difficulty/DifficultyGUI.java +++ b/src/main/java/me/unurled/sacredrealms/sr/gui/difficulty/DifficultyGUI.java @@ -6,15 +6,14 @@ import static me.unurled.sacredrealms.sr.utils.Items.glassPane; import me.unurled.sacredrealms.sr.components.difficulty.Difficulty; import org.jetbrains.annotations.NotNull; import xyz.xenondevs.invui.gui.Gui; -import xyz.xenondevs.invui.gui.Gui.Builder.Normal; +import xyz.xenondevs.invui.gui.Gui.Builder; import xyz.xenondevs.invui.item.Item; -import xyz.xenondevs.invui.item.impl.SimpleItem; public class DifficultyGUI { public static @NotNull Gui createGui() { - Item cancel = new SimpleItem(cancelItem()); - Item glass = new SimpleItem(glassPane()); - Normal gui = + Item cancel = Item.simple(cancelItem()); + Item glass = Item.simple(glassPane()); + Builder gui = Gui.normal() .setStructure(".........", "..1.2.3..", "....4....", "....5....") .addIngredient('5', cancel) diff --git a/src/main/java/me/unurled/sacredrealms/sr/gui/difficulty/DifficultyItem.java b/src/main/java/me/unurled/sacredrealms/sr/gui/difficulty/DifficultyItem.java index c7bdad1..339abdd 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/gui/difficulty/DifficultyItem.java +++ b/src/main/java/me/unurled/sacredrealms/sr/gui/difficulty/DifficultyItem.java @@ -7,14 +7,11 @@ import me.unurled.srcore.api.Manager; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; -import xyz.xenondevs.invui.item.Item; +import xyz.xenondevs.invui.item.AbstractItem; +import xyz.xenondevs.invui.item.Click; +import xyz.xenondevs.invui.item.ItemBuilder; import xyz.xenondevs.invui.item.ItemProvider; -import xyz.xenondevs.invui.item.builder.ItemBuilder; -import xyz.xenondevs.invui.item.impl.AbstractItem; -import xyz.xenondevs.invui.window.Window; public class DifficultyItem extends AbstractItem { @@ -24,18 +21,12 @@ public class DifficultyItem extends AbstractItem { this.difficulty = difficulty; } - /** - * Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified - * ({@link #notifyWindows()}). - * - * @return The {@link ItemProvider} - */ @Override - public ItemProvider getItemProvider() { + public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) { return switch (difficulty) { case EASY -> new ItemBuilder(Material.BREAD) - .setDisplayName("Easy") + .setCustomName("Easy") .addLoreLines( "Is you are a new player or", "someone who just want to", @@ -44,7 +35,7 @@ public class DifficultyItem extends AbstractItem { "Click Here!"); case NORMAL -> new ItemBuilder(Material.GRASS_BLOCK) - .setDisplayName("Normal") + .setCustomName("Normal") .addLoreLines( "Is you are a regular player", "who want to enjoy the game", @@ -53,7 +44,7 @@ public class DifficultyItem extends AbstractItem { "Click Here!"); case HARD -> new ItemBuilder(Material.DIAMOND_SWORD) - .setDisplayName("Hard") + .setCustomName("Hard") .addLoreLines( "Is you are a hardcore player", "who want to enjoy the game", @@ -62,7 +53,7 @@ public class DifficultyItem extends AbstractItem { "Click Here!"); case INSANE -> new ItemBuilder(Material.NETHERITE_SWORD) - .setDisplayName("Insane") + .setCustomName("Insane") .addLoreLines( "Is you are a pro player", "who want to enjoy the game", @@ -73,18 +64,9 @@ public class DifficultyItem extends AbstractItem { }; } - /** - * A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a - * player. - * - * @param clickType The {@link ClickType} the {@link Player} performed. - * @param player The {@link Player} who clicked on the {@link ItemStack}. - * @param event The {@link InventoryClickEvent} associated with this click. - */ @Override public void handleClick( - @NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { - // Set the player's difficulty + @NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) { PlayerManager pm = Manager.getInstance(PlayerManager.class); if (pm.isSRPlayer(player.getUniqueId())) { SRPlayer sr = pm.getPlayer(player.getUniqueId()); diff --git a/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityArmorItem.java b/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityArmorItem.java index 23f071d..3936e23 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityArmorItem.java +++ b/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityArmorItem.java @@ -8,14 +8,12 @@ import me.unurled.sacredrealms.sr.components.entity.SREntityType; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; -import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; -import xyz.xenondevs.invui.item.Item; +import xyz.xenondevs.invui.item.AbstractItem; +import xyz.xenondevs.invui.item.Click; +import xyz.xenondevs.invui.item.ItemBuilder; import xyz.xenondevs.invui.item.ItemProvider; -import xyz.xenondevs.invui.item.builder.ItemBuilder; -import xyz.xenondevs.invui.item.impl.AbstractItem; -import xyz.xenondevs.invui.window.Window; public class EntityArmorItem extends AbstractItem { @@ -57,28 +55,14 @@ public class EntityArmorItem extends AbstractItem { } } - /** - * Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified - * ({@link #notifyWindows()}). - * - * @return The {@link ItemProvider} - */ @Override - public ItemProvider getItemProvider() { + public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) { return new ItemBuilder(stack); } - /** - * A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a - * player. - * - * @param clickType The {@link ClickType} the {@link Player} performed. - * @param player The {@link Player} who clicked on the {@link ItemStack}. - * @param event The {@link InventoryClickEvent} associated with this click. - */ @Override public void handleClick( - @NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { + @NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) { /* TODO need to implements this */ } } diff --git a/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityBehaviorItem.java b/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityBehaviorItem.java index a8d9776..6bacaf0 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityBehaviorItem.java +++ b/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityBehaviorItem.java @@ -4,14 +4,11 @@ import me.unurled.sacredrealms.sr.components.entity.SREntityType; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; -import xyz.xenondevs.invui.item.Item; +import xyz.xenondevs.invui.item.AbstractItem; +import xyz.xenondevs.invui.item.Click; +import xyz.xenondevs.invui.item.ItemBuilder; import xyz.xenondevs.invui.item.ItemProvider; -import xyz.xenondevs.invui.item.builder.ItemBuilder; -import xyz.xenondevs.invui.item.impl.AbstractItem; -import xyz.xenondevs.invui.window.Window; public class EntityBehaviorItem extends AbstractItem { @@ -21,28 +18,14 @@ public class EntityBehaviorItem extends AbstractItem { // behavior = type.getBehavior(); } - /** - * Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified - * ({@link #notifyWindows()}). - * - * @return The {@link ItemProvider} - */ @Override - public ItemProvider getItemProvider() { - return new ItemBuilder(Material.NETHERITE_SWORD).setDisplayName("Behavior: " + behavior); + public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) { + return new ItemBuilder(Material.NETHERITE_SWORD).setCustomName("Behavior: " + behavior); } - /** - * A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a - * player. - * - * @param clickType The {@link ClickType} the {@link Player} performed. - * @param player The {@link Player} who clicked on the {@link ItemStack}. - * @param event The {@link InventoryClickEvent} associated with this click. - */ @Override public void handleClick( - @NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { + @NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) { /* TODO need to implements this */ } } diff --git a/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityExpItem.java b/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityExpItem.java index c1a9a55..93c0587 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityExpItem.java +++ b/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityExpItem.java @@ -4,45 +4,28 @@ import me.unurled.sacredrealms.sr.components.entity.SREntityType; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; -import xyz.xenondevs.invui.item.Item; +import xyz.xenondevs.invui.item.AbstractItem; +import xyz.xenondevs.invui.item.Click; +import xyz.xenondevs.invui.item.ItemBuilder; import xyz.xenondevs.invui.item.ItemProvider; -import xyz.xenondevs.invui.item.builder.ItemBuilder; -import xyz.xenondevs.invui.item.impl.AbstractItem; -import xyz.xenondevs.invui.window.Window; public class EntityExpItem extends AbstractItem { private final Long exp; - public EntityExpItem(SREntityType type) { + public EntityExpItem(@NotNull SREntityType type) { exp = type.getExperience(); } - /** - * Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified - * ({@link #notifyWindows()}). - * - * @return The {@link ItemProvider} - */ @Override - public ItemProvider getItemProvider() { - return new ItemBuilder(Material.EXPERIENCE_BOTTLE).setDisplayName("Experience: " + exp); + public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) { + return new ItemBuilder(Material.EXPERIENCE_BOTTLE).setCustomName("Experience: " + exp); } - /** - * A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a - * player. - * - * @param clickType The {@link ClickType} the {@link Player} performed. - * @param player The {@link Player} who clicked on the {@link ItemStack}. - * @param event The {@link InventoryClickEvent} associated with this click. - */ @Override public void handleClick( - @NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { + @NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) { /* TODO need to implements this */ } } diff --git a/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityItemDisplay.java b/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityItemDisplay.java index e00bc8c..2906236 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityItemDisplay.java +++ b/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityItemDisplay.java @@ -4,14 +4,11 @@ import me.unurled.sacredrealms.sr.components.entity.SREntityType; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; -import xyz.xenondevs.invui.item.Item; +import xyz.xenondevs.invui.item.AbstractItem; +import xyz.xenondevs.invui.item.Click; +import xyz.xenondevs.invui.item.ItemBuilder; import xyz.xenondevs.invui.item.ItemProvider; -import xyz.xenondevs.invui.item.builder.ItemBuilder; -import xyz.xenondevs.invui.item.impl.AbstractItem; -import xyz.xenondevs.invui.window.Window; public class EntityItemDisplay extends AbstractItem { @@ -21,28 +18,14 @@ public class EntityItemDisplay extends AbstractItem { name = type.getItem().getType().name(); } - /** - * Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified - * ({@link #notifyWindows()}). - * - * @return The {@link ItemProvider} - */ @Override - public ItemProvider getItemProvider() { - return new ItemBuilder(Material.CREEPER_SPAWN_EGG).setDisplayName("Item Display: " + name); + public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) { + return new ItemBuilder(Material.CREEPER_SPAWN_EGG).setCustomName("Item Display: " + name); } - /** - * A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a - * player. - * - * @param clickType The {@link ClickType} the {@link Player} performed. - * @param player The {@link Player} who clicked on the {@link ItemStack}. - * @param event The {@link InventoryClickEvent} associated with this click. - */ @Override public void handleClick( - @NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { + @NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) { /* TODO need to implements this */ } } diff --git a/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityLevelItem.java b/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityLevelItem.java index 1b7b4e9..aea5fd6 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityLevelItem.java +++ b/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityLevelItem.java @@ -4,45 +4,28 @@ import me.unurled.sacredrealms.sr.components.entity.SREntityType; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; -import xyz.xenondevs.invui.item.Item; +import xyz.xenondevs.invui.item.AbstractItem; +import xyz.xenondevs.invui.item.Click; +import xyz.xenondevs.invui.item.ItemBuilder; import xyz.xenondevs.invui.item.ItemProvider; -import xyz.xenondevs.invui.item.builder.ItemBuilder; -import xyz.xenondevs.invui.item.impl.AbstractItem; -import xyz.xenondevs.invui.window.Window; public class EntityLevelItem extends AbstractItem { private final int level; - public EntityLevelItem(SREntityType type) { + public EntityLevelItem(@NotNull SREntityType type) { level = type.getLevel(); } - /** - * Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified - * ({@link #notifyWindows()}). - * - * @return The {@link ItemProvider} - */ @Override - public ItemProvider getItemProvider() { - return new ItemBuilder(Material.DIAMOND).setDisplayName("Level: " + level); + public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) { + return new ItemBuilder(Material.DIAMOND).setCustomName("Level: " + level); } - /** - * A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a - * player. - * - * @param clickType The {@link ClickType} the {@link Player} performed. - * @param player The {@link Player} who clicked on the {@link ItemStack}. - * @param event The {@link InventoryClickEvent} associated with this click. - */ @Override public void handleClick( - @NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { + @NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) { /* TODO need to implements this */ } } diff --git a/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityLootItem.java b/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityLootItem.java index 1f6c91c..5ded234 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityLootItem.java +++ b/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityLootItem.java @@ -3,39 +3,22 @@ package me.unurled.sacredrealms.sr.gui.entitytype; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; -import xyz.xenondevs.invui.item.Item; +import xyz.xenondevs.invui.item.AbstractItem; +import xyz.xenondevs.invui.item.Click; +import xyz.xenondevs.invui.item.ItemBuilder; import xyz.xenondevs.invui.item.ItemProvider; -import xyz.xenondevs.invui.item.builder.ItemBuilder; -import xyz.xenondevs.invui.item.impl.AbstractItem; -import xyz.xenondevs.invui.window.Window; public class EntityLootItem extends AbstractItem { - /** - * Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified - * ({@link #notifyWindows()}). - * - * @return The {@link ItemProvider} - */ @Override - public ItemProvider getItemProvider() { - return new ItemBuilder(Material.SKELETON_SKULL).setDisplayName("Death Loot"); + public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) { + return new ItemBuilder(Material.SKELETON_SKULL).setCustomName("Death Loot"); } - /** - * A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a - * player. - * - * @param clickType The {@link ClickType} the {@link Player} performed. - * @param player The {@link Player} who clicked on the {@link ItemStack}. - * @param event The {@link InventoryClickEvent} associated with this click. - */ @Override public void handleClick( - @NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { + @NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) { /* TODO need to implements this */ } } diff --git a/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityNameItem.java b/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityNameItem.java index 88eeffc..eec6f40 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityNameItem.java +++ b/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityNameItem.java @@ -4,45 +4,28 @@ import me.unurled.sacredrealms.sr.components.entity.SREntityType; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; -import xyz.xenondevs.invui.item.Item; +import xyz.xenondevs.invui.item.AbstractItem; +import xyz.xenondevs.invui.item.Click; +import xyz.xenondevs.invui.item.ItemBuilder; import xyz.xenondevs.invui.item.ItemProvider; -import xyz.xenondevs.invui.item.builder.ItemBuilder; -import xyz.xenondevs.invui.item.impl.AbstractItem; -import xyz.xenondevs.invui.window.Window; public class EntityNameItem extends AbstractItem { private final String name; - public EntityNameItem(SREntityType type) { + public EntityNameItem(@NotNull SREntityType type) { name = type.getName(); } - /** - * Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified - * ({@link #notifyWindows()}). - * - * @return The {@link ItemProvider} - */ @Override - public ItemProvider getItemProvider() { - return new ItemBuilder(Material.NAME_TAG).setDisplayName(name); + public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) { + return new ItemBuilder(Material.NAME_TAG).setCustomName(name); } - /** - * A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a - * player. - * - * @param clickType The {@link ClickType} the {@link Player} performed. - * @param player The {@link Player} who clicked on the {@link ItemStack}. - * @param event The {@link InventoryClickEvent} associated with this click. - */ @Override public void handleClick( - @NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { + @NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) { /* TODO need to implements this */ } } diff --git a/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityStatsItem.java b/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityStatsItem.java index 677b056..fa3950a 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityStatsItem.java +++ b/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityStatsItem.java @@ -7,14 +7,11 @@ import me.unurled.sacredrealms.sr.components.entity.SREntityType; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; -import xyz.xenondevs.invui.item.Item; +import xyz.xenondevs.invui.item.AbstractItem; +import xyz.xenondevs.invui.item.Click; +import xyz.xenondevs.invui.item.ItemBuilder; import xyz.xenondevs.invui.item.ItemProvider; -import xyz.xenondevs.invui.item.builder.ItemBuilder; -import xyz.xenondevs.invui.item.impl.AbstractItem; -import xyz.xenondevs.invui.window.Window; public class EntityStatsItem extends AbstractItem { @@ -24,32 +21,18 @@ public class EntityStatsItem extends AbstractItem { attributes = type.getAttributes(); } - /** - * Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified - * ({@link #notifyWindows()}). - * - * @return The {@link ItemProvider} - */ @Override - public ItemProvider getItemProvider() { - ItemBuilder builder = new ItemBuilder(Material.APPLE).setDisplayName("Add Stats"); + public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) { + ItemBuilder builder = new ItemBuilder(Material.APPLE).setCustomName("Add Stats"); for (Entry entry : attributes.entrySet()) { builder.addLoreLines(entry.getKey().getName() + ": " + entry.getValue()); } return builder; } - /** - * A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a - * player. - * - * @param clickType The {@link ClickType} the {@link Player} performed. - * @param player The {@link Player} who clicked on the {@link ItemStack}. - * @param event The {@link InventoryClickEvent} associated with this click. - */ @Override public void handleClick( - @NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { + @NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) { /* TODO need to implements this */ } } diff --git a/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityTypeGUI.java b/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityTypeGUI.java index 87ebd7f..88460a7 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityTypeGUI.java +++ b/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityTypeGUI.java @@ -10,11 +10,10 @@ import me.unurled.srcore.api.Manager; import org.bukkit.Material; import org.jetbrains.annotations.NotNull; import xyz.xenondevs.invui.gui.Gui; +import xyz.xenondevs.invui.gui.Markers; import xyz.xenondevs.invui.gui.PagedGui; -import xyz.xenondevs.invui.gui.structure.Markers; import xyz.xenondevs.invui.item.Item; -import xyz.xenondevs.invui.item.builder.ItemBuilder; -import xyz.xenondevs.invui.item.impl.SimpleItem; +import xyz.xenondevs.invui.item.ItemBuilder; public class EntityTypeGUI { private EntityTypeGUI() {} @@ -23,7 +22,7 @@ public class EntityTypeGUI { EntityManager em = Manager.getInstance(EntityManager.class); List list = new ArrayList<>(); for (SREntityType type : em.getTypes()) { - SimpleItem simpleItem = new SimpleItem(new ItemBuilder(type.getItem())); + Item simpleItem = Item.simple(new ItemBuilder(type.getItem())); list.add(simpleItem); } return PagedGui.items() @@ -43,7 +42,7 @@ public class EntityTypeGUI { public static @NotNull Gui createGui(SREntityType type) { Item border = - new SimpleItem(new ItemBuilder(Material.BLACK_STAINED_GLASS_PANE).setDisplayName("§r")); + Item.simple(new ItemBuilder(Material.BLACK_STAINED_GLASS_PANE).setCustomName("§r")); return Gui.normal() .setStructure( diff --git a/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityTypeItem.java b/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityTypeItem.java index 8d2cb0c..4077cc4 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityTypeItem.java +++ b/src/main/java/me/unurled/sacredrealms/sr/gui/entitytype/EntityTypeItem.java @@ -7,14 +7,11 @@ import org.bukkit.Material; import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; -import xyz.xenondevs.invui.item.Item; +import xyz.xenondevs.invui.item.AbstractItem; +import xyz.xenondevs.invui.item.Click; +import xyz.xenondevs.invui.item.ItemBuilder; import xyz.xenondevs.invui.item.ItemProvider; -import xyz.xenondevs.invui.item.builder.ItemBuilder; -import xyz.xenondevs.invui.item.impl.AbstractItem; -import xyz.xenondevs.invui.window.Window; public class EntityTypeItem extends AbstractItem { @@ -24,35 +21,21 @@ public class EntityTypeItem extends AbstractItem { this.type = type.getType(); } - /** - * Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified - * ({@link #notifyWindows()}). - * - * @return The {@link ItemProvider} - */ @Override - public ItemProvider getItemProvider() { - return new ItemBuilder(Material.ZOMBIE_SPAWN_EGG).setDisplayName(type.name()); + public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) { + return new ItemBuilder(Material.ZOMBIE_SPAWN_EGG).setCustomName(type.name()); } - /** - * A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a - * player. - * - * @param clickType The {@link ClickType} the {@link Player} performed. - * @param player The {@link Player} who clicked on the {@link ItemStack}. - * @param event The {@link InventoryClickEvent} associated with this click. - */ @Override public void handleClick( - @NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { + @NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) { player.closeInventory(); player.sendMessage( comp( " entitytype edit " - + event.getView().title() + + player.getOpenInventory().title() + "type")); } } diff --git a/src/main/java/me/unurled/sacredrealms/sr/gui/recordings/CutsceneItem.java b/src/main/java/me/unurled/sacredrealms/sr/gui/recordings/CutsceneItem.java index bfa7c6f..1631a93 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/gui/recordings/CutsceneItem.java +++ b/src/main/java/me/unurled/sacredrealms/sr/gui/recordings/CutsceneItem.java @@ -12,14 +12,14 @@ import org.bukkit.Material; import org.bukkit.NamespacedKey; import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; -import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.persistence.PersistentDataType; import org.jetbrains.annotations.NotNull; +import xyz.xenondevs.invui.item.AbstractItem; +import xyz.xenondevs.invui.item.Click; +import xyz.xenondevs.invui.item.ItemBuilder; import xyz.xenondevs.invui.item.ItemProvider; -import xyz.xenondevs.invui.item.builder.ItemBuilder; -import xyz.xenondevs.invui.item.impl.AbstractItem; public class CutsceneItem extends AbstractItem { @@ -34,7 +34,7 @@ public class CutsceneItem extends AbstractItem { } @Override - public ItemProvider getItemProvider() { + public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) { ItemStack itemStack = new ItemStack(Material.PAPER); ItemMeta itemMeta = itemStack.getItemMeta(); itemMeta.displayName(textComp(name)); @@ -46,26 +46,24 @@ public class CutsceneItem extends AbstractItem { @Override public void handleClick( - @NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { + @NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) { // get uuid - if (event.getCurrentItem() != null) { - String uuid = - event - .getCurrentItem() - .getItemMeta() - .getPersistentDataContainer() - .get(ID, PersistentDataType.STRING); + String uuid = + click + .getCursor() + .getItemMeta() + .getPersistentDataContainer() + .get(ID, PersistentDataType.STRING); - Cutscene cutscene = - Manager.getInstance(CutsceneManager.class).findByUUID(UUID.fromString(uuid)); + Cutscene cutscene = + Manager.getInstance(CutsceneManager.class).findByUUID(UUID.fromString(uuid)); - if (cutscene == null) { - player.sendMessage(textComp("Unexpected error.")); - return; - } - if (clickType.isLeftClick()) { - Manager.getInstance(RecordingManager.class).startRecording(cutscene, player); - } + if (cutscene == null) { + player.sendMessage(textComp("Unexpected error.")); + return; + } + if (clickType.isLeftClick()) { + Manager.getInstance(RecordingManager.class).startRecording(cutscene, player); } } } diff --git a/src/main/java/me/unurled/sacredrealms/sr/gui/recordings/StartRecordingGui.java b/src/main/java/me/unurled/sacredrealms/sr/gui/recordings/StartRecordingGui.java index 9d1bc47..35e7c73 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/gui/recordings/StartRecordingGui.java +++ b/src/main/java/me/unurled/sacredrealms/sr/gui/recordings/StartRecordingGui.java @@ -11,10 +11,10 @@ import me.unurled.sacredrealms.sr.gui.ForwardItem; import me.unurled.srcore.api.Manager; import org.jetbrains.annotations.NotNull; import xyz.xenondevs.invui.gui.Gui; +import xyz.xenondevs.invui.gui.Markers; import xyz.xenondevs.invui.gui.PagedGui; -import xyz.xenondevs.invui.gui.structure.Markers; import xyz.xenondevs.invui.item.Item; -import xyz.xenondevs.invui.item.builder.ItemBuilder; +import xyz.xenondevs.invui.item.ItemBuilder; public class StartRecordingGui { private StartRecordingGui() {} diff --git a/src/main/java/me/unurled/sacredrealms/sr/gui/replay/ReplayGui.java b/src/main/java/me/unurled/sacredrealms/sr/gui/replay/ReplayGui.java index 1e52604..c619abb 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/gui/replay/ReplayGui.java +++ b/src/main/java/me/unurled/sacredrealms/sr/gui/replay/ReplayGui.java @@ -11,10 +11,10 @@ import me.unurled.sacredrealms.sr.gui.ForwardItem; import me.unurled.srcore.api.Manager; import org.jetbrains.annotations.NotNull; import xyz.xenondevs.invui.gui.Gui; +import xyz.xenondevs.invui.gui.Markers; import xyz.xenondevs.invui.gui.PagedGui; -import xyz.xenondevs.invui.gui.structure.Markers; import xyz.xenondevs.invui.item.Item; -import xyz.xenondevs.invui.item.builder.ItemBuilder; +import xyz.xenondevs.invui.item.ItemBuilder; public class ReplayGui { private ReplayGui() {} diff --git a/src/main/java/me/unurled/sacredrealms/sr/gui/replay/ReplayItem.java b/src/main/java/me/unurled/sacredrealms/sr/gui/replay/ReplayItem.java index 31a13ed..90b574c 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/gui/replay/ReplayItem.java +++ b/src/main/java/me/unurled/sacredrealms/sr/gui/replay/ReplayItem.java @@ -12,14 +12,14 @@ import org.bukkit.Material; import org.bukkit.NamespacedKey; import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; -import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.persistence.PersistentDataType; import org.jetbrains.annotations.NotNull; +import xyz.xenondevs.invui.item.AbstractItem; +import xyz.xenondevs.invui.item.Click; +import xyz.xenondevs.invui.item.ItemBuilder; import xyz.xenondevs.invui.item.ItemProvider; -import xyz.xenondevs.invui.item.builder.ItemBuilder; -import xyz.xenondevs.invui.item.impl.AbstractItem; public class ReplayItem extends AbstractItem { private static NamespacedKey ID = null; @@ -33,7 +33,7 @@ public class ReplayItem extends AbstractItem { } @Override - public ItemProvider getItemProvider() { + public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) { ItemStack itemStack = new ItemStack(Material.PAPER); ItemMeta itemMeta = itemStack.getItemMeta(); itemMeta.displayName(textComp(name)); @@ -44,29 +44,27 @@ public class ReplayItem extends AbstractItem { @Override public void handleClick( - @NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { - if (event.getCurrentItem() != null) { - String uuid = - event - .getCurrentItem() - .getItemMeta() - .getPersistentDataContainer() - .get(ID, PersistentDataType.STRING); + @NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) { + String uuid = + click + .getCursor() + .getItemMeta() + .getPersistentDataContainer() + .get(ID, PersistentDataType.STRING); - if (uuid == null) { - return; - } + if (uuid == null) { + return; + } - Cutscene cutscene = - Manager.getInstance(CutsceneManager.class).findByUUID(UUID.fromString(uuid)); + Cutscene cutscene = + Manager.getInstance(CutsceneManager.class).findByUUID(UUID.fromString(uuid)); - if (cutscene == null) { - player.sendMessage(textComp("Unexpected error.")); - return; - } - if (clickType.isLeftClick()) { - Manager.getInstance(RecordingManager.class).startRecording(cutscene, player); - } + if (cutscene == null) { + player.sendMessage(textComp("Unexpected error.")); + return; + } + if (clickType.isLeftClick()) { + Manager.getInstance(RecordingManager.class).startRecording(cutscene, player); } } } diff --git a/src/main/java/me/unurled/sacredrealms/sr/gui/treasure/CancelItem.java b/src/main/java/me/unurled/sacredrealms/sr/gui/treasure/CancelItem.java index ba1f061..c03172a 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/gui/treasure/CancelItem.java +++ b/src/main/java/me/unurled/sacredrealms/sr/gui/treasure/CancelItem.java @@ -2,44 +2,26 @@ package me.unurled.sacredrealms.sr.gui.treasure; import static me.unurled.sacredrealms.sr.utils.Items.cancelItem; -import me.unurled.sacredrealms.sr.components.treasure.Treasure; import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; -import xyz.xenondevs.invui.item.Item; +import xyz.xenondevs.invui.item.AbstractItem; +import xyz.xenondevs.invui.item.Click; +import xyz.xenondevs.invui.item.ItemBuilder; import xyz.xenondevs.invui.item.ItemProvider; -import xyz.xenondevs.invui.item.builder.ItemBuilder; -import xyz.xenondevs.invui.item.impl.AbstractItem; -import xyz.xenondevs.invui.window.Window; public class CancelItem extends AbstractItem { public CancelItem() {} - /** - * Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified - * ({@link #notifyWindows()}). - * - * @return The {@link ItemProvider} - */ @Override - public ItemProvider getItemProvider() { + public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) { return new ItemBuilder(cancelItem()); } - /** - * A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a - * player. - * - * @param clickType The {@link ClickType} the {@link Player} performed. - * @param player The {@link Player} who clicked on the {@link ItemStack}. - * @param event The {@link InventoryClickEvent} associated with this click. - */ @Override public void handleClick( - @NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { + @NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) { player.closeInventory(); } } diff --git a/src/main/java/me/unurled/sacredrealms/sr/gui/treasure/ConfirmItem.java b/src/main/java/me/unurled/sacredrealms/sr/gui/treasure/ConfirmItem.java index 12eaf59..0c43e11 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/gui/treasure/ConfirmItem.java +++ b/src/main/java/me/unurled/sacredrealms/sr/gui/treasure/ConfirmItem.java @@ -1,7 +1,7 @@ package me.unurled.sacredrealms.sr.gui.treasure; -import static me.unurled.srcore.utils.Component.textComp; import static me.unurled.sacredrealms.sr.utils.Logger.log; +import static me.unurled.srcore.utils.Component.textComp; import java.util.HashMap; import java.util.Map; @@ -11,15 +11,13 @@ import me.unurled.srcore.api.Manager; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; -import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import org.jetbrains.annotations.NotNull; -import xyz.xenondevs.invui.item.Item; +import xyz.xenondevs.invui.item.AbstractItem; +import xyz.xenondevs.invui.item.Click; +import xyz.xenondevs.invui.item.ItemBuilder; import xyz.xenondevs.invui.item.ItemProvider; -import xyz.xenondevs.invui.item.builder.ItemBuilder; -import xyz.xenondevs.invui.item.impl.AbstractItem; -import xyz.xenondevs.invui.window.Window; public class ConfirmItem extends AbstractItem { @@ -29,14 +27,8 @@ public class ConfirmItem extends AbstractItem { this.treasure = treasure; } - /** - * Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified - * ({@link #notifyWindows()}). - * - * @return The {@link ItemProvider} - */ @Override - public ItemProvider getItemProvider() { + public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) { ItemStack confirm = new ItemStack(Material.GREEN_STAINED_GLASS_PANE); ItemMeta confirmMeta = confirm.getItemMeta(); confirmMeta.displayName(textComp("Confirm")); @@ -44,28 +36,16 @@ public class ConfirmItem extends AbstractItem { return new ItemBuilder(confirm); } - /** - * A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a - * player. - * - * @param clickType The {@link ClickType} the {@link Player} performed. - * @param player The {@link Player} who clicked on the {@link ItemStack}. - * @param event The {@link InventoryClickEvent} associated with this click. - */ @Override public void handleClick( - @NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { + @NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) { Map items = new HashMap<>(); for (int i = 0; i < player.getInventory().getContents().length; i++) { if (i < 9 || i > 35) { log("Skipping slot " + i); continue; } - if (event.getClickedInventory() == null) { - log("Clicked inventory is null"); - continue; - } - ItemStack content = event.getClickedInventory().getItem(i); + ItemStack content = player.getOpenInventory().getItem(i); if (content != null && content.getType() != Material.AIR) { items.put(i, content); log("Added item to items: " + content + " at slot " + i); diff --git a/src/main/java/me/unurled/sacredrealms/sr/gui/treasure/DeleteItem.java b/src/main/java/me/unurled/sacredrealms/sr/gui/treasure/DeleteItem.java index 5a0fede..cbc43e2 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/gui/treasure/DeleteItem.java +++ b/src/main/java/me/unurled/sacredrealms/sr/gui/treasure/DeleteItem.java @@ -8,15 +8,13 @@ import me.unurled.srcore.api.Manager; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; -import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import org.jetbrains.annotations.NotNull; -import xyz.xenondevs.invui.item.Item; +import xyz.xenondevs.invui.item.AbstractItem; +import xyz.xenondevs.invui.item.Click; +import xyz.xenondevs.invui.item.ItemBuilder; import xyz.xenondevs.invui.item.ItemProvider; -import xyz.xenondevs.invui.item.builder.ItemBuilder; -import xyz.xenondevs.invui.item.impl.AbstractItem; -import xyz.xenondevs.invui.window.Window; public class DeleteItem extends AbstractItem { @@ -26,14 +24,8 @@ public class DeleteItem extends AbstractItem { this.treasure = treasure; } - /** - * Gets the {@link ItemProvider}. This method gets called every time a {@link Window} is notified - * ({@link #notifyWindows()}). - * - * @return The {@link ItemProvider} - */ @Override - public ItemProvider getItemProvider() { + public @NotNull ItemProvider getItemProvider(@NotNull Player viewer) { ItemStack delete = new ItemStack(Material.RED_STAINED_GLASS_PANE); ItemMeta deleteMeta = delete.getItemMeta(); deleteMeta.displayName(textComp("Delete")); @@ -41,17 +33,9 @@ public class DeleteItem extends AbstractItem { return new ItemBuilder(delete); } - /** - * A method called if the {@link ItemStack} associated to this {@link Item} has been clicked by a - * player. - * - * @param clickType The {@link ClickType} the {@link Player} performed. - * @param player The {@link Player} who clicked on the {@link ItemStack}. - * @param event The {@link InventoryClickEvent} associated with this click. - */ @Override public void handleClick( - @NotNull ClickType clickType, @NotNull Player player, @NotNull InventoryClickEvent event) { + @NotNull ClickType clickType, @NotNull Player player, @NotNull Click click) { // delete treasure if (!player.hasPermission("sr.treasure.delete")) { return; diff --git a/src/main/java/me/unurled/sacredrealms/sr/gui/treasure/TreasureGUI.java b/src/main/java/me/unurled/sacredrealms/sr/gui/treasure/TreasureGUI.java index 3caa159..17488e1 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/gui/treasure/TreasureGUI.java +++ b/src/main/java/me/unurled/sacredrealms/sr/gui/treasure/TreasureGUI.java @@ -11,7 +11,6 @@ import xyz.xenondevs.invui.inventory.Inventory; import xyz.xenondevs.invui.inventory.VirtualInventory; import xyz.xenondevs.invui.inventory.event.UpdateReason; import xyz.xenondevs.invui.item.Item; -import xyz.xenondevs.invui.item.impl.SimpleItem; public class TreasureGUI { @@ -20,10 +19,10 @@ public class TreasureGUI { @NotNull public static Gui createGui(@NotNull Treasure treasure) { ItemStack itemStack = glassPane(); - Item pane = new SimpleItem(itemStack); + Item pane = Item.simple(itemStack); Inventory inventory = new VirtualInventory(27); - inventory.setPreUpdateHandler( + inventory.addPreUpdateHandler( (itemPreUpdateEvent) -> { if (itemPreUpdateEvent.isAdd() || itemPreUpdateEvent.isRemove() diff --git a/src/main/java/me/unurled/sacredrealms/sr/utils/SRPlayerUtils.java b/src/main/java/me/unurled/sacredrealms/sr/utils/SRPlayerUtils.java index fd327d0..9a96c33 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/utils/SRPlayerUtils.java +++ b/src/main/java/me/unurled/sacredrealms/sr/utils/SRPlayerUtils.java @@ -40,11 +40,9 @@ public class SRPlayerUtils { float value = (float) ((speed + items) / 500.0f); value = Math.min(value, 1.0f); value = Math.max(value, 0f); - AttributeInstance attribute1 = - p.getAttribute(org.bukkit.attribute.Attribute.GENERIC_MOVEMENT_SPEED); + AttributeInstance attribute1 = p.getAttribute(org.bukkit.attribute.Attribute.MOVEMENT_SPEED); if (attribute1 != null) attribute1.setBaseValue(value); - AttributeInstance attribute2 = - p.getAttribute(org.bukkit.attribute.Attribute.GENERIC_FLYING_SPEED); + AttributeInstance attribute2 = p.getAttribute(org.bukkit.attribute.Attribute.FLYING_SPEED); if (attribute2 != null) attribute2.setBaseValue(value); p.setFlySpeed(value); p.setWalkSpeed(value); @@ -57,7 +55,7 @@ public class SRPlayerUtils { // default is 100 so 20 double health = (sr.getAttribute(Attribute.HEALTH) + sr.getTotalItemAttribute(Attribute.HEALTH)) / 5; - AttributeInstance attribute = p.getAttribute(org.bukkit.attribute.Attribute.GENERIC_MAX_HEALTH); + AttributeInstance attribute = p.getAttribute(org.bukkit.attribute.Attribute.MAX_HEALTH); if (attribute != null) attribute.setBaseValue(health); p.sendHealthUpdate(); p.updateInventory();