From 0eac799e797bf6add23e01f19d84890a27955eac Mon Sep 17 00:00:00 2001 From: BlitzOffline <52609756+BlitzOffline@users.noreply.github.com> Date: Thu, 17 Jul 2025 20:37:30 +0300 Subject: [PATCH 1/3] Moved to Paper-API, Upgraded to Java 17, Upgraded libraries --- build.gradle.kts | 12 +++++++----- gradle/libs.versions.toml | 10 ++++++---- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 643c40c2..fc23bda9 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,7 +1,7 @@ plugins { java - id("com.gradleup.shadow") version("8.3.5") - id("com.github.ben-manes.versions") version("0.51.0") + id("com.gradleup.shadow") version("8.3.8") + id("com.github.ben-manes.versions") version("0.52.0") } // Change to true when releasing @@ -20,11 +20,12 @@ repositories { maven("https://nexus.phoenixdevt.fr/repository/maven-public/") maven("https://repo.nexomc.com/releases/") maven("https://repo.oraxen.com/releases") + maven("https://maven.devs.beer/") maven("https://jitpack.io") } dependencies { - compileOnly(libs.spigot) + compileOnly(libs.paper) compileOnly(libs.vault) compileOnly(libs.authlib) @@ -56,9 +57,10 @@ tasks { relocate("org.bstats", "com.extendedclip.deluxemenus.libs.bstats") archiveFileName.set("DeluxeMenus-${rootProject.version}.jar") } + java { - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 disableAutoTargetJvm() } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 4f479961..a778d501 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,14 +1,15 @@ [versions] # Compile only spigot = "1.21.5-R0.1-SNAPSHOT" +paper = "1.21.7-R0.1-SNAPSHOT" vault = "1.7.1" authlib = "1.5.25" headdb = "1.3.2" -itemsadder = "3.6.3-beta-14" -nexo = "1.1.0" +itemsadder = "4.0.10" +nexo = "1.8.0" oraxen = "1.190.0" mythiclib = "1.7.1-SNAPSHOT" -mmoitems = "6.10-SNAPSHOT" +mmoitems = "6.10.1-SNAPSHOT" papi = "2.11.6" score = "4.24.3.5" sig = "1.5.0" @@ -22,10 +23,11 @@ adventure-minimessage = "4.21.0" [libraries] # Compile only spigot = { module = "org.spigotmc:spigot-api", version.ref = "spigot" } +paper = { module = "io.papermc.paper:paper-api", version.ref = "paper" } vault = { module = "com.github.milkbowl:VaultAPI", version.ref = "vault" } authlib = { module = "com.mojang:authlib", version.ref = "authlib" } headdb = { module = "com.arcaniax:HeadDatabase-API", version.ref = "headdb" } -itemsadder = { module = "com.github.LoneDev6:api-itemsadder", version.ref = "itemsadder" } +itemsadder = { module = "dev.lone:api-itemsadder", version.ref = "itemsadder" } nexo = { module = "com.nexomc:nexo", version.ref = "nexo" } oraxen = { module = "io.th0rgal:oraxen", version.ref = "oraxen" } mythiclib = { module = "io.lumine:MythicLib-dist", version.ref = "mythiclib"} From ce1a5596540c139120a02c02b850d2036ce334e4 Mon Sep 17 00:00:00 2001 From: BlitzOffline <52609756+BlitzOffline@users.noreply.github.com> Date: Thu, 17 Jul 2025 21:22:54 +0300 Subject: [PATCH 2/3] Upgrade to Java 21, Make use of some Java 21 syntax sugar, Add some notes for later (regarding some API features that might break the plugin on older versions of paper), Make use of the paper-plugin.yml file --- build.gradle.kts | 6 +++--- gradle/libs.versions.toml | 2 +- .../deluxemenus/menu/command/RegistrableMenuCommand.java | 8 ++++---- .../deluxemenus/persistentmeta/PersistentMetaHandler.java | 1 + .../com/extendedclip/deluxemenus/utils/ItemUtils.java | 2 +- src/main/resources/paper-plugin.yml | 5 +++++ 6 files changed, 15 insertions(+), 9 deletions(-) create mode 100644 src/main/resources/paper-plugin.yml diff --git a/build.gradle.kts b/build.gradle.kts index fc23bda9..29c06eaf 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -59,13 +59,13 @@ tasks { } java { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 + sourceCompatibility = JavaVersion.VERSION_21 + targetCompatibility = JavaVersion.VERSION_21 disableAutoTargetJvm() } processResources { - filesMatching("plugin.yml") { + filesMatching(listOf("plugin.yml", "paper-plugin.yml")) { expand("version" to rootProject.version) } } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index a778d501..9fadf790 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,6 +1,7 @@ [versions] # Compile only spigot = "1.21.5-R0.1-SNAPSHOT" +#paper = "1.17.1-R0.1-SNAPSHOT" paper = "1.21.7-R0.1-SNAPSHOT" vault = "1.7.1" authlib = "1.5.25" @@ -22,7 +23,6 @@ adventure-minimessage = "4.21.0" [libraries] # Compile only -spigot = { module = "org.spigotmc:spigot-api", version.ref = "spigot" } paper = { module = "io.papermc.paper:paper-api", version.ref = "paper" } vault = { module = "com.github.milkbowl:VaultAPI", version.ref = "vault" } authlib = { module = "com.mojang:authlib", version.ref = "authlib" } diff --git a/src/main/java/com/extendedclip/deluxemenus/menu/command/RegistrableMenuCommand.java b/src/main/java/com/extendedclip/deluxemenus/menu/command/RegistrableMenuCommand.java index 3edf522b..6e315be0 100644 --- a/src/main/java/com/extendedclip/deluxemenus/menu/command/RegistrableMenuCommand.java +++ b/src/main/java/com/extendedclip/deluxemenus/menu/command/RegistrableMenuCommand.java @@ -32,7 +32,7 @@ public class RegistrableMenuCommand extends Command { public RegistrableMenuCommand(final @NotNull DeluxeMenus plugin, final @NotNull Menu menu) { - super(menu.options().commands().isEmpty() ? menu.options().name() : menu.options().commands().get(0)); + super(menu.options().commands().isEmpty() ? menu.options().name() : menu.options().commands().getFirst()); this.plugin = plugin; this.menu = menu; @@ -42,12 +42,12 @@ public RegistrableMenuCommand(final @NotNull DeluxeMenus plugin, } @Override - public boolean execute(final @NotNull CommandSender sender, final @NotNull String commandLabel, final @NotNull String[] typedArgs) { + public boolean execute(final @NotNull CommandSender sender, final @NotNull String commandLabel, final @NotNull String @NotNull [] typedArgs) { if (this.unregistered) { throw new IllegalStateException("This command was unregistered!"); } - if (!(sender instanceof Player)) { + if (!(sender instanceof Player player)) { Msg.msg(sender, "Menus can only be opened by players!"); return true; } @@ -77,7 +77,6 @@ public boolean execute(final @NotNull CommandSender sender, final @NotNull Strin } } - Player player = (Player) sender; plugin.debug(DebugLevel.LOWEST, Level.INFO, "opening menu: " + menu.options().name()); menu.openMenu(player, argMap, null); return true; @@ -138,6 +137,7 @@ public void unregister() { knownCommands = SimpleCommandMap.class.getDeclaredField("knownCommands"); knownCommands.setAccessible(true); + //noinspection unchecked final Map knownCommandsMap = (Map) knownCommands.get(cMap.get(Bukkit.getServer())); // We need to remove every single alias because CommandMap#register() adds them all to the map. diff --git a/src/main/java/com/extendedclip/deluxemenus/persistentmeta/PersistentMetaHandler.java b/src/main/java/com/extendedclip/deluxemenus/persistentmeta/PersistentMetaHandler.java index bab7d857..11182d55 100644 --- a/src/main/java/com/extendedclip/deluxemenus/persistentmeta/PersistentMetaHandler.java +++ b/src/main/java/com/extendedclip/deluxemenus/persistentmeta/PersistentMetaHandler.java @@ -145,6 +145,7 @@ public Map getMetaValues( return OperationResult.NEW_VALUE_IS_DIFFERENT_TYPE; } + // TODO: Blitz: It seems that PersistentDataContainer#has(NamespacedKey) does not exist in 1.17.1. if (player.getPersistentDataContainer().has(key) && (!player.getPersistentDataContainer().has(key, type.getPDType()) || !type.isSupported(player.getPersistentDataContainer().get(key, type.getPDType())))) { return OperationResult.EXISTENT_VALUE_IS_DIFFERENT_TYPE; diff --git a/src/main/java/com/extendedclip/deluxemenus/utils/ItemUtils.java b/src/main/java/com/extendedclip/deluxemenus/utils/ItemUtils.java index 5c404299..6732a370 100644 --- a/src/main/java/com/extendedclip/deluxemenus/utils/ItemUtils.java +++ b/src/main/java/com/extendedclip/deluxemenus/utils/ItemUtils.java @@ -94,7 +94,7 @@ public static boolean hasPotionMeta(@NotNull final ItemStack itemStack) { final PotionMeta itemMeta = (PotionMeta) itemStack.getItemMeta(); if (itemMeta != null) { - itemMeta.setBasePotionType(PotionType.WATER); + itemMeta.setBasePotionType(PotionType.WATER); // TODO: Blitz: Check if this works in 1.17.1 (seems that the setBasePotionType method was only added later) itemStack.setItemMeta(itemMeta); } diff --git a/src/main/resources/paper-plugin.yml b/src/main/resources/paper-plugin.yml new file mode 100644 index 00000000..0dd00eba --- /dev/null +++ b/src/main/resources/paper-plugin.yml @@ -0,0 +1,5 @@ +name: DeluxeMenus +version: '${version}' +main: com.extendedclip.deluxemenus.DeluxeMenus +description: All in one inventory menu system +api-version: '1.13' \ No newline at end of file From ce612da50bb61b1ac514e5105d49db6f6f209647 Mon Sep 17 00:00:00 2001 From: BlitzOffline <52609756+BlitzOffline@users.noreply.github.com> Date: Thu, 17 Jul 2025 21:25:05 +0300 Subject: [PATCH 3/3] Removed unused maven repositories, and added Paper official maven repository --- build.gradle.kts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 29c06eaf..27c11b5f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -14,9 +14,8 @@ version = "$majorVersion-$minorVersion" repositories { mavenCentral() - maven("https://s01.oss.sonatype.org/content/repositories/snapshots/") + maven("https://repo.papermc.io/repository/maven-public/") maven("https://repo.extendedclip.com/content/repositories/placeholderapi/") - maven("https://repo.glaremasters.me/repository/public/") maven("https://nexus.phoenixdevt.fr/repository/maven-public/") maven("https://repo.nexomc.com/releases/") maven("https://repo.oraxen.com/releases")