From f8a945407e9d931ed169a5a4fd4709b3ce46ad62 Mon Sep 17 00:00:00 2001 From: quiquelhappy Date: Sun, 26 Oct 2025 11:02:37 +0100 Subject: [PATCH 01/21] add 1.21.10 support --- build.gradle | 4 ++-- src/main/java/dev/unnm3d/redischat/RedisChat.java | 5 ++--- .../java/dev/unnm3d/redischat/commands/ChatAsCommand.java | 4 ++-- .../unnm3d/redischat/commands/IgnoreWhitelistCommand.java | 4 ++-- 4 files changed, 8 insertions(+), 9 deletions(-) diff --git a/build.gradle b/build.gradle index c2078e4..bf23762 100644 --- a/build.gradle +++ b/build.gradle @@ -38,7 +38,7 @@ dependencies { implementation 'xyz.xenondevs.invui:inventory-access-r22:1.46' implementation 'xyz.xenondevs.invui:inventory-access-r23:1.46' implementation 'xyz.xenondevs.invui:inventory-access-r24:1.46' - implementation 'dev.jorel:commandapi-bukkit-shade:10.1.2' + implementation 'dev.jorel:commandapi-spigot-shade:11.0.0' implementation "net.william278.uniform:uniform-paper:1.3.8" implementation 'com.github.Anon8281:UniversalScheduler:0.1.6' @@ -103,7 +103,7 @@ shadowJar { include dependency('xyz.xenondevs.invui:inventory-access-r22') include dependency('xyz.xenondevs.invui:inventory-access-r23') include dependency('xyz.xenondevs.invui:inventory-access-r24') - include dependency('dev.jorel:commandapi-bukkit-shade') + include dependency('dev.jorel:commandapi-spigot-shade') include dependency('net.william278.uniform:uniform-paper') include dependency('com.github.Anon8281:UniversalScheduler:0.1.6') } diff --git a/src/main/java/dev/unnm3d/redischat/RedisChat.java b/src/main/java/dev/unnm3d/redischat/RedisChat.java index ca30840..a847d68 100644 --- a/src/main/java/dev/unnm3d/redischat/RedisChat.java +++ b/src/main/java/dev/unnm3d/redischat/RedisChat.java @@ -7,7 +7,7 @@ import de.exlll.configlib.YamlConfigurationProperties; import de.exlll.configlib.YamlConfigurations; import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.CommandAPIBukkitConfig; +import dev.jorel.commandapi.CommandAPISpigotConfig; import dev.jorel.commandapi.CommandAPICommand; import dev.unnm3d.redischat.api.DataManager; import dev.unnm3d.redischat.channels.ChannelCommand; @@ -104,10 +104,9 @@ public final class RedisChat extends JavaPlugin { @Override public void onLoad() { - CommandAPI.onLoad(new CommandAPIBukkitConfig(this) + CommandAPI.onLoad(new CommandAPISpigotConfig(this) .silentLogs(false) .skipReloadDatapacks(true) - .shouldHookPaperReload(true) .verboseOutput(true)); } diff --git a/src/main/java/dev/unnm3d/redischat/commands/ChatAsCommand.java b/src/main/java/dev/unnm3d/redischat/commands/ChatAsCommand.java index 2ec4e77..ef548cc 100644 --- a/src/main/java/dev/unnm3d/redischat/commands/ChatAsCommand.java +++ b/src/main/java/dev/unnm3d/redischat/commands/ChatAsCommand.java @@ -2,7 +2,7 @@ import dev.jorel.commandapi.CommandAPICommand; import dev.jorel.commandapi.arguments.GreedyStringArgument; -import dev.jorel.commandapi.arguments.PlayerArgument; +import dev.jorel.commandapi.arguments.PlayerProfileArgument; import dev.jorel.commandapi.arguments.StringArgument; import dev.unnm3d.redischat.RedisChat; import lombok.AllArgsConstructor; @@ -16,7 +16,7 @@ public CommandAPICommand getCommand() { return new CommandAPICommand("chatas") .withPermission("redischat.chatas") .withArguments( - new PlayerArgument("player"), + new PlayerProfileArgument("player"), new StringArgument("channel"), new GreedyStringArgument("message")) .executes((sender, args) -> { diff --git a/src/main/java/dev/unnm3d/redischat/commands/IgnoreWhitelistCommand.java b/src/main/java/dev/unnm3d/redischat/commands/IgnoreWhitelistCommand.java index 0b753c2..9c8e38b 100644 --- a/src/main/java/dev/unnm3d/redischat/commands/IgnoreWhitelistCommand.java +++ b/src/main/java/dev/unnm3d/redischat/commands/IgnoreWhitelistCommand.java @@ -1,7 +1,7 @@ package dev.unnm3d.redischat.commands; import dev.jorel.commandapi.CommandAPICommand; -import dev.jorel.commandapi.arguments.PlayerArgument; +import dev.jorel.commandapi.arguments.PlayerProfileArgument; import dev.unnm3d.redischat.Permissions; import dev.unnm3d.redischat.RedisChat; import lombok.AllArgsConstructor; @@ -15,7 +15,7 @@ public class IgnoreWhitelistCommand { public CommandAPICommand getCommand() { return new CommandAPICommand("ignorewhitelist") .withPermission(Permissions.IGNORE_WHITELIST.getPermission()) - .withOptionalArguments(new PlayerArgument("player")) + .withOptionalArguments(new PlayerProfileArgument("player")) .executesPlayer((sender, args) -> { //Get the target player name or sender name final String targetName = args.getOptional("player") From 32c4f8cc4ba4ec2872e65cb59823d59be9006850 Mon Sep 17 00:00:00 2001 From: quiquelhappy Date: Sun, 26 Oct 2025 11:04:49 +0100 Subject: [PATCH 02/21] bump version --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index bf23762..45a54b9 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,7 @@ plugins { group = 'dev.unnm3d' -version = '5.5.13' +version = '5.5.14' repositories { From e8e4257d46371fdc573f94cffdb053619b9acf3a Mon Sep 17 00:00:00 2001 From: quiquelhappy Date: Sun, 26 Oct 2025 11:16:31 +0100 Subject: [PATCH 03/21] fix invui dep --- build.gradle | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/build.gradle b/build.gradle index 45a54b9..ee9447a 100644 --- a/build.gradle +++ b/build.gradle @@ -27,24 +27,25 @@ dependencies { implementation 'com.github.Exlll.ConfigLib:configlib-paper:v4.5.0' - implementation 'xyz.xenondevs.invui:invui-core:1.46' - implementation 'xyz.xenondevs.invui:inventory-access-r15:1.46' - implementation 'xyz.xenondevs.invui:inventory-access-r16:1.46' - implementation 'xyz.xenondevs.invui:inventory-access-r17:1.46' - implementation 'xyz.xenondevs.invui:inventory-access-r18:1.46' - implementation 'xyz.xenondevs.invui:inventory-access-r19:1.46' - implementation 'xyz.xenondevs.invui:inventory-access-r20:1.46' - implementation 'xyz.xenondevs.invui:inventory-access-r21:1.46' - implementation 'xyz.xenondevs.invui:inventory-access-r22:1.46' - implementation 'xyz.xenondevs.invui:inventory-access-r23:1.46' - implementation 'xyz.xenondevs.invui:inventory-access-r24:1.46' + implementation 'xyz.xenondevs.invui:invui-core:1.47' + implementation 'xyz.xenondevs.invui:inventory-access-r15:1.47' + implementation 'xyz.xenondevs.invui:inventory-access-r16:1.47' + implementation 'xyz.xenondevs.invui:inventory-access-r17:1.47' + implementation 'xyz.xenondevs.invui:inventory-access-r18:1.47' + implementation 'xyz.xenondevs.invui:inventory-access-r19:1.47' + implementation 'xyz.xenondevs.invui:inventory-access-r20:1.47' + implementation 'xyz.xenondevs.invui:inventory-access-r21:1.47' + implementation 'xyz.xenondevs.invui:inventory-access-r22:1.47' + implementation 'xyz.xenondevs.invui:inventory-access-r23:1.47' + implementation 'xyz.xenondevs.invui:inventory-access-r24:1.47' + implementation 'xyz.xenondevs.invui:inventory-access-r25:1.47' implementation 'dev.jorel:commandapi-spigot-shade:11.0.0' implementation "net.william278.uniform:uniform-paper:1.3.8" implementation 'com.github.Anon8281:UniversalScheduler:0.1.6' - compileOnly 'io.papermc.paper:paper-api:1.20.4-R0.1-SNAPSHOT' + compileOnly 'io.papermc.paper:paper-api:1.21.4-R0.1-SNAPSHOT' compileOnly 'me.clip:placeholderapi:2.11.6' compileOnly 'io.lettuce:lettuce-core:6.5.3.RELEASE' compileOnly 'org.jetbrains:annotations:24.1.0' @@ -57,7 +58,9 @@ dependencies { compileOnly 'org.spicord:spicord-common:5.7.2' compileOnly 'net.dv8tion:JDA:5.0.0-beta.16' compileOnly 'org.apache.commons:commons-collections4:4.4' - compileOnly 'net.essentialsx:EssentialsX:2.21.0' + compileOnly('net.essentialsx:EssentialsX:2.21.0') { + exclude group: 'org.spigotmc', module: 'spigot-api' + } testImplementation 'org.junit.jupiter:junit-jupiter-api:5.10.2' testImplementation 'org.junit.jupiter:junit-jupiter-params:5.10.2' @@ -103,6 +106,7 @@ shadowJar { include dependency('xyz.xenondevs.invui:inventory-access-r22') include dependency('xyz.xenondevs.invui:inventory-access-r23') include dependency('xyz.xenondevs.invui:inventory-access-r24') + include dependency('xyz.xenondevs.invui:inventory-access-r25') include dependency('dev.jorel:commandapi-spigot-shade') include dependency('net.william278.uniform:uniform-paper') include dependency('com.github.Anon8281:UniversalScheduler:0.1.6') From 2c46440de75fcfd12abb422b025d2254af63540d Mon Sep 17 00:00:00 2001 From: quiquelhappy Date: Sun, 26 Oct 2025 11:16:42 +0100 Subject: [PATCH 04/21] fix onDisable failing --- src/main/java/dev/unnm3d/redischat/RedisChat.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/dev/unnm3d/redischat/RedisChat.java b/src/main/java/dev/unnm3d/redischat/RedisChat.java index a847d68..5f29041 100644 --- a/src/main/java/dev/unnm3d/redischat/RedisChat.java +++ b/src/main/java/dev/unnm3d/redischat/RedisChat.java @@ -357,7 +357,11 @@ public void onDisable() { if (this.dataManager != null) this.dataManager.clearInvShareCache(); - PaperUniform.getInstance(this).shutdown(); + try { + PaperUniform.getInstance(this).shutdown(); + } catch (IllegalStateException e) { + getLogger().warning("PaperUniform already shutdown or not initialized: " + e.getMessage()); + } registeredCommands.forEach(command -> CommandAPI.unregister(command.getName(), true)); CommandAPI.onDisable(); From f4900b2eb0ef908b4e9c83ab2d869df771640129 Mon Sep 17 00:00:00 2001 From: quiquelhappy Date: Sun, 26 Oct 2025 11:16:52 +0100 Subject: [PATCH 05/21] update deprecated sound methods --- .../java/dev/unnm3d/redischat/channels/ChannelManager.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/dev/unnm3d/redischat/channels/ChannelManager.java b/src/main/java/dev/unnm3d/redischat/channels/ChannelManager.java index e9ac7ed..173175a 100644 --- a/src/main/java/dev/unnm3d/redischat/channels/ChannelManager.java +++ b/src/main/java/dev/unnm3d/redischat/channels/ChannelManager.java @@ -345,7 +345,7 @@ public void sendGenericChat(@NotNull ChatMessage chatMessage) { if (getComponentProvider().purgeTags(chatMessage.getContent()).contains(recipient.getName())) { if (!plugin.config.mentionSound.isEmpty()) { final String[] split = plugin.config.mentionSound.split(":"); - recipient.playSound(recipient.getLocation(), Sound.valueOf(split[0]).getKey().toString(), + recipient.playSound(recipient.getLocation(), Sound.valueOf(split[0]), Float.parseFloat(split[1]), Float.parseFloat(split[2])); } } @@ -354,7 +354,7 @@ public void sendGenericChat(@NotNull ChatMessage chatMessage) { if (chatMessage.getReceiver().isPlayer()) { if (!plugin.config.privateMessageSound.isEmpty()) { final String[] split = plugin.config.privateMessageSound.split(":"); - recipient.playSound(recipient.getLocation(), Sound.valueOf(split[0]).getKey().toString(), + recipient.playSound(recipient.getLocation(), Sound.valueOf(split[0]), Float.parseFloat(split[1]), Float.parseFloat(split[2])); } } From d4f2cea4d422418ec18a7c7a7b3b48d1014264e5 Mon Sep 17 00:00:00 2001 From: quiquelhappy Date: Sun, 26 Oct 2025 11:32:12 +0100 Subject: [PATCH 06/21] Revert "fix onDisable failing" This reverts commit 2c46440de75fcfd12abb422b025d2254af63540d. --- src/main/java/dev/unnm3d/redischat/RedisChat.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/main/java/dev/unnm3d/redischat/RedisChat.java b/src/main/java/dev/unnm3d/redischat/RedisChat.java index 5f29041..a847d68 100644 --- a/src/main/java/dev/unnm3d/redischat/RedisChat.java +++ b/src/main/java/dev/unnm3d/redischat/RedisChat.java @@ -357,11 +357,7 @@ public void onDisable() { if (this.dataManager != null) this.dataManager.clearInvShareCache(); - try { - PaperUniform.getInstance(this).shutdown(); - } catch (IllegalStateException e) { - getLogger().warning("PaperUniform already shutdown or not initialized: " + e.getMessage()); - } + PaperUniform.getInstance(this).shutdown(); registeredCommands.forEach(command -> CommandAPI.unregister(command.getName(), true)); CommandAPI.onDisable(); From 93a240462e60dbf6fccd441bd9bdaf6b0f98bbf2 Mon Sep 17 00:00:00 2001 From: quiquelhappy Date: Sun, 26 Oct 2025 12:30:37 +0100 Subject: [PATCH 07/21] use external CommandAPI dependency --- build.gradle | 4 +--- .../java/dev/unnm3d/redischat/RedisChat.java | 20 ++----------------- src/main/resources/plugin.yml | 1 + 3 files changed, 4 insertions(+), 21 deletions(-) diff --git a/build.gradle b/build.gradle index ee9447a..b8c0187 100644 --- a/build.gradle +++ b/build.gradle @@ -39,7 +39,7 @@ dependencies { implementation 'xyz.xenondevs.invui:inventory-access-r23:1.47' implementation 'xyz.xenondevs.invui:inventory-access-r24:1.47' implementation 'xyz.xenondevs.invui:inventory-access-r25:1.47' - implementation 'dev.jorel:commandapi-spigot-shade:11.0.0' + compileOnly 'dev.jorel:commandapi-paper-core:11.0.0' implementation "net.william278.uniform:uniform-paper:1.3.8" implementation 'com.github.Anon8281:UniversalScheduler:0.1.6' @@ -107,7 +107,6 @@ shadowJar { include dependency('xyz.xenondevs.invui:inventory-access-r23') include dependency('xyz.xenondevs.invui:inventory-access-r24') include dependency('xyz.xenondevs.invui:inventory-access-r25') - include dependency('dev.jorel:commandapi-spigot-shade') include dependency('net.william278.uniform:uniform-paper') include dependency('com.github.Anon8281:UniversalScheduler:0.1.6') } @@ -117,7 +116,6 @@ shadowJar { relocate 'de.exlll.configlib', 'dev.unnm3d.redischat.libraries.configlib' relocate 'xyz.xenondevs.invui', 'dev.unnm3d.redischat.libraries.invui' relocate 'xyz.xenondevs.inventoryaccess', 'dev.unnm3d.redischat.libraries.inventoryaccess' - relocate 'dev.jorel.commandapi', 'dev.unnm3d.redischat.libraries.commandapi' relocate 'net.william278.uniform', 'dev.unnm3d.redischat.libraries.uniform' relocate 'net.kyori.adventure.platform', 'dev.unnm3d.redischat.libraries.kyori.adventure.platform' relocate 'com.github.Anon8281.universalScheduler', 'dev.unnm3d.redischat.libraries.universalScheduler' diff --git a/src/main/java/dev/unnm3d/redischat/RedisChat.java b/src/main/java/dev/unnm3d/redischat/RedisChat.java index a847d68..203adf9 100644 --- a/src/main/java/dev/unnm3d/redischat/RedisChat.java +++ b/src/main/java/dev/unnm3d/redischat/RedisChat.java @@ -6,8 +6,6 @@ import de.exlll.configlib.ConfigurationException; import de.exlll.configlib.YamlConfigurationProperties; import de.exlll.configlib.YamlConfigurations; -import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.CommandAPISpigotConfig; import dev.jorel.commandapi.CommandAPICommand; import dev.unnm3d.redischat.api.DataManager; import dev.unnm3d.redischat.channels.ChannelCommand; @@ -102,18 +100,9 @@ public final class RedisChat extends JavaPlugin { public Messages messages; - @Override - public void onLoad() { - CommandAPI.onLoad(new CommandAPISpigotConfig(this) - .silentLogs(false) - .skipReloadDatapacks(true) - .verboseOutput(true)); - } - @Override public void onEnable() { instance = this; - CommandAPI.onEnable(); registeredCommands = new ArrayList<>(); scheduler = UniversalScheduler.getScheduler(this); @@ -358,8 +347,8 @@ public void onDisable() { this.dataManager.clearInvShareCache(); PaperUniform.getInstance(this).shutdown(); - registeredCommands.forEach(command -> CommandAPI.unregister(command.getName(), true)); - CommandAPI.onDisable(); + // Commands are unregistered automatically by CommandAPI plugin + registeredCommands.clear(); if (this.playerListManager != null) this.playerListManager.stop(); @@ -390,11 +379,6 @@ private void loadCommandAPICommand(CommandAPICommand commandAPICommand) { return; } - CommandAPI.unregister(commandAPICommand.getName(), true); - for (String alias : commandAPICommand.getAliases()) { - if (alias.equals(commandAPICommand.getName())) continue; - CommandAPI.unregister(alias, true); - } commandAPICommand.register(); registeredCommands.add(commandAPICommand); getLogger().info("Command " + commandAPICommand.getName() + " registered on CommandAPI!"); diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 1307584..f02661a 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -16,6 +16,7 @@ libraries: - net.kyori:adventure-platform-bukkit:4.4.0 depend: - PlaceholderAPI + - CommandAPI softdepend: - Oraxen - Spicord From 62c553d33e6d5d95090d5e1ac5e5d4dfc7c93a80 Mon Sep 17 00:00:00 2001 From: quiquelhappy Date: Sun, 26 Oct 2025 12:30:52 +0100 Subject: [PATCH 08/21] bump version again --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index b8c0187..81d3a5a 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,7 @@ plugins { group = 'dev.unnm3d' -version = '5.5.14' +version = '5.5.15' repositories { From 0bd9c4654ea2f40a08fba66ba77d78190ec04650 Mon Sep 17 00:00:00 2001 From: quiquelhappy Date: Sun, 26 Oct 2025 12:31:28 +0100 Subject: [PATCH 09/21] add missing output stuff --- .gitignore | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 455f689..48f3950 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ # User-specific stuff .idea/ +.vscode/ *.iml *.ipr @@ -111,4 +112,10 @@ buildNumber.properties # Common working directory run/ -src/main/java/dev/unnm3d/redischat/utils/Metrics.java \ No newline at end of file +src/main/java/dev/unnm3d/redischat/utils/Metrics.java + +# Build +build/ + +# Gradle +.gradle \ No newline at end of file From 1b123f5c38c237c1f67af8914c438b35ca280883 Mon Sep 17 00:00:00 2001 From: Bloody_Mind <70509359+Leahcimkrob@users.noreply.github.com> Date: Thu, 20 Nov 2025 21:35:32 +0100 Subject: [PATCH 10/21] -relocate uniform_lib --- build.gradle | 1 - 1 file changed, 1 deletion(-) diff --git a/build.gradle b/build.gradle index 81d3a5a..fd4a4b9 100644 --- a/build.gradle +++ b/build.gradle @@ -116,7 +116,6 @@ shadowJar { relocate 'de.exlll.configlib', 'dev.unnm3d.redischat.libraries.configlib' relocate 'xyz.xenondevs.invui', 'dev.unnm3d.redischat.libraries.invui' relocate 'xyz.xenondevs.inventoryaccess', 'dev.unnm3d.redischat.libraries.inventoryaccess' - relocate 'net.william278.uniform', 'dev.unnm3d.redischat.libraries.uniform' relocate 'net.kyori.adventure.platform', 'dev.unnm3d.redischat.libraries.kyori.adventure.platform' relocate 'com.github.Anon8281.universalScheduler', 'dev.unnm3d.redischat.libraries.universalScheduler' } From b89c15c7857aac0d2e1a2532914aa41d80d89d85 Mon Sep 17 00:00:00 2001 From: Bloody_Mind <70509359+Leahcimkrob@users.noreply.github.com> Date: Thu, 20 Nov 2025 21:40:07 +0100 Subject: [PATCH 11/21] Revert "-relocate uniform_lib" This reverts commit 1b123f5c38c237c1f67af8914c438b35ca280883. --- build.gradle | 1 + 1 file changed, 1 insertion(+) diff --git a/build.gradle b/build.gradle index fd4a4b9..81d3a5a 100644 --- a/build.gradle +++ b/build.gradle @@ -116,6 +116,7 @@ shadowJar { relocate 'de.exlll.configlib', 'dev.unnm3d.redischat.libraries.configlib' relocate 'xyz.xenondevs.invui', 'dev.unnm3d.redischat.libraries.invui' relocate 'xyz.xenondevs.inventoryaccess', 'dev.unnm3d.redischat.libraries.inventoryaccess' + relocate 'net.william278.uniform', 'dev.unnm3d.redischat.libraries.uniform' relocate 'net.kyori.adventure.platform', 'dev.unnm3d.redischat.libraries.kyori.adventure.platform' relocate 'com.github.Anon8281.universalScheduler', 'dev.unnm3d.redischat.libraries.universalScheduler' } From d4f5f315e1492de7c6c36feabb12db78a207fc61 Mon Sep 17 00:00:00 2001 From: Bloody_Mind <70509359+Leahcimkrob@users.noreply.github.com> Date: Thu, 20 Nov 2025 21:46:21 +0100 Subject: [PATCH 12/21] Revert "use external CommandAPI dependency" This reverts commit 93a240462e60dbf6fccd441bd9bdaf6b0f98bbf2. --- build.gradle | 4 +++- .../java/dev/unnm3d/redischat/RedisChat.java | 20 +++++++++++++++++-- src/main/resources/plugin.yml | 1 - 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/build.gradle b/build.gradle index 81d3a5a..7c38c35 100644 --- a/build.gradle +++ b/build.gradle @@ -39,7 +39,7 @@ dependencies { implementation 'xyz.xenondevs.invui:inventory-access-r23:1.47' implementation 'xyz.xenondevs.invui:inventory-access-r24:1.47' implementation 'xyz.xenondevs.invui:inventory-access-r25:1.47' - compileOnly 'dev.jorel:commandapi-paper-core:11.0.0' + implementation 'dev.jorel:commandapi-spigot-shade:11.0.0' implementation "net.william278.uniform:uniform-paper:1.3.8" implementation 'com.github.Anon8281:UniversalScheduler:0.1.6' @@ -107,6 +107,7 @@ shadowJar { include dependency('xyz.xenondevs.invui:inventory-access-r23') include dependency('xyz.xenondevs.invui:inventory-access-r24') include dependency('xyz.xenondevs.invui:inventory-access-r25') + include dependency('dev.jorel:commandapi-spigot-shade') include dependency('net.william278.uniform:uniform-paper') include dependency('com.github.Anon8281:UniversalScheduler:0.1.6') } @@ -116,6 +117,7 @@ shadowJar { relocate 'de.exlll.configlib', 'dev.unnm3d.redischat.libraries.configlib' relocate 'xyz.xenondevs.invui', 'dev.unnm3d.redischat.libraries.invui' relocate 'xyz.xenondevs.inventoryaccess', 'dev.unnm3d.redischat.libraries.inventoryaccess' + relocate 'dev.jorel.commandapi', 'dev.unnm3d.redischat.libraries.commandapi' relocate 'net.william278.uniform', 'dev.unnm3d.redischat.libraries.uniform' relocate 'net.kyori.adventure.platform', 'dev.unnm3d.redischat.libraries.kyori.adventure.platform' relocate 'com.github.Anon8281.universalScheduler', 'dev.unnm3d.redischat.libraries.universalScheduler' diff --git a/src/main/java/dev/unnm3d/redischat/RedisChat.java b/src/main/java/dev/unnm3d/redischat/RedisChat.java index 203adf9..a847d68 100644 --- a/src/main/java/dev/unnm3d/redischat/RedisChat.java +++ b/src/main/java/dev/unnm3d/redischat/RedisChat.java @@ -6,6 +6,8 @@ import de.exlll.configlib.ConfigurationException; import de.exlll.configlib.YamlConfigurationProperties; import de.exlll.configlib.YamlConfigurations; +import dev.jorel.commandapi.CommandAPI; +import dev.jorel.commandapi.CommandAPISpigotConfig; import dev.jorel.commandapi.CommandAPICommand; import dev.unnm3d.redischat.api.DataManager; import dev.unnm3d.redischat.channels.ChannelCommand; @@ -100,9 +102,18 @@ public final class RedisChat extends JavaPlugin { public Messages messages; + @Override + public void onLoad() { + CommandAPI.onLoad(new CommandAPISpigotConfig(this) + .silentLogs(false) + .skipReloadDatapacks(true) + .verboseOutput(true)); + } + @Override public void onEnable() { instance = this; + CommandAPI.onEnable(); registeredCommands = new ArrayList<>(); scheduler = UniversalScheduler.getScheduler(this); @@ -347,8 +358,8 @@ public void onDisable() { this.dataManager.clearInvShareCache(); PaperUniform.getInstance(this).shutdown(); - // Commands are unregistered automatically by CommandAPI plugin - registeredCommands.clear(); + registeredCommands.forEach(command -> CommandAPI.unregister(command.getName(), true)); + CommandAPI.onDisable(); if (this.playerListManager != null) this.playerListManager.stop(); @@ -379,6 +390,11 @@ private void loadCommandAPICommand(CommandAPICommand commandAPICommand) { return; } + CommandAPI.unregister(commandAPICommand.getName(), true); + for (String alias : commandAPICommand.getAliases()) { + if (alias.equals(commandAPICommand.getName())) continue; + CommandAPI.unregister(alias, true); + } commandAPICommand.register(); registeredCommands.add(commandAPICommand); getLogger().info("Command " + commandAPICommand.getName() + " registered on CommandAPI!"); diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index f02661a..1307584 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -16,7 +16,6 @@ libraries: - net.kyori:adventure-platform-bukkit:4.4.0 depend: - PlaceholderAPI - - CommandAPI softdepend: - Oraxen - Spicord From 6b5e6dddfc0d1c9f5b153e68378930d684eeb98e Mon Sep 17 00:00:00 2001 From: Bloody_Mind <70509359+Leahcimkrob@users.noreply.github.com> Date: Thu, 20 Nov 2025 21:47:36 +0100 Subject: [PATCH 13/21] Revert "bump version again" This reverts commit 62c553d33e6d5d95090d5e1ac5e5d4dfc7c93a80. --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 7c38c35..ee9447a 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,7 @@ plugins { group = 'dev.unnm3d' -version = '5.5.15' +version = '5.5.14' repositories { From 465483f4ebdec06e29cf256ec1df08db51e81733 Mon Sep 17 00:00:00 2001 From: Bloody_Mind <70509359+Leahcimkrob@users.noreply.github.com> Date: Thu, 20 Nov 2025 21:47:55 +0100 Subject: [PATCH 14/21] Reapply "use external CommandAPI dependency" This reverts commit d4f5f315e1492de7c6c36feabb12db78a207fc61. --- build.gradle | 4 +--- .../java/dev/unnm3d/redischat/RedisChat.java | 20 ++----------------- src/main/resources/plugin.yml | 1 + 3 files changed, 4 insertions(+), 21 deletions(-) diff --git a/build.gradle b/build.gradle index ee9447a..b8c0187 100644 --- a/build.gradle +++ b/build.gradle @@ -39,7 +39,7 @@ dependencies { implementation 'xyz.xenondevs.invui:inventory-access-r23:1.47' implementation 'xyz.xenondevs.invui:inventory-access-r24:1.47' implementation 'xyz.xenondevs.invui:inventory-access-r25:1.47' - implementation 'dev.jorel:commandapi-spigot-shade:11.0.0' + compileOnly 'dev.jorel:commandapi-paper-core:11.0.0' implementation "net.william278.uniform:uniform-paper:1.3.8" implementation 'com.github.Anon8281:UniversalScheduler:0.1.6' @@ -107,7 +107,6 @@ shadowJar { include dependency('xyz.xenondevs.invui:inventory-access-r23') include dependency('xyz.xenondevs.invui:inventory-access-r24') include dependency('xyz.xenondevs.invui:inventory-access-r25') - include dependency('dev.jorel:commandapi-spigot-shade') include dependency('net.william278.uniform:uniform-paper') include dependency('com.github.Anon8281:UniversalScheduler:0.1.6') } @@ -117,7 +116,6 @@ shadowJar { relocate 'de.exlll.configlib', 'dev.unnm3d.redischat.libraries.configlib' relocate 'xyz.xenondevs.invui', 'dev.unnm3d.redischat.libraries.invui' relocate 'xyz.xenondevs.inventoryaccess', 'dev.unnm3d.redischat.libraries.inventoryaccess' - relocate 'dev.jorel.commandapi', 'dev.unnm3d.redischat.libraries.commandapi' relocate 'net.william278.uniform', 'dev.unnm3d.redischat.libraries.uniform' relocate 'net.kyori.adventure.platform', 'dev.unnm3d.redischat.libraries.kyori.adventure.platform' relocate 'com.github.Anon8281.universalScheduler', 'dev.unnm3d.redischat.libraries.universalScheduler' diff --git a/src/main/java/dev/unnm3d/redischat/RedisChat.java b/src/main/java/dev/unnm3d/redischat/RedisChat.java index a847d68..203adf9 100644 --- a/src/main/java/dev/unnm3d/redischat/RedisChat.java +++ b/src/main/java/dev/unnm3d/redischat/RedisChat.java @@ -6,8 +6,6 @@ import de.exlll.configlib.ConfigurationException; import de.exlll.configlib.YamlConfigurationProperties; import de.exlll.configlib.YamlConfigurations; -import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.CommandAPISpigotConfig; import dev.jorel.commandapi.CommandAPICommand; import dev.unnm3d.redischat.api.DataManager; import dev.unnm3d.redischat.channels.ChannelCommand; @@ -102,18 +100,9 @@ public final class RedisChat extends JavaPlugin { public Messages messages; - @Override - public void onLoad() { - CommandAPI.onLoad(new CommandAPISpigotConfig(this) - .silentLogs(false) - .skipReloadDatapacks(true) - .verboseOutput(true)); - } - @Override public void onEnable() { instance = this; - CommandAPI.onEnable(); registeredCommands = new ArrayList<>(); scheduler = UniversalScheduler.getScheduler(this); @@ -358,8 +347,8 @@ public void onDisable() { this.dataManager.clearInvShareCache(); PaperUniform.getInstance(this).shutdown(); - registeredCommands.forEach(command -> CommandAPI.unregister(command.getName(), true)); - CommandAPI.onDisable(); + // Commands are unregistered automatically by CommandAPI plugin + registeredCommands.clear(); if (this.playerListManager != null) this.playerListManager.stop(); @@ -390,11 +379,6 @@ private void loadCommandAPICommand(CommandAPICommand commandAPICommand) { return; } - CommandAPI.unregister(commandAPICommand.getName(), true); - for (String alias : commandAPICommand.getAliases()) { - if (alias.equals(commandAPICommand.getName())) continue; - CommandAPI.unregister(alias, true); - } commandAPICommand.register(); registeredCommands.add(commandAPICommand); getLogger().info("Command " + commandAPICommand.getName() + " registered on CommandAPI!"); diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 1307584..f02661a 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -16,6 +16,7 @@ libraries: - net.kyori:adventure-platform-bukkit:4.4.0 depend: - PlaceholderAPI + - CommandAPI softdepend: - Oraxen - Spicord From 97b95d488896ae209e5a9e5df18ef0b468768475 Mon Sep 17 00:00:00 2001 From: Bloody_Mind <70509359+Leahcimkrob@users.noreply.github.com> Date: Thu, 20 Nov 2025 21:48:00 +0100 Subject: [PATCH 15/21] Reapply "-relocate uniform_lib" This reverts commit b89c15c7857aac0d2e1a2532914aa41d80d89d85. --- build.gradle | 1 - 1 file changed, 1 deletion(-) diff --git a/build.gradle b/build.gradle index b8c0187..a0e60db 100644 --- a/build.gradle +++ b/build.gradle @@ -116,7 +116,6 @@ shadowJar { relocate 'de.exlll.configlib', 'dev.unnm3d.redischat.libraries.configlib' relocate 'xyz.xenondevs.invui', 'dev.unnm3d.redischat.libraries.invui' relocate 'xyz.xenondevs.inventoryaccess', 'dev.unnm3d.redischat.libraries.inventoryaccess' - relocate 'net.william278.uniform', 'dev.unnm3d.redischat.libraries.uniform' relocate 'net.kyori.adventure.platform', 'dev.unnm3d.redischat.libraries.kyori.adventure.platform' relocate 'com.github.Anon8281.universalScheduler', 'dev.unnm3d.redischat.libraries.universalScheduler' } From 360fe97a646398dc4ac476ec82b1d39db1ed582b Mon Sep 17 00:00:00 2001 From: Bloody_Mind <70509359+Leahcimkrob@users.noreply.github.com> Date: Sat, 27 Dec 2025 16:13:45 +0100 Subject: [PATCH 16/21] Udapte to MC 1.21.11 --- .gitignore | 3 +- build.gradle | 62 +++++++-------- src/main/resources/plugin.yml | 12 +-- .../java/dev/unnm3d/redischat/JsonTests.java | 77 ------------------- 4 files changed, 40 insertions(+), 114 deletions(-) delete mode 100644 src/test/java/dev/unnm3d/redischat/JsonTests.java diff --git a/.gitignore b/.gitignore index 48f3950..6077be6 100644 --- a/.gitignore +++ b/.gitignore @@ -118,4 +118,5 @@ src/main/java/dev/unnm3d/redischat/utils/Metrics.java build/ # Gradle -.gradle \ No newline at end of file +.gradle +gradlew.bat diff --git a/build.gradle b/build.gradle index a0e60db..30be200 100644 --- a/build.gradle +++ b/build.gradle @@ -1,13 +1,11 @@ plugins { - id 'io.github.goooler.shadow' version "8.1.7" + id 'io.github.goooler.shadow' version "8.1.8" id 'maven-publish' id 'java' } - group = 'dev.unnm3d' -version = '5.5.14' - +version = '5.5.16-dev' repositories { maven { url 'https://repo.papermc.io/repository/maven-public/' } @@ -19,55 +17,58 @@ repositories { maven { url 'https://repo.maven.apache.org/maven2/' } maven { url "https://repo.william278.net/snapshots" } maven { url 'https://repo.essentialsx.net/releases/' } + maven { url 'https://s01.oss.sonatype.org/content/repositories/snapshots/' } + mavenCentral() } dependencies { - implementation 'net.kyori:adventure-platform-bukkit:4.4.1' + implementation 'net.kyori:adventure-platform-bukkit:4.3.2' compileOnly 'com.mojang:brigadier:1.1.8' implementation 'com.github.Exlll.ConfigLib:configlib-paper:v4.5.0' - implementation 'xyz.xenondevs.invui:invui-core:1.47' - implementation 'xyz.xenondevs.invui:inventory-access-r15:1.47' - implementation 'xyz.xenondevs.invui:inventory-access-r16:1.47' - implementation 'xyz.xenondevs.invui:inventory-access-r17:1.47' - implementation 'xyz.xenondevs.invui:inventory-access-r18:1.47' - implementation 'xyz.xenondevs.invui:inventory-access-r19:1.47' - implementation 'xyz.xenondevs.invui:inventory-access-r20:1.47' - implementation 'xyz.xenondevs.invui:inventory-access-r21:1.47' - implementation 'xyz.xenondevs.invui:inventory-access-r22:1.47' - implementation 'xyz.xenondevs.invui:inventory-access-r23:1.47' - implementation 'xyz.xenondevs.invui:inventory-access-r24:1.47' - implementation 'xyz.xenondevs.invui:inventory-access-r25:1.47' - compileOnly 'dev.jorel:commandapi-paper-core:11.0.0' - implementation "net.william278.uniform:uniform-paper:1.3.8" + implementation 'xyz.xenondevs.invui:invui-core:1.49' + implementation 'xyz.xenondevs.invui:inventory-access-r15:1.49' + implementation 'xyz.xenondevs.invui:inventory-access-r16:1.49' + implementation 'xyz.xenondevs.invui:inventory-access-r17:1.49' + implementation 'xyz.xenondevs.invui:inventory-access-r18:1.49' + implementation 'xyz.xenondevs.invui:inventory-access-r19:1.49' + implementation 'xyz.xenondevs.invui:inventory-access-r20:1.49' + implementation 'xyz.xenondevs.invui:inventory-access-r21:1.49' + implementation 'xyz.xenondevs.invui:inventory-access-r22:1.49' + implementation 'xyz.xenondevs.invui:inventory-access-r23:1.49' + implementation 'xyz.xenondevs.invui:inventory-access-r24:1.49' + implementation 'xyz.xenondevs.invui:inventory-access-r25:1.49' + implementation 'xyz.xenondevs.invui:inventory-access-r26:1.49' + compileOnly 'dev.jorel:commandapi-paper-core:11.1.0' + implementation "net.william278.uniform:uniform-paper:1.3.9" implementation 'com.github.Anon8281:UniversalScheduler:0.1.6' - compileOnly 'io.papermc.paper:paper-api:1.21.4-R0.1-SNAPSHOT' - compileOnly 'me.clip:placeholderapi:2.11.6' - compileOnly 'io.lettuce:lettuce-core:6.5.3.RELEASE' - compileOnly 'org.jetbrains:annotations:24.1.0' - compileOnly 'com.zaxxer:HikariCP:5.1.0' + compileOnly 'io.papermc.paper:paper-api:1.21.11-R0.1-SNAPSHOT' + compileOnly 'me.clip:placeholderapi:2.11.7' + compileOnly 'io.lettuce:lettuce-core:6.5.5.RELEASE' + compileOnly 'org.jetbrains:annotations:26.0.1' + compileOnly 'com.zaxxer:HikariCP:6.2.1' compileOnly 'net.luckperms:api:5.4' compileOnly 'com.github.MilkBowl:VaultAPI:1.7' exclude(group: 'org.bukkit', module: 'bukkit') compileOnly 'com.github.oraxen:oraxen:1.162.0' compileOnly 'com.github.LeonMangler:PremiumVanishAPI:2.8.8' - compileOnly 'org.projectlombok:lombok:1.18.34' + compileOnly 'org.projectlombok:lombok:1.18.36' compileOnly 'org.spicord:spicord-common:5.7.2' - compileOnly 'net.dv8tion:JDA:5.0.0-beta.16' + compileOnly 'net.dv8tion:JDA:5.2.1' compileOnly 'org.apache.commons:commons-collections4:4.4' compileOnly('net.essentialsx:EssentialsX:2.21.0') { exclude group: 'org.spigotmc', module: 'spigot-api' } - testImplementation 'org.junit.jupiter:junit-jupiter-api:5.10.2' - testImplementation 'org.junit.jupiter:junit-jupiter-params:5.10.2' - testImplementation 'org.junit.jupiter:junit-jupiter-engine:5.10.2' + testImplementation 'org.junit.jupiter:junit-jupiter-api:5.11.4' + testImplementation 'org.junit.jupiter:junit-jupiter-params:5.11.4' + testImplementation 'org.junit.jupiter:junit-jupiter-engine:5.11.4' testImplementation 'io.papermc.paper:paper-api:1.17.1-R0.1-SNAPSHOT' - annotationProcessor 'org.projectlombok:lombok:1.18.34' + annotationProcessor 'org.projectlombok:lombok:1.18.36' } test { @@ -107,6 +108,7 @@ shadowJar { include dependency('xyz.xenondevs.invui:inventory-access-r23') include dependency('xyz.xenondevs.invui:inventory-access-r24') include dependency('xyz.xenondevs.invui:inventory-access-r25') + include dependency('xyz.xenondevs.invui:inventory-access-r26') include dependency('net.william278.uniform:uniform-paper') include dependency('com.github.Anon8281:UniversalScheduler:0.1.6') } diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index f02661a..419aee2 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -2,18 +2,18 @@ name: RedisChat version: '${version}' main: dev.unnm3d.redischat.RedisChat author: Unnm3d -api-version: 1.19 +api-version: 1.21 folia-supported: true libraries: - - io.lettuce:lettuce-core:6.5.3.RELEASE + - io.lettuce:lettuce-core:6.5.5.RELEASE - org.yaml:snakeyaml:1.27 - org.snakeyaml:snakeyaml-engine:2.3 - - org.jetbrains:annotations:24.1.0 - - com.zaxxer:HikariCP:5.1.0 + - org.jetbrains:annotations:26.0.1 + - com.zaxxer:HikariCP:6.2.1 - org.xerial:sqlite-jdbc:3.45.3.0 - - org.projectlombok:lombok:1.18.34 + - org.projectlombok:lombok:1.18.36 - org.apache.commons:commons-collections4:4.4 - - net.kyori:adventure-platform-bukkit:4.4.0 + - net.kyori:adventure-platform-bukkit:4.3.2 depend: - PlaceholderAPI - CommandAPI diff --git a/src/test/java/dev/unnm3d/redischat/JsonTests.java b/src/test/java/dev/unnm3d/redischat/JsonTests.java deleted file mode 100644 index 4b639a5..0000000 --- a/src/test/java/dev/unnm3d/redischat/JsonTests.java +++ /dev/null @@ -1,77 +0,0 @@ -package dev.unnm3d.redischat; - - -import com.google.gson.Gson; -import dev.unnm3d.redischat.api.objects.KnownChatEntities; -import dev.unnm3d.redischat.api.objects.AudienceType; -import dev.unnm3d.redischat.api.objects.ChannelAudience; -import dev.unnm3d.redischat.api.objects.Channel; -import dev.unnm3d.redischat.api.objects.ChatMessage; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotEquals; - -public class JsonTests { - private static final Gson gson = new Gson(); - - @Test - @DisplayName("Channel serialization") - public void testChannelSerialization() { - Channel nc = Channel.builder("name") - .format("fabrizio {message}") - .rateLimit(10) - .rateLimitPeriod(1000) - .discordWebhook("webhook") - .proximityDistance(50) - .filtered(false) - .permission("perm1") - .notificationSound("sound") - .build(); - Channel nc2 = gson.fromJson(gson.toJson(nc), Channel.class); - assertEquals(nc, nc2); - System.out.println(nc.getProximityDistance()); - System.out.println(nc2.getProximityDistance()); - } - - @Test - @DisplayName("Channel serialization") - public void testChannelAudienceSerialization() { - ChannelAudience nc = ChannelAudience.builder("name") - .proximityDistance(-1) - .permission("perm1") - .type(AudienceType.PLAYER) - .permission("perm2") - .build(); - ChannelAudience nc2 = gson.fromJson(gson.toJson(nc), ChannelAudience.class); - assertEquals(nc, nc2); - System.out.println(nc); - System.out.println(nc2); - } - - @Test - @DisplayName("ChatMessage serialization") - public void testChatMessageSerialization() { - ChannelAudience receiver = ChannelAudience.builder("name") - .proximityDistance(-1) - .permission("perm1") - .type(AudienceType.PLAYER) - .permission("perm2") - .build(); - ChatMessage ncm = new ChatMessage( - new ChannelAudience(AudienceType.PLAYER, KnownChatEntities.SERVER_SENDER.toString()), - "{message}", - "Hello World", - receiver - ); - ChatMessage ncm2 = gson.fromJson(gson.toJson(ncm), ChatMessage.class); - assertEquals(ncm, ncm2); - - //Change a superclass field - ncm2.getReceiver().setProximityDistance(10); - assertNotEquals(ncm, ncm2); - } - - -} From 10ba751ecec9e892c561cf7ce3e065d8a93bb835 Mon Sep 17 00:00:00 2001 From: quiquelhappy Date: Sun, 25 Jan 2026 11:36:34 +0100 Subject: [PATCH 17/21] re-order imports --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 30be200..ba02a6f 100644 --- a/build.gradle +++ b/build.gradle @@ -40,12 +40,12 @@ dependencies { implementation 'xyz.xenondevs.invui:inventory-access-r24:1.49' implementation 'xyz.xenondevs.invui:inventory-access-r25:1.49' implementation 'xyz.xenondevs.invui:inventory-access-r26:1.49' - compileOnly 'dev.jorel:commandapi-paper-core:11.1.0' implementation "net.william278.uniform:uniform-paper:1.3.9" implementation 'com.github.Anon8281:UniversalScheduler:0.1.6' + compileOnly("dev.jorel:commandapi-paper-core:11.1.0") compileOnly 'io.papermc.paper:paper-api:1.21.11-R0.1-SNAPSHOT' compileOnly 'me.clip:placeholderapi:2.11.7' compileOnly 'io.lettuce:lettuce-core:6.5.5.RELEASE' From 1f0976ec1401f5a03dbe44bb78202f04d438bbec Mon Sep 17 00:00:00 2001 From: quiquelhappy Date: Sun, 25 Jan 2026 11:40:08 +0100 Subject: [PATCH 18/21] add commandapi-spigot-core and test toolkits dependencies --- build.gradle | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/build.gradle b/build.gradle index ba02a6f..b004de7 100644 --- a/build.gradle +++ b/build.gradle @@ -46,6 +46,7 @@ dependencies { compileOnly("dev.jorel:commandapi-paper-core:11.1.0") + compileOnly("dev.jorel:commandapi-spigot-core:11.1.0") compileOnly 'io.papermc.paper:paper-api:1.21.11-R0.1-SNAPSHOT' compileOnly 'me.clip:placeholderapi:2.11.7' compileOnly 'io.lettuce:lettuce-core:6.5.5.RELEASE' @@ -67,6 +68,9 @@ dependencies { testImplementation 'org.junit.jupiter:junit-jupiter-params:5.11.4' testImplementation 'org.junit.jupiter:junit-jupiter-engine:5.11.4' testImplementation 'io.papermc.paper:paper-api:1.17.1-R0.1-SNAPSHOT' + testImplementation("dev.jorel:commandapi-spigot-test-toolkit:11.1.0") + testImplementation("dev.jorel:commandapi-paper-test-toolkit:11.1.0") + testImplementation("org.mockbukkit.mockbukkit:mockbukkit-v1.21:4.72.8") annotationProcessor 'org.projectlombok:lombok:1.18.36' } From 22f508521a7fab77c0963832513fa929248d5045 Mon Sep 17 00:00:00 2001 From: quiquelhappy Date: Sun, 25 Jan 2026 11:54:44 +0100 Subject: [PATCH 19/21] add SayanVanish to plugin dependencies --- src/main/resources/plugin.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 419aee2..042bc80 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -22,6 +22,7 @@ softdepend: - Spicord - PremiumVanish - SuperVanish + - SayanVanish loadbefore: - CMI commands: From 2672280d17146334e477f8c3a33cae6bc629aa1a Mon Sep 17 00:00:00 2001 From: quiquelhappy Date: Sun, 25 Jan 2026 12:08:29 +0100 Subject: [PATCH 20/21] update dependencies and add JSON serialization tests --- build.gradle | 22 +++--- src/main/resources/plugin.yml | 2 +- .../java/dev/unnm3d/redischat/JsonTests.java | 77 +++++++++++++++++++ 3 files changed, 89 insertions(+), 12 deletions(-) create mode 100644 src/test/java/dev/unnm3d/redischat/JsonTests.java diff --git a/build.gradle b/build.gradle index 710c3e8..13a5cf1 100644 --- a/build.gradle +++ b/build.gradle @@ -1,12 +1,14 @@ plugins { - id 'io.github.goooler.shadow' version "8.1.8" + id 'io.github.goooler.shadow' version "8.1.7" id 'maven-publish' id 'java' } + group = 'dev.unnm3d' version = '5.5.16' + repositories { maven { url 'https://repo.papermc.io/repository/maven-public/' } maven { url 'https://repo.spicord.org/' } @@ -17,13 +19,11 @@ repositories { maven { url 'https://repo.maven.apache.org/maven2/' } maven { url "https://repo.william278.net/snapshots" } maven { url 'https://repo.essentialsx.net/releases/' } - maven { url 'https://s01.oss.sonatype.org/content/repositories/snapshots/' } maven { url "https://repo.sayandev.org/snapshots" } - mavenCentral() } dependencies { - implementation 'net.kyori:adventure-platform-bukkit:4.3.2' + implementation 'net.kyori:adventure-platform-bukkit:4.4.1' compileOnly 'com.mojang:brigadier:1.1.8' implementation 'com.github.Exlll.ConfigLib:configlib-paper:v4.5.0' @@ -58,23 +58,23 @@ dependencies { compileOnly 'com.github.oraxen:oraxen:1.162.0' compileOnly 'com.github.LeonMangler:PremiumVanishAPI:2.8.8' compileOnly "org.sayandev:sayanvanish-api:1.7.3-SNAPSHOT" - compileOnly 'org.projectlombok:lombok:1.18.36' + compileOnly 'org.projectlombok:lombok:1.18.34' compileOnly 'org.spicord:spicord-common:5.7.2' - compileOnly 'net.dv8tion:JDA:5.2.1' + compileOnly 'net.dv8tion:JDA:5.0.0-beta.16' compileOnly 'org.apache.commons:commons-collections4:4.4' compileOnly('net.essentialsx:EssentialsX:2.21.0') { exclude group: 'org.spigotmc', module: 'spigot-api' } - testImplementation 'org.junit.jupiter:junit-jupiter-api:5.11.4' - testImplementation 'org.junit.jupiter:junit-jupiter-params:5.11.4' - testImplementation 'org.junit.jupiter:junit-jupiter-engine:5.11.4' + testImplementation 'org.junit.jupiter:junit-jupiter-api:5.10.2' + testImplementation 'org.junit.jupiter:junit-jupiter-params:5.10.2' + testImplementation 'org.junit.jupiter:junit-jupiter-engine:5.10.2' testImplementation 'io.papermc.paper:paper-api:1.17.1-R0.1-SNAPSHOT' testImplementation("dev.jorel:commandapi-spigot-test-toolkit:11.1.0") testImplementation("dev.jorel:commandapi-paper-test-toolkit:11.1.0") testImplementation("org.mockbukkit.mockbukkit:mockbukkit-v1.21:4.72.8") - annotationProcessor 'org.projectlombok:lombok:1.18.36' + annotationProcessor 'org.projectlombok:lombok:1.18.34' } test { @@ -175,4 +175,4 @@ publishing { } jar.dependsOn shadowJar -clean.delete "$rootDir/target" +clean.delete "$rootDir/target" \ No newline at end of file diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 042bc80..54d8471 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -13,7 +13,7 @@ libraries: - org.xerial:sqlite-jdbc:3.45.3.0 - org.projectlombok:lombok:1.18.36 - org.apache.commons:commons-collections4:4.4 - - net.kyori:adventure-platform-bukkit:4.3.2 + - net.kyori:adventure-platform-bukkit:4.4.1 depend: - PlaceholderAPI - CommandAPI diff --git a/src/test/java/dev/unnm3d/redischat/JsonTests.java b/src/test/java/dev/unnm3d/redischat/JsonTests.java new file mode 100644 index 0000000..a3e07a5 --- /dev/null +++ b/src/test/java/dev/unnm3d/redischat/JsonTests.java @@ -0,0 +1,77 @@ +package dev.unnm3d.redischat; + + +import com.google.gson.Gson; +import dev.unnm3d.redischat.api.objects.KnownChatEntities; +import dev.unnm3d.redischat.api.objects.AudienceType; +import dev.unnm3d.redischat.api.objects.ChannelAudience; +import dev.unnm3d.redischat.api.objects.Channel; +import dev.unnm3d.redischat.api.objects.ChatMessage; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotEquals; + +public class JsonTests { + private static final Gson gson = new Gson(); + + @Test + @DisplayName("Channel serialization") + public void testChannelSerialization() { + Channel nc = Channel.builder("name") + .format("fabrizio {message}") + .rateLimit(10) + .rateLimitPeriod(1000) + .discordWebhook("webhook") + .proximityDistance(50) + .filtered(false) + .permission("perm1") + .notificationSound("sound") + .build(); + Channel nc2 = gson.fromJson(gson.toJson(nc), Channel.class); + assertEquals(nc, nc2); + System.out.println(nc.getProximityDistance()); + System.out.println(nc2.getProximityDistance()); + } + + @Test + @DisplayName("Channel serialization") + public void testChannelAudienceSerialization() { + ChannelAudience nc = ChannelAudience.builder("name") + .proximityDistance(-1) + .permission("perm1") + .type(AudienceType.PLAYER) + .permission("perm2") + .build(); + ChannelAudience nc2 = gson.fromJson(gson.toJson(nc), ChannelAudience.class); + assertEquals(nc, nc2); + System.out.println(nc); + System.out.println(nc2); + } + + @Test + @DisplayName("ChatMessage serialization") + public void testChatMessageSerialization() { + ChannelAudience receiver = ChannelAudience.builder("name") + .proximityDistance(-1) + .permission("perm1") + .type(AudienceType.PLAYER) + .permission("perm2") + .build(); + ChatMessage ncm = new ChatMessage( + new ChannelAudience(AudienceType.PLAYER, KnownChatEntities.SERVER_SENDER.toString()), + "{message}", + "Hello World", + receiver + ); + ChatMessage ncm2 = gson.fromJson(gson.toJson(ncm), ChatMessage.class); + assertEquals(ncm, ncm2); + + //Change a superclass field + ncm2.getReceiver().setProximityDistance(10); + assertNotEquals(ncm, ncm2); + } + + +} \ No newline at end of file From 825bbc53c8132c29928ed3f0273d717920df3171 Mon Sep 17 00:00:00 2001 From: quiquelhappy Date: Sun, 25 Jan 2026 12:11:11 +0100 Subject: [PATCH 21/21] downgrade Lombok version from 1.18.36 to 1.18.34 in plugin.yml --- src/main/resources/plugin.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 54d8471..e54bdfb 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -11,7 +11,7 @@ libraries: - org.jetbrains:annotations:26.0.1 - com.zaxxer:HikariCP:6.2.1 - org.xerial:sqlite-jdbc:3.45.3.0 - - org.projectlombok:lombok:1.18.36 + - org.projectlombok:lombok:1.18.34 - org.apache.commons:commons-collections4:4.4 - net.kyori:adventure-platform-bukkit:4.4.1 depend: