From f932d6a8b572d59ce70c3544f4cf73717ad0e413 Mon Sep 17 00:00:00 2001
From: amy <144570677+amyavi@users.noreply.github.com>
Date: Tue, 16 Jun 2026 23:37:17 -0300
Subject: [PATCH 1/5] chore: update paper-api to 26.2
---
.github/workflows/main.yml | 2 +-
pom.xml | 22 +++++-----------------
2 files changed, 6 insertions(+), 18 deletions(-)
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index a921fe99..d8b7e19a 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -15,7 +15,7 @@ jobs:
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
- java-version: 21
+ java-version: 25
- name: Cache maven packages to speed up build
uses: actions/cache@v4
diff --git a/pom.xml b/pom.xml
index 11391344..296ef85b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,8 +5,8 @@
master
- 21
- 21
+ 25
+ 25
true
UTF-8
@@ -15,14 +15,14 @@
io.papermc.paper
paper-api
- 1.21.10-R0.1-SNAPSHOT
+ 26.2.build.15-alpha
provided
com.github.oshi
oshi-core
- 6.6.5
+ 6.9.0
provided
@@ -37,19 +37,7 @@
${project.artifactId}
-
-
- org.apache.maven.plugins
- maven-jar-plugin
- 3.4.2
-
-
-
- mojang
-
-
-
-
+
org.apache.maven.plugins
maven-checkstyle-plugin
From f9f5feb39ed2caf2309c2b177cabe40e87ef6148 Mon Sep 17 00:00:00 2001
From: amy <144570677+amyavi@users.noreply.github.com>
Date: Tue, 16 Jun 2026 23:45:35 -0300
Subject: [PATCH 2/5] chore: switch to jspecify
javax annotation is no longer provided by Paper, so we don't have much choice.
---
.../kaboom/extras/commands/CommandBroadcastMM.java | 9 ++++-----
.../extras/commands/CommandBroadcastRainbow.java | 9 ++++-----
.../extras/commands/CommandBroadcastVanilla.java | 8 ++++----
.../pw/kaboom/extras/commands/CommandClearChat.java | 9 ++++-----
.../pw/kaboom/extras/commands/CommandConsole.java | 9 ++++-----
.../extras/commands/CommandDestroyEntities.java | 9 ++++-----
.../pw/kaboom/extras/commands/CommandEnchantAll.java | 9 ++++-----
.../pw/kaboom/extras/commands/CommandGetJSON.java | 9 ++++-----
.../pw/kaboom/extras/commands/CommandGetJSONMM.java | 9 ++++-----
.../pw/kaboom/extras/commands/CommandJumpscare.java | 9 ++++-----
.../pw/kaboom/extras/commands/CommandKaboom.java | 8 ++++----
.../java/pw/kaboom/extras/commands/CommandPing.java | 9 ++++-----
.../pw/kaboom/extras/commands/CommandPrefix.java | 9 ++++-----
.../pw/kaboom/extras/commands/CommandPumpkin.java | 9 ++++-----
.../pw/kaboom/extras/commands/CommandServerInfo.java | 8 ++++----
.../java/pw/kaboom/extras/commands/CommandSkin.java | 9 ++++-----
.../java/pw/kaboom/extras/commands/CommandSpawn.java | 9 ++++-----
.../pw/kaboom/extras/commands/CommandSpidey.java | 9 ++++-----
.../pw/kaboom/extras/commands/CommandTellraw.java | 9 ++++-----
.../pw/kaboom/extras/commands/CommandUsername.java | 8 ++++----
.../pw/kaboom/extras/modules/player/PlayerChat.java | 12 ++++++------
src/main/java/pw/kaboom/extras/util/Utility.java | 6 +++---
22 files changed, 89 insertions(+), 105 deletions(-)
diff --git a/src/main/java/pw/kaboom/extras/commands/CommandBroadcastMM.java b/src/main/java/pw/kaboom/extras/commands/CommandBroadcastMM.java
index dd774618..75dbafeb 100644
--- a/src/main/java/pw/kaboom/extras/commands/CommandBroadcastMM.java
+++ b/src/main/java/pw/kaboom/extras/commands/CommandBroadcastMM.java
@@ -8,15 +8,14 @@
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-
-import javax.annotation.Nonnull;
+import org.jspecify.annotations.NonNull;
public final class CommandBroadcastMM implements CommandExecutor {
private static final MiniMessage MINI_MESSAGE = MiniMessage.miniMessage();
- public boolean onCommand(final @Nonnull CommandSender sender,
- final @Nonnull Command command,
- final @Nonnull String label,
+ public boolean onCommand(final @NonNull CommandSender sender,
+ final @NonNull Command command,
+ final @NonNull String label,
final String[] args) {
if (args.length == 0) {
sender.sendMessage(Component
diff --git a/src/main/java/pw/kaboom/extras/commands/CommandBroadcastRainbow.java b/src/main/java/pw/kaboom/extras/commands/CommandBroadcastRainbow.java
index c1e77a89..97f55dc2 100644
--- a/src/main/java/pw/kaboom/extras/commands/CommandBroadcastRainbow.java
+++ b/src/main/java/pw/kaboom/extras/commands/CommandBroadcastRainbow.java
@@ -8,15 +8,14 @@
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-
-import javax.annotation.Nonnull;
+import org.jspecify.annotations.NonNull;
public final class CommandBroadcastRainbow implements CommandExecutor {
private static final MiniMessage MINI_MESSAGE = MiniMessage.miniMessage();
- public boolean onCommand(final @Nonnull CommandSender sender,
- final @Nonnull Command command,
- final @Nonnull String label,
+ public boolean onCommand(final @NonNull CommandSender sender,
+ final @NonNull Command command,
+ final @NonNull String label,
final String[] args) {
if (args.length == 0) {
sender.sendMessage(Component
diff --git a/src/main/java/pw/kaboom/extras/commands/CommandBroadcastVanilla.java b/src/main/java/pw/kaboom/extras/commands/CommandBroadcastVanilla.java
index c7782f33..455d76f8 100644
--- a/src/main/java/pw/kaboom/extras/commands/CommandBroadcastVanilla.java
+++ b/src/main/java/pw/kaboom/extras/commands/CommandBroadcastVanilla.java
@@ -10,8 +10,8 @@
import org.bukkit.command.CommandSender;
import org.bukkit.command.ConsoleCommandSender;
import org.bukkit.entity.Player;
+import org.jspecify.annotations.NonNull;
-import javax.annotation.Nonnull;
import java.util.Collection;
public final class CommandBroadcastVanilla implements CommandExecutor {
@@ -19,9 +19,9 @@ public final class CommandBroadcastVanilla implements CommandExecutor {
LegacyComponentSerializer
.legacyAmpersand();
- public boolean onCommand(final @Nonnull CommandSender sender,
- final @Nonnull Command command,
- final @Nonnull String label,
+ public boolean onCommand(final @NonNull CommandSender sender,
+ final @NonNull Command command,
+ final @NonNull String label,
final String[] args) {
if (args.length == 0) {
sender.sendMessage(Component
diff --git a/src/main/java/pw/kaboom/extras/commands/CommandClearChat.java b/src/main/java/pw/kaboom/extras/commands/CommandClearChat.java
index 6eeebd98..3c87e609 100644
--- a/src/main/java/pw/kaboom/extras/commands/CommandClearChat.java
+++ b/src/main/java/pw/kaboom/extras/commands/CommandClearChat.java
@@ -7,13 +7,12 @@
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-
-import javax.annotation.Nonnull;
+import org.jspecify.annotations.NonNull;
public final class CommandClearChat implements CommandExecutor {
- public boolean onCommand(final @Nonnull CommandSender sender,
- final @Nonnull Command command,
- final @Nonnull String label,
+ public boolean onCommand(final @NonNull CommandSender sender,
+ final @NonNull Command command,
+ final @NonNull String label,
final String[] args) {
final int maxMessages = 100;
Component clearChatComponent = Component.empty();
diff --git a/src/main/java/pw/kaboom/extras/commands/CommandConsole.java b/src/main/java/pw/kaboom/extras/commands/CommandConsole.java
index aaeaead1..adf96416 100644
--- a/src/main/java/pw/kaboom/extras/commands/CommandConsole.java
+++ b/src/main/java/pw/kaboom/extras/commands/CommandConsole.java
@@ -6,14 +6,13 @@
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
+import org.jspecify.annotations.NonNull;
import pw.kaboom.extras.util.Utility;
-import javax.annotation.Nonnull;
-
public final class CommandConsole implements CommandExecutor {
- public boolean onCommand(final @Nonnull CommandSender sender,
- final @Nonnull Command command,
- final @Nonnull String label,
+ public boolean onCommand(final @NonNull CommandSender sender,
+ final @NonNull Command command,
+ final @NonNull String label,
final String[] args) {
if (args.length == 0) {
sender.sendMessage(Component
diff --git a/src/main/java/pw/kaboom/extras/commands/CommandDestroyEntities.java b/src/main/java/pw/kaboom/extras/commands/CommandDestroyEntities.java
index f9b1618f..115de81b 100644
--- a/src/main/java/pw/kaboom/extras/commands/CommandDestroyEntities.java
+++ b/src/main/java/pw/kaboom/extras/commands/CommandDestroyEntities.java
@@ -8,14 +8,13 @@
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Entity;
import org.bukkit.entity.EntityType;
-
-import javax.annotation.Nonnull;
+import org.jspecify.annotations.NonNull;
public final class CommandDestroyEntities implements CommandExecutor {
@Override
- public boolean onCommand(final @Nonnull CommandSender sender,
- final @Nonnull Command command,
- final @Nonnull String label,
+ public boolean onCommand(final @NonNull CommandSender sender,
+ final @NonNull Command command,
+ final @NonNull String label,
final String[] args) {
int entityCount = 0;
int worldCount = 0;
diff --git a/src/main/java/pw/kaboom/extras/commands/CommandEnchantAll.java b/src/main/java/pw/kaboom/extras/commands/CommandEnchantAll.java
index bd479164..381ac845 100644
--- a/src/main/java/pw/kaboom/extras/commands/CommandEnchantAll.java
+++ b/src/main/java/pw/kaboom/extras/commands/CommandEnchantAll.java
@@ -12,13 +12,12 @@
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull;
-
-import javax.annotation.Nonnull;
+import org.jspecify.annotations.NonNull;
public final class CommandEnchantAll implements CommandExecutor {
- public boolean onCommand(final @Nonnull CommandSender sender,
- final @Nonnull Command command,
- final @Nonnull String label,
+ public boolean onCommand(final @NonNull CommandSender sender,
+ final @NonNull Command command,
+ final @NonNull String label,
final String[] args) {
if (!(sender instanceof final Player player)) {
sender.sendMessage(Component
diff --git a/src/main/java/pw/kaboom/extras/commands/CommandGetJSON.java b/src/main/java/pw/kaboom/extras/commands/CommandGetJSON.java
index e92c5a9b..b9b68195 100644
--- a/src/main/java/pw/kaboom/extras/commands/CommandGetJSON.java
+++ b/src/main/java/pw/kaboom/extras/commands/CommandGetJSON.java
@@ -8,13 +8,12 @@
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
-
-import javax.annotation.Nonnull;
+import org.jspecify.annotations.NonNull;
public final class CommandGetJSON implements CommandExecutor {
- public boolean onCommand(final @Nonnull CommandSender sender,
- final @Nonnull Command command,
- final @Nonnull String label,
+ public boolean onCommand(final @NonNull CommandSender sender,
+ final @NonNull Command command,
+ final @NonNull String label,
final String[] args) {
if (args.length == 0) {
sender.sendMessage(Component
diff --git a/src/main/java/pw/kaboom/extras/commands/CommandGetJSONMM.java b/src/main/java/pw/kaboom/extras/commands/CommandGetJSONMM.java
index 1f53abe0..394d5ae7 100644
--- a/src/main/java/pw/kaboom/extras/commands/CommandGetJSONMM.java
+++ b/src/main/java/pw/kaboom/extras/commands/CommandGetJSONMM.java
@@ -8,13 +8,12 @@
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
-
-import javax.annotation.Nonnull;
+import org.jspecify.annotations.NonNull;
public final class CommandGetJSONMM implements CommandExecutor {
- public boolean onCommand(final @Nonnull CommandSender sender,
- final @Nonnull Command command,
- final @Nonnull String label,
+ public boolean onCommand(final @NonNull CommandSender sender,
+ final @NonNull Command command,
+ final @NonNull String label,
final String[] args) {
if (args.length == 0) {
sender.sendMessage(Component
diff --git a/src/main/java/pw/kaboom/extras/commands/CommandJumpscare.java b/src/main/java/pw/kaboom/extras/commands/CommandJumpscare.java
index ff1f6254..8567eb17 100644
--- a/src/main/java/pw/kaboom/extras/commands/CommandJumpscare.java
+++ b/src/main/java/pw/kaboom/extras/commands/CommandJumpscare.java
@@ -9,8 +9,7 @@
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-
-import javax.annotation.Nonnull;
+import org.jspecify.annotations.NonNull;
public final class CommandJumpscare implements CommandExecutor {
private void createJumpscare(final Player player) {
@@ -23,9 +22,9 @@ private void createJumpscare(final Player player) {
}
}
- public boolean onCommand(final @Nonnull CommandSender sender,
- final @Nonnull Command command,
- final @Nonnull String label,
+ public boolean onCommand(final @NonNull CommandSender sender,
+ final @NonNull Command command,
+ final @NonNull String label,
final String[] args) {
if (args.length == 0) {
sender.sendMessage(Component
diff --git a/src/main/java/pw/kaboom/extras/commands/CommandKaboom.java b/src/main/java/pw/kaboom/extras/commands/CommandKaboom.java
index 2a8a22cf..5a7bfd62 100644
--- a/src/main/java/pw/kaboom/extras/commands/CommandKaboom.java
+++ b/src/main/java/pw/kaboom/extras/commands/CommandKaboom.java
@@ -9,15 +9,15 @@
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
+import org.jspecify.annotations.NonNull;
-import javax.annotation.Nonnull;
import java.util.concurrent.ThreadLocalRandom;
public final class CommandKaboom implements CommandExecutor {
- public boolean onCommand(final @Nonnull CommandSender sender,
- final @Nonnull Command command,
- final @Nonnull String label,
+ public boolean onCommand(final @NonNull CommandSender sender,
+ final @NonNull Command command,
+ final @NonNull String label,
final String[] args) {
if (!(sender instanceof final Player player)) {
sender.sendMessage(Component
diff --git a/src/main/java/pw/kaboom/extras/commands/CommandPing.java b/src/main/java/pw/kaboom/extras/commands/CommandPing.java
index bd4ba14f..e8b146c9 100644
--- a/src/main/java/pw/kaboom/extras/commands/CommandPing.java
+++ b/src/main/java/pw/kaboom/extras/commands/CommandPing.java
@@ -7,14 +7,13 @@
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-
-import javax.annotation.Nonnull;
+import org.jspecify.annotations.NonNull;
public final class CommandPing implements CommandExecutor {
- public boolean onCommand(final @Nonnull CommandSender sender,
- final @Nonnull Command command,
- final @Nonnull String label,
+ public boolean onCommand(final @NonNull CommandSender sender,
+ final @NonNull Command command,
+ final @NonNull String label,
final String[] args) {
Player target;
diff --git a/src/main/java/pw/kaboom/extras/commands/CommandPrefix.java b/src/main/java/pw/kaboom/extras/commands/CommandPrefix.java
index e2f92da3..56f767fc 100644
--- a/src/main/java/pw/kaboom/extras/commands/CommandPrefix.java
+++ b/src/main/java/pw/kaboom/extras/commands/CommandPrefix.java
@@ -6,16 +6,15 @@
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
+import org.jspecify.annotations.NonNull;
import pw.kaboom.extras.modules.player.PlayerPrefix;
-import javax.annotation.Nonnull;
-
public final class CommandPrefix implements CommandExecutor {
private static final int MAX_PREFIX_LENGTH = 1024;
- public boolean onCommand(final @Nonnull CommandSender sender,
- final @Nonnull Command cmd,
- final @Nonnull String label,
+ public boolean onCommand(final @NonNull CommandSender sender,
+ final @NonNull Command cmd,
+ final @NonNull String label,
final String[] args) {
if (!(sender instanceof final Player player)) {
sender.sendMessage(Component
diff --git a/src/main/java/pw/kaboom/extras/commands/CommandPumpkin.java b/src/main/java/pw/kaboom/extras/commands/CommandPumpkin.java
index 7b7e5a02..0718c17a 100644
--- a/src/main/java/pw/kaboom/extras/commands/CommandPumpkin.java
+++ b/src/main/java/pw/kaboom/extras/commands/CommandPumpkin.java
@@ -9,17 +9,16 @@
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
-
-import javax.annotation.Nonnull;
+import org.jspecify.annotations.NonNull;
public final class CommandPumpkin implements CommandExecutor {
private void placePumpkin(final Player player) {
player.getInventory().setHelmet(new ItemStack(Material.CARVED_PUMPKIN));
}
- public boolean onCommand(final @Nonnull CommandSender sender,
- final @Nonnull Command command,
- final @Nonnull String label,
+ public boolean onCommand(final @NonNull CommandSender sender,
+ final @NonNull Command command,
+ final @NonNull String label,
final String[] args) {
if (args.length == 0) {
sender.sendMessage(Component
diff --git a/src/main/java/pw/kaboom/extras/commands/CommandServerInfo.java b/src/main/java/pw/kaboom/extras/commands/CommandServerInfo.java
index 6f02f2aa..0d7f5a50 100644
--- a/src/main/java/pw/kaboom/extras/commands/CommandServerInfo.java
+++ b/src/main/java/pw/kaboom/extras/commands/CommandServerInfo.java
@@ -8,11 +8,11 @@
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.jetbrains.annotations.Nullable;
+import org.jspecify.annotations.NonNull;
import oshi.SystemInfo;
import oshi.hardware.GraphicsCard;
import pw.kaboom.extras.util.Utility;
-import javax.annotation.Nonnull;
import java.lang.management.ManagementFactory;
import java.net.InetAddress;
@@ -63,9 +63,9 @@ private void sendInfoMessage(final CommandSender target, final String descriptio
.append(Component.text(": " + value, NamedTextColor.WHITE)));
}
- public boolean onCommand(final @Nonnull CommandSender sender,
- final @Nonnull Command command,
- final @Nonnull String label,
+ public boolean onCommand(final @NonNull CommandSender sender,
+ final @NonNull Command command,
+ final @NonNull String label,
final String[] args) {
try {
sendInfoMessage(sender, "Hostname",
diff --git a/src/main/java/pw/kaboom/extras/commands/CommandSkin.java b/src/main/java/pw/kaboom/extras/commands/CommandSkin.java
index f17e4ac7..71bba4ea 100644
--- a/src/main/java/pw/kaboom/extras/commands/CommandSkin.java
+++ b/src/main/java/pw/kaboom/extras/commands/CommandSkin.java
@@ -6,15 +6,14 @@
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
+import org.jspecify.annotations.NonNull;
import pw.kaboom.extras.modules.player.skin.SkinManager;
-import javax.annotation.Nonnull;
-
public final class CommandSkin implements CommandExecutor {
@Override
- public boolean onCommand(final @Nonnull CommandSender sender,
- final @Nonnull Command command,
- final @Nonnull String label,
+ public boolean onCommand(final @NonNull CommandSender sender,
+ final @NonNull Command command,
+ final @NonNull String label,
final String[] args) {
if (!(sender instanceof final Player player)) {
sender.sendMessage(Component
diff --git a/src/main/java/pw/kaboom/extras/commands/CommandSpawn.java b/src/main/java/pw/kaboom/extras/commands/CommandSpawn.java
index 69369779..caa3ece1 100644
--- a/src/main/java/pw/kaboom/extras/commands/CommandSpawn.java
+++ b/src/main/java/pw/kaboom/extras/commands/CommandSpawn.java
@@ -6,14 +6,13 @@
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.player.PlayerTeleportEvent;
+import org.jspecify.annotations.NonNull;
import pw.kaboom.extras.util.Utility;
-import javax.annotation.Nonnull;
-
public final class CommandSpawn implements CommandExecutor {
- public boolean onCommand(final @Nonnull CommandSender sender,
- final @Nonnull Command command,
- final @Nonnull String label,
+ public boolean onCommand(final @NonNull CommandSender sender,
+ final @NonNull Command command,
+ final @NonNull String label,
final String[] args) {
if (!(sender instanceof final Player player)) {
sender.sendMessage(Component
diff --git a/src/main/java/pw/kaboom/extras/commands/CommandSpidey.java b/src/main/java/pw/kaboom/extras/commands/CommandSpidey.java
index e35c0bf0..8b729e18 100644
--- a/src/main/java/pw/kaboom/extras/commands/CommandSpidey.java
+++ b/src/main/java/pw/kaboom/extras/commands/CommandSpidey.java
@@ -10,13 +10,12 @@
import org.bukkit.entity.Player;
import org.bukkit.util.BlockIterator;
import org.bukkit.util.Vector;
-
-import javax.annotation.Nonnull;
+import org.jspecify.annotations.NonNull;
public final class CommandSpidey implements CommandExecutor {
- public boolean onCommand(final @Nonnull CommandSender sender,
- final @Nonnull Command command,
- final @Nonnull String label,
+ public boolean onCommand(final @NonNull CommandSender sender,
+ final @NonNull Command command,
+ final @NonNull String label,
final String[] args) {
if (!(sender instanceof final Player player)) {
sender.sendMessage(Component
diff --git a/src/main/java/pw/kaboom/extras/commands/CommandTellraw.java b/src/main/java/pw/kaboom/extras/commands/CommandTellraw.java
index f2baa771..61f93565 100644
--- a/src/main/java/pw/kaboom/extras/commands/CommandTellraw.java
+++ b/src/main/java/pw/kaboom/extras/commands/CommandTellraw.java
@@ -8,13 +8,12 @@
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-
-import javax.annotation.Nonnull;
+import org.jspecify.annotations.NonNull;
public final class CommandTellraw implements CommandExecutor {
- public boolean onCommand(final @Nonnull CommandSender sender,
- final @Nonnull Command command,
- final @Nonnull String label,
+ public boolean onCommand(final @NonNull CommandSender sender,
+ final @NonNull Command command,
+ final @NonNull String label,
final String[] args) {
if (args.length == 0) {
sender.sendMessage(Component
diff --git a/src/main/java/pw/kaboom/extras/commands/CommandUsername.java b/src/main/java/pw/kaboom/extras/commands/CommandUsername.java
index 696433b0..8e43b746 100644
--- a/src/main/java/pw/kaboom/extras/commands/CommandUsername.java
+++ b/src/main/java/pw/kaboom/extras/commands/CommandUsername.java
@@ -8,9 +8,9 @@
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
+import org.jspecify.annotations.NonNull;
import pw.kaboom.extras.util.Utility;
-import javax.annotation.Nonnull;
import java.util.HashMap;
import java.util.Map;
@@ -18,9 +18,9 @@ public final class CommandUsername implements CommandExecutor {
private final Map lastUsedMillis = new HashMap<>();
@Override
- public boolean onCommand(final @Nonnull CommandSender sender,
- final @Nonnull Command command,
- final @Nonnull String label,
+ public boolean onCommand(final @NonNull CommandSender sender,
+ final @NonNull Command command,
+ final @NonNull String label,
final String[] args) {
if (!(sender instanceof final Player player)) {
sender.sendMessage(Component
diff --git a/src/main/java/pw/kaboom/extras/modules/player/PlayerChat.java b/src/main/java/pw/kaboom/extras/modules/player/PlayerChat.java
index 5bcf2704..995a7e43 100644
--- a/src/main/java/pw/kaboom/extras/modules/player/PlayerChat.java
+++ b/src/main/java/pw/kaboom/extras/modules/player/PlayerChat.java
@@ -12,8 +12,8 @@
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
+import org.jspecify.annotations.NonNull;
-import javax.annotation.Nonnull;
import java.io.IOException;
import java.util.UUID;
import java.util.regex.Pattern;
@@ -65,15 +65,15 @@ public static class PlayerChatRenderer implements ChatRenderer.ViewerUnaware {
.hexColors()
.build();
- private Component renderVanilla(final @Nonnull Component displayName,
- final @Nonnull Component component) {
+ private Component renderVanilla(final @NonNull Component displayName,
+ final @NonNull Component component) {
return Component.translatable("chat.type.text", displayName, component);
}
@Override
- public @Nonnull Component render(@Nonnull Player player,
- @Nonnull Component displayName,
- @Nonnull Component component) {
+ public @NonNull Component render(@NonNull Player player,
+ @NonNull Component displayName,
+ @NonNull Component component) {
final String message = ((TextComponent) component).content();
final Component prefix;
Component prefix1;
diff --git a/src/main/java/pw/kaboom/extras/util/Utility.java b/src/main/java/pw/kaboom/extras/util/Utility.java
index 5c3c1649..c4f358d3 100644
--- a/src/main/java/pw/kaboom/extras/util/Utility.java
+++ b/src/main/java/pw/kaboom/extras/util/Utility.java
@@ -10,9 +10,9 @@
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import org.bukkit.event.player.PlayerTeleportEvent;
+import org.jspecify.annotations.NonNull;
+import org.jspecify.annotations.Nullable;
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
import java.util.concurrent.Callable;
import java.util.function.Function;
@@ -56,7 +56,7 @@ public static void resetAttribute (final T ent
}
// TODO: Support hex color codes, too (they aren't supported in Spigot either)
- public static String translateLegacyColors(@Nonnull String text) {
+ public static String translateLegacyColors(@NonNull String text) {
char[] b = text.toCharArray();
for (int i = 0; i < b.length - 1; i++) {
if (b[i] == '&' && "0123456789AaBbCcDdEeFfKkLlMmNnOoRrXx".indexOf(b[i + 1]) > -1) {
From b144e566370777186e28571ad0bda31721cb62ba Mon Sep 17 00:00:00 2001
From: amy <144570677+amyavi@users.noreply.github.com>
Date: Tue, 16 Jun 2026 23:50:09 -0300
Subject: [PATCH 3/5] chore: fix deprecation warnings
---
.../extras/modules/player/PlayerDamage.java | 8 ++++----
.../extras/modules/server/ServerGameRule.java | 19 +++++++++----------
2 files changed, 13 insertions(+), 14 deletions(-)
diff --git a/src/main/java/pw/kaboom/extras/modules/player/PlayerDamage.java b/src/main/java/pw/kaboom/extras/modules/player/PlayerDamage.java
index baaef0b3..a6d0c8ca 100644
--- a/src/main/java/pw/kaboom/extras/modules/player/PlayerDamage.java
+++ b/src/main/java/pw/kaboom/extras/modules/player/PlayerDamage.java
@@ -3,7 +3,7 @@
import io.papermc.paper.event.world.WorldGameRuleChangeEvent;
import net.kyori.adventure.text.Component;
import org.bukkit.Bukkit;
-import org.bukkit.GameRule;
+import org.bukkit.GameRules;
import org.bukkit.World;
import org.bukkit.attribute.Attribute;
import org.bukkit.attribute.AttributeInstance;
@@ -61,7 +61,7 @@ void onFoodLevelChange(final FoodLevelChangeEvent event) {
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
void onGameRuleChange(final WorldGameRuleChangeEvent event) {
- if (event.getGameRule() != GameRule.SHOW_DEATH_MESSAGES) {
+ if (event.getGameRule() != GameRules.SHOW_DEATH_MESSAGES) {
return;
}
@@ -76,8 +76,8 @@ void onPlayerDeath(final PlayerDeathEvent event) {
if (deathMessage != null && this.deathMessageToggles.computeIfAbsent(
player.getWorld(),
(key) -> Objects.requireNonNullElse(
- key.getGameRuleValue(GameRule.SHOW_DEATH_MESSAGES),
- key.getGameRuleDefault(GameRule.SHOW_DEATH_MESSAGES)
+ key.getGameRuleValue(GameRules.SHOW_DEATH_MESSAGES),
+ key.getGameRuleDefault(GameRules.SHOW_DEATH_MESSAGES)
)
)) {
Bukkit.broadcast(deathMessage);
diff --git a/src/main/java/pw/kaboom/extras/modules/server/ServerGameRule.java b/src/main/java/pw/kaboom/extras/modules/server/ServerGameRule.java
index ac5b81c5..70c7bf6e 100644
--- a/src/main/java/pw/kaboom/extras/modules/server/ServerGameRule.java
+++ b/src/main/java/pw/kaboom/extras/modules/server/ServerGameRule.java
@@ -3,6 +3,7 @@
import io.papermc.paper.event.world.WorldGameRuleChangeEvent;
import org.bukkit.Bukkit;
import org.bukkit.GameRule;
+import org.bukkit.GameRules;
import org.bukkit.World;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
@@ -14,15 +15,15 @@
public final class ServerGameRule implements Listener {
private static final Map, ?> FORCED_GAMERULES = Map.of(
- GameRule.COMMAND_BLOCKS_ENABLED, true,
- GameRule.SPAWNER_BLOCKS_ENABLED, false
+ GameRules.COMMAND_BLOCKS_WORK, true,
+ GameRules.SPAWNER_BLOCKS_WORK, false
);
private static final Map, Integer> GAMERULE_LIMITS = Map.of(
- GameRule.RANDOM_TICK_SPEED, 6,
- GameRule.SPAWN_RADIUS, 100,
- GameRule.COMMAND_MODIFICATION_BLOCK_LIMIT, 32768,
- GameRule.MAX_COMMAND_FORK_COUNT, EntitySpawn.MAX_ENTITIES_PER_WORLD
+ GameRules.RANDOM_TICK_SPEED, 6,
+ GameRules.RESPAWN_RADIUS, 100,
+ GameRules.MAX_BLOCK_MODIFICATIONS, 32768,
+ GameRules.MAX_COMMAND_FORKS, EntitySpawn.MAX_ENTITIES_PER_WORLD
);
private static void setGameRule(final World world, final GameRule gameRule,
@@ -73,10 +74,8 @@ private static void fixGameRules() {
final GameRule gameRule = entry.getKey();
final int limit = entry.getValue();
- final Integer value = world.getGameRuleValue(gameRule) != null
- ? world.getGameRuleValue(gameRule) : world.getGameRuleDefault(gameRule);
-
- if (value == null || value > limit) {
+ final Integer value = world.getGameRuleValue(gameRule);
+ if (value > limit) {
world.setGameRule(gameRule, limit);
}
}
From 743c91419e2c0d66a400f8ae662b48244d0decdb Mon Sep 17 00:00:00 2001
From: amy <144570677+amyavi@users.noreply.github.com>
Date: Tue, 16 Jun 2026 23:53:32 -0300
Subject: [PATCH 4/5] style: use LF as line separator
---
.../kaboom/extras/commands/CommandKaboom.java | 116 +++++++++---------
1 file changed, 58 insertions(+), 58 deletions(-)
diff --git a/src/main/java/pw/kaboom/extras/commands/CommandKaboom.java b/src/main/java/pw/kaboom/extras/commands/CommandKaboom.java
index 5a7bfd62..e733ba36 100644
--- a/src/main/java/pw/kaboom/extras/commands/CommandKaboom.java
+++ b/src/main/java/pw/kaboom/extras/commands/CommandKaboom.java
@@ -1,58 +1,58 @@
-package pw.kaboom.extras.commands;
-
-import net.kyori.adventure.text.Component;
-import org.bukkit.Location;
-import org.bukkit.Material;
-import org.bukkit.World;
-import org.bukkit.command.Command;
-import org.bukkit.command.CommandExecutor;
-import org.bukkit.command.CommandSender;
-import org.bukkit.entity.Player;
-import org.bukkit.inventory.ItemStack;
-import org.jspecify.annotations.NonNull;
-
-import java.util.concurrent.ThreadLocalRandom;
-
-public final class CommandKaboom implements CommandExecutor {
-
- public boolean onCommand(final @NonNull CommandSender sender,
- final @NonNull Command command,
- final @NonNull String label,
- final String[] args) {
- if (!(sender instanceof final Player player)) {
- sender.sendMessage(Component
- .text("Command has to be run by a player"));
- return true;
- }
-
- boolean explode = ThreadLocalRandom.current().nextBoolean();
-
- if (explode) {
- final Location location = player.getLocation();
- final World world = player.getWorld();
- final int explosionCount = 20;
- final int power = 8;
-
- world.createExplosion(location, power, true, true);
-
- for (int i = 0; i < explosionCount; i++) {
- final double posX = location.getX() + ThreadLocalRandom.current().nextInt(-15, 15);
- final double posY = location.getY() + ThreadLocalRandom.current().nextInt(-6, 6);
- final double posZ = location.getZ() + ThreadLocalRandom.current().nextInt(-15, 15);
-
- final Location explodeLocation = new Location(world, posX, posY, posZ);
- final int power2 = 4;
-
- world.createExplosion(explodeLocation, power2, true, true);
- explodeLocation.getBlock().setType(Material.LAVA);
- }
-
- player.sendMessage(Component.text("Forgive me :c"));
- return true;
- }
-
- player.getInventory().setItemInMainHand(new ItemStack(Material.CAKE));
- player.sendMessage(Component.text("Have a nice day :)"));
- return true;
- }
-}
+package pw.kaboom.extras.commands;
+
+import net.kyori.adventure.text.Component;
+import org.bukkit.Location;
+import org.bukkit.Material;
+import org.bukkit.World;
+import org.bukkit.command.Command;
+import org.bukkit.command.CommandExecutor;
+import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player;
+import org.bukkit.inventory.ItemStack;
+import org.jspecify.annotations.NonNull;
+
+import java.util.concurrent.ThreadLocalRandom;
+
+public final class CommandKaboom implements CommandExecutor {
+
+ public boolean onCommand(final @NonNull CommandSender sender,
+ final @NonNull Command command,
+ final @NonNull String label,
+ final String[] args) {
+ if (!(sender instanceof final Player player)) {
+ sender.sendMessage(Component
+ .text("Command has to be run by a player"));
+ return true;
+ }
+
+ boolean explode = ThreadLocalRandom.current().nextBoolean();
+
+ if (explode) {
+ final Location location = player.getLocation();
+ final World world = player.getWorld();
+ final int explosionCount = 20;
+ final int power = 8;
+
+ world.createExplosion(location, power, true, true);
+
+ for (int i = 0; i < explosionCount; i++) {
+ final double posX = location.getX() + ThreadLocalRandom.current().nextInt(-15, 15);
+ final double posY = location.getY() + ThreadLocalRandom.current().nextInt(-6, 6);
+ final double posZ = location.getZ() + ThreadLocalRandom.current().nextInt(-15, 15);
+
+ final Location explodeLocation = new Location(world, posX, posY, posZ);
+ final int power2 = 4;
+
+ world.createExplosion(explodeLocation, power2, true, true);
+ explodeLocation.getBlock().setType(Material.LAVA);
+ }
+
+ player.sendMessage(Component.text("Forgive me :c"));
+ return true;
+ }
+
+ player.getInventory().setItemInMainHand(new ItemStack(Material.CAKE));
+ player.sendMessage(Component.text("Have a nice day :)"));
+ return true;
+ }
+}
From e7e34a1d7738f831bbef035dfb6cc45debd08eb9 Mon Sep 17 00:00:00 2001
From: amy <144570677+amyavi@users.noreply.github.com>
Date: Tue, 16 Jun 2026 23:55:07 -0300
Subject: [PATCH 5/5] fix: also apply cube size limits to sulfur cubes
---
.../extras/modules/entity/EntitySpawn.java | 29 +++++++------------
1 file changed, 10 insertions(+), 19 deletions(-)
diff --git a/src/main/java/pw/kaboom/extras/modules/entity/EntitySpawn.java b/src/main/java/pw/kaboom/extras/modules/entity/EntitySpawn.java
index 42fa4d9f..f1fa6c4c 100644
--- a/src/main/java/pw/kaboom/extras/modules/entity/EntitySpawn.java
+++ b/src/main/java/pw/kaboom/extras/modules/entity/EntitySpawn.java
@@ -9,13 +9,13 @@
import org.bukkit.attribute.AttributeInstance;
import org.bukkit.block.CreatureSpawner;
import org.bukkit.configuration.file.FileConfiguration;
+import org.bukkit.entity.AbstractCubeMob;
import org.bukkit.entity.AreaEffectCloud;
import org.bukkit.entity.EnderDragon;
import org.bukkit.entity.Entity;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.FallingBlock;
import org.bukkit.entity.LightningStrike;
-import org.bukkit.entity.Slime;
import org.bukkit.entity.TNTPrimed;
import org.bukkit.entity.Vehicle;
import org.bukkit.entity.minecart.ExplosiveMinecart;
@@ -43,19 +43,10 @@ public final class EntitySpawn implements Listener {
private static final int MAX_TNTS_PER_WORLD = CONFIG.getInt("maxTntsPerWorld");
private void applyEntityChanges(final Entity entity) {
- switch (entity.getType()) {
- case AREA_EFFECT_CLOUD:
- final AreaEffectCloud cloud = (AreaEffectCloud) entity;
-
- limitAreaEffectCloudRadius(cloud);
- return;
- case MAGMA_CUBE:
- case SLIME:
- final Slime slime = (Slime) entity;
-
- limitSlimeSize(slime);
- default:
- break;
+ switch (entity) {
+ case final AreaEffectCloud cloud -> limitAreaEffectCloudRadius(cloud);
+ case final AbstractCubeMob cube -> limitCubeSize(cube);
+ default -> {}
}
}
@@ -123,13 +114,13 @@ private void limitAreaEffectCloudRadius(final AreaEffectCloud cloud) {
}
}
- private void limitSlimeSize(final Slime slime) {
- final AttributeInstance scaleInstance = slime.getAttribute(Attribute.SCALE);
+ private void limitCubeSize(final AbstractCubeMob cube) {
+ final AttributeInstance scaleInstance = cube.getAttribute(Attribute.SCALE);
final double scale = scaleInstance != null ? scaleInstance.getValue() : 1.0f;
- if ((slime.getSize() * scale) > 20) {
- slime.setSize(20);
- Utility.resetAttribute(slime, Attribute.SCALE);
+ if ((cube.getSize() * scale) > 20) {
+ cube.setSize(20);
+ Utility.resetAttribute(cube, Attribute.SCALE);
}
}