From db9c2d20eb6d45caf9131bd72395cb32c7a26666 Mon Sep 17 00:00:00 2001 From: Jakubk15 <77227023+Jakubk15@users.noreply.github.com> Date: Sat, 31 Jan 2026 15:33:45 +0100 Subject: [PATCH 1/8] refactor: Replace JetBrains annotations with JSpecify annotations for nullability --- buildSrc/src/main/kotlin/Versions.kt | 1 + eternalcore-api/build.gradle.kts | 1 + .../feature/adminchat/AdminChatService.java | 16 ++++++++-------- .../adminchat/event/AdminChatEvent.java | 14 +++++++------- .../core/feature/afk/event/AfkSwitchEvent.java | 3 ++- .../core/feature/catboy/CatboyService.java | 7 +++---- .../core/feature/home/HomeService.java | 3 +-- .../feature/ignore/event/IgnoreAllEvent.java | 4 ++-- .../core/feature/ignore/event/IgnoreEvent.java | 4 ++-- .../feature/ignore/event/UnIgnoreAllEvent.java | 4 ++-- .../feature/ignore/event/UnIgnoreEvent.java | 4 ++-- .../core/feature/jail/JailService.java | 5 ++--- .../vanish/event/DisableVanishEvent.java | 4 ++-- .../vanish/event/EnableVanishEvent.java | 4 ++-- .../warp/event/PreWarpTeleportEvent.java | 2 +- eternalcore-core/build.gradle.kts | 3 ++- .../PlaceholderApiExtension.java | 15 +++++++-------- .../eternalcode/core/delay/InstantExpiry.java | 10 +++++----- .../adminchat/AdminChatChannelController.java | 8 ++++---- .../feature/adminchat/AdminChatCommand.java | 8 ++++---- .../adminchat/AdminChatServiceImpl.java | 16 ++++++++-------- .../CustomCommandBukkitWrapper.java | 8 ++++---- .../feature/deathmessage/DeathContext.java | 2 +- .../ignore/IgnoreRepositoryOrmLite.java | 4 ++-- .../core/feature/jail/JailServiceImpl.java | 11 +++-------- .../TeleportRandomPlayerService.java | 11 +++++------ .../controller/OpenSilentController.java | 4 ++-- .../injector/bean/BeanCandidateContainer.java | 2 +- .../core/injector/scan/DependencyScanner.java | 3 +-- .../eternalcode/core/notice/NoticeService.java | 14 +++++++------- .../core/translation/TranslationManager.java | 4 ++-- .../core/test/MockAudienceProvider.java | 18 +++++++++--------- .../phantom/PhantomSpawnAttemptEvent.java | 4 ++-- 33 files changed, 107 insertions(+), 114 deletions(-) diff --git a/buildSrc/src/main/kotlin/Versions.kt b/buildSrc/src/main/kotlin/Versions.kt index 87827fdfc..2c409bdf6 100644 --- a/buildSrc/src/main/kotlin/Versions.kt +++ b/buildSrc/src/main/kotlin/Versions.kt @@ -7,6 +7,7 @@ object Versions { const val MULTIFICATION = "1.2.4" const val JETBRAINS_ANNOTATIONS = "26.0.2-1" + const val JSPECIFY = "1.0.0" const val PLACEHOLDER_API = "2.11.7" const val DYNMAP_API = "3.7-beta-6" const val LOMBOK = "1.18.42" diff --git a/eternalcore-api/build.gradle.kts b/eternalcore-api/build.gradle.kts index d174dbe4c..b7fa85bd9 100644 --- a/eternalcore-api/build.gradle.kts +++ b/eternalcore-api/build.gradle.kts @@ -7,4 +7,5 @@ plugins { dependencies { compileOnly("org.spigotmc:spigot-api:${Versions.SPIGOT_API}") api("org.jetbrains:annotations:${Versions.JETBRAINS_ANNOTATIONS}") + api("org.jspecify:jspecify:${Versions.JSPECIFY}") } diff --git a/eternalcore-api/src/main/java/com/eternalcode/core/feature/adminchat/AdminChatService.java b/eternalcore-api/src/main/java/com/eternalcode/core/feature/adminchat/AdminChatService.java index 7b301ac7d..7df72cbfe 100644 --- a/eternalcore-api/src/main/java/com/eternalcode/core/feature/adminchat/AdminChatService.java +++ b/eternalcore-api/src/main/java/com/eternalcode/core/feature/adminchat/AdminChatService.java @@ -3,8 +3,8 @@ import java.util.Collection; import java.util.UUID; import org.bukkit.command.CommandSender; -import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Unmodifiable; +import org.jspecify.annotations.NonNull; /** * Service responsible for managing admin chat functionality. @@ -20,7 +20,7 @@ public interface AdminChatService { * @param playerUuid the UUID of the player to toggle admin chat for * @return {@code true} if persistent chat was enabled, {@code false} if it was disabled */ - boolean toggleChat(@NotNull UUID playerUuid); + boolean toggleChat(@NonNull UUID playerUuid); /** * Checks if the persistent admin chat mode is enabled for the specified player. @@ -28,7 +28,7 @@ public interface AdminChatService { * @param playerUuid the UUID of the player to check * @return {@code true} if persistent chat is enabled, {@code false} otherwise */ - boolean hasEnabledChat(@NotNull UUID playerUuid); + boolean hasEnabledChat(@NonNull UUID playerUuid); /** * Retrieves all players who currently have persistent admin chat enabled. @@ -39,7 +39,7 @@ public interface AdminChatService { * * @return an unmodifiable collection of player UUIDs with enabled admin chat */ - @NotNull + @NonNull @Unmodifiable Collection getPlayersWithEnabledChat(); @@ -52,21 +52,21 @@ public interface AdminChatService { * @param message the message content to send * @param sender the command sender who is sending the message */ - void sendAdminChatMessage(@NotNull String message, @NotNull CommandSender sender); + void sendAdminChatMessage(@NonNull String message, @NonNull CommandSender sender); /** * Enables persistent admin chat for the specified player. * * @param playerUuid the UUID of the player */ - void enableChat(@NotNull UUID playerUuid); + void enableChat(@NonNull UUID playerUuid); /** * Disables persistent admin chat for the specified player. * * @param playerUuid the UUID of the player */ - void disableChat(@NotNull UUID playerUuid); + void disableChat(@NonNull UUID playerUuid); /** * Checks if the specified command sender has permission to see admin chat messages. @@ -74,5 +74,5 @@ public interface AdminChatService { * @param sender the command sender to check * @return {@code true} if the sender can see admin chat messages, {@code false} otherwise */ - boolean canSeeAdminChat(@NotNull CommandSender sender); + boolean canSeeAdminChat(@NonNull CommandSender sender); } diff --git a/eternalcore-api/src/main/java/com/eternalcode/core/feature/adminchat/event/AdminChatEvent.java b/eternalcore-api/src/main/java/com/eternalcode/core/feature/adminchat/event/AdminChatEvent.java index 35f544eda..2b4aefbc6 100644 --- a/eternalcore-api/src/main/java/com/eternalcode/core/feature/adminchat/event/AdminChatEvent.java +++ b/eternalcore-api/src/main/java/com/eternalcode/core/feature/adminchat/event/AdminChatEvent.java @@ -4,7 +4,7 @@ import org.bukkit.event.Cancellable; import org.bukkit.event.Event; import org.bukkit.event.HandlerList; -import org.jetbrains.annotations.NotNull; +import org.jspecify.annotations.NonNull; /** * Event called when an admin chat message is being sent. @@ -21,7 +21,7 @@ public class AdminChatEvent extends Event implements Cancellable { private String content; private boolean cancelled; - public AdminChatEvent(@NotNull CommandSender sender, @NotNull String content) { + public AdminChatEvent(@NonNull CommandSender sender, @NonNull String content) { super(false); if (sender == null) { @@ -36,22 +36,22 @@ public AdminChatEvent(@NotNull CommandSender sender, @NotNull String content) { this.cancelled = false; } - @NotNull + @NonNull public static HandlerList getHandlerList() { return HANDLER_LIST; } - @NotNull + @NonNull public CommandSender getSender() { return this.sender; } - @NotNull + @NonNull public String getContent() { return this.content; } - public void setContent(@NotNull String content) { + public void setContent(@NonNull String content) { if (content == null) { throw new IllegalArgumentException("Content cannot be null"); } @@ -69,7 +69,7 @@ public void setCancelled(boolean cancelled) { } @Override - @NotNull + @NonNull public HandlerList getHandlers() { return HANDLER_LIST; } diff --git a/eternalcore-api/src/main/java/com/eternalcode/core/feature/afk/event/AfkSwitchEvent.java b/eternalcore-api/src/main/java/com/eternalcode/core/feature/afk/event/AfkSwitchEvent.java index 5b078b663..c03b895a5 100644 --- a/eternalcore-api/src/main/java/com/eternalcode/core/feature/afk/event/AfkSwitchEvent.java +++ b/eternalcore-api/src/main/java/com/eternalcode/core/feature/afk/event/AfkSwitchEvent.java @@ -4,6 +4,7 @@ import org.bukkit.event.Cancellable; import org.bukkit.event.Event; import org.bukkit.event.HandlerList; +import org.jspecify.annotations.NonNull; /** * Called when a player switches their afk status. @@ -41,7 +42,7 @@ public void setCancelled(boolean cancel) { } @Override - public HandlerList getHandlers() { + public @NonNull HandlerList getHandlers() { return HANDLER_LIST; } diff --git a/eternalcore-api/src/main/java/com/eternalcode/core/feature/catboy/CatboyService.java b/eternalcore-api/src/main/java/com/eternalcode/core/feature/catboy/CatboyService.java index 7dec4aec1..5c340eb5f 100644 --- a/eternalcore-api/src/main/java/com/eternalcode/core/feature/catboy/CatboyService.java +++ b/eternalcore-api/src/main/java/com/eternalcode/core/feature/catboy/CatboyService.java @@ -1,12 +1,11 @@ package com.eternalcode.core.feature.catboy; -import org.bukkit.entity.Cat; -import org.bukkit.entity.Player; -import org.jetbrains.annotations.Unmodifiable; - import java.util.Collection; import java.util.Optional; import java.util.UUID; +import org.bukkit.entity.Cat; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.Unmodifiable; /** * Service for managing catboys. diff --git a/eternalcore-api/src/main/java/com/eternalcode/core/feature/home/HomeService.java b/eternalcore-api/src/main/java/com/eternalcode/core/feature/home/HomeService.java index 911b5b6fa..b5c1dadaf 100644 --- a/eternalcore-api/src/main/java/com/eternalcode/core/feature/home/HomeService.java +++ b/eternalcore-api/src/main/java/com/eternalcode/core/feature/home/HomeService.java @@ -1,12 +1,11 @@ package com.eternalcode.core.feature.home; import java.util.Collection; -import java.util.Map; import java.util.Optional; import java.util.UUID; import org.bukkit.Location; import org.bukkit.entity.Player; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; public interface HomeService { diff --git a/eternalcore-api/src/main/java/com/eternalcode/core/feature/ignore/event/IgnoreAllEvent.java b/eternalcore-api/src/main/java/com/eternalcode/core/feature/ignore/event/IgnoreAllEvent.java index 886d36a09..d4f479988 100644 --- a/eternalcore-api/src/main/java/com/eternalcode/core/feature/ignore/event/IgnoreAllEvent.java +++ b/eternalcore-api/src/main/java/com/eternalcode/core/feature/ignore/event/IgnoreAllEvent.java @@ -4,7 +4,7 @@ import org.bukkit.event.Cancellable; import org.bukkit.event.Event; import org.bukkit.event.HandlerList; -import org.jetbrains.annotations.NotNull; +import org.jspecify.annotations.NonNull; /** * This event is called when a player wants to ignore all players. @@ -38,7 +38,7 @@ public void setCancelled(boolean cancel) { this.cancelled = cancel; } - @NotNull + @NonNull @Override public HandlerList getHandlers() { return HANDLER_LIST; diff --git a/eternalcore-api/src/main/java/com/eternalcode/core/feature/ignore/event/IgnoreEvent.java b/eternalcore-api/src/main/java/com/eternalcode/core/feature/ignore/event/IgnoreEvent.java index 30e90b6b8..dec1ec9eb 100644 --- a/eternalcore-api/src/main/java/com/eternalcode/core/feature/ignore/event/IgnoreEvent.java +++ b/eternalcore-api/src/main/java/com/eternalcode/core/feature/ignore/event/IgnoreEvent.java @@ -4,7 +4,7 @@ import org.bukkit.event.Cancellable; import org.bukkit.event.Event; import org.bukkit.event.HandlerList; -import org.jetbrains.annotations.NotNull; +import org.jspecify.annotations.NonNull; /** * This event is called when a player wants to ignore another player. @@ -48,7 +48,7 @@ public void setCancelled(boolean cancel) { } @Override - public @NotNull HandlerList getHandlers() { + public @NonNull HandlerList getHandlers() { return HANDLER_LIST; } diff --git a/eternalcore-api/src/main/java/com/eternalcode/core/feature/ignore/event/UnIgnoreAllEvent.java b/eternalcore-api/src/main/java/com/eternalcode/core/feature/ignore/event/UnIgnoreAllEvent.java index 760d78ee0..5ff664b22 100644 --- a/eternalcore-api/src/main/java/com/eternalcode/core/feature/ignore/event/UnIgnoreAllEvent.java +++ b/eternalcore-api/src/main/java/com/eternalcode/core/feature/ignore/event/UnIgnoreAllEvent.java @@ -4,7 +4,7 @@ import org.bukkit.event.Cancellable; import org.bukkit.event.Event; import org.bukkit.event.HandlerList; -import org.jetbrains.annotations.NotNull; +import org.jspecify.annotations.NonNull; /** * This event is called when a player ignores all other players. @@ -38,7 +38,7 @@ public void setCancelled(boolean cancel) { this.cancelled = cancel; } - @NotNull + @NonNull @Override public HandlerList getHandlers() { return HANDLER_LIST; diff --git a/eternalcore-api/src/main/java/com/eternalcode/core/feature/ignore/event/UnIgnoreEvent.java b/eternalcore-api/src/main/java/com/eternalcode/core/feature/ignore/event/UnIgnoreEvent.java index 5567c55b7..7a4343acf 100644 --- a/eternalcore-api/src/main/java/com/eternalcode/core/feature/ignore/event/UnIgnoreEvent.java +++ b/eternalcore-api/src/main/java/com/eternalcode/core/feature/ignore/event/UnIgnoreEvent.java @@ -4,7 +4,7 @@ import org.bukkit.event.Cancellable; import org.bukkit.event.Event; import org.bukkit.event.HandlerList; -import org.jetbrains.annotations.NotNull; +import org.jspecify.annotations.NonNull; /** * This event is called when a player unignores another player. @@ -47,7 +47,7 @@ public void setCancelled(boolean cancel) { this.cancelled = cancel; } - @NotNull + @NonNull @Override public HandlerList getHandlers() { return HANDLER_LIST; diff --git a/eternalcore-api/src/main/java/com/eternalcode/core/feature/jail/JailService.java b/eternalcore-api/src/main/java/com/eternalcode/core/feature/jail/JailService.java index 64f172121..141ee0804 100644 --- a/eternalcore-api/src/main/java/com/eternalcode/core/feature/jail/JailService.java +++ b/eternalcore-api/src/main/java/com/eternalcode/core/feature/jail/JailService.java @@ -2,14 +2,13 @@ import java.time.Duration; import java.util.Collection; +import java.util.Optional; import java.util.UUID; import org.bukkit.Location; - -import java.util.Optional; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.jetbrains.annotations.Blocking; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; public interface JailService { diff --git a/eternalcore-api/src/main/java/com/eternalcode/core/feature/vanish/event/DisableVanishEvent.java b/eternalcore-api/src/main/java/com/eternalcode/core/feature/vanish/event/DisableVanishEvent.java index 3fefaf898..29d00968b 100644 --- a/eternalcore-api/src/main/java/com/eternalcode/core/feature/vanish/event/DisableVanishEvent.java +++ b/eternalcore-api/src/main/java/com/eternalcode/core/feature/vanish/event/DisableVanishEvent.java @@ -2,7 +2,7 @@ import org.bukkit.entity.Player; import org.bukkit.event.HandlerList; -import org.jetbrains.annotations.NotNull; +import org.jspecify.annotations.NonNull; public class DisableVanishEvent extends AbstractVanishEvent { @@ -13,7 +13,7 @@ public DisableVanishEvent(Player player) { } @Override - public @NotNull HandlerList getHandlers() { + public @NonNull HandlerList getHandlers() { return HANDLERS; } diff --git a/eternalcore-api/src/main/java/com/eternalcode/core/feature/vanish/event/EnableVanishEvent.java b/eternalcore-api/src/main/java/com/eternalcode/core/feature/vanish/event/EnableVanishEvent.java index 2bc21597b..8fd9ce975 100644 --- a/eternalcore-api/src/main/java/com/eternalcode/core/feature/vanish/event/EnableVanishEvent.java +++ b/eternalcore-api/src/main/java/com/eternalcode/core/feature/vanish/event/EnableVanishEvent.java @@ -2,7 +2,7 @@ import org.bukkit.entity.Player; import org.bukkit.event.HandlerList; -import org.jetbrains.annotations.NotNull; +import org.jspecify.annotations.NonNull; public class EnableVanishEvent extends AbstractVanishEvent { @@ -13,7 +13,7 @@ public EnableVanishEvent(Player player) { } @Override - public @NotNull HandlerList getHandlers() { + public @NonNull HandlerList getHandlers() { return HANDLERS; } diff --git a/eternalcore-api/src/main/java/com/eternalcode/core/feature/warp/event/PreWarpTeleportEvent.java b/eternalcore-api/src/main/java/com/eternalcode/core/feature/warp/event/PreWarpTeleportEvent.java index e8a37c916..cdb6a6c10 100644 --- a/eternalcore-api/src/main/java/com/eternalcode/core/feature/warp/event/PreWarpTeleportEvent.java +++ b/eternalcore-api/src/main/java/com/eternalcode/core/feature/warp/event/PreWarpTeleportEvent.java @@ -8,7 +8,7 @@ import org.bukkit.event.Cancellable; import org.bukkit.event.Event; import org.bukkit.event.HandlerList; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; /** * Called before teleportation to warp. diff --git a/eternalcore-core/build.gradle.kts b/eternalcore-core/build.gradle.kts index aa7a88417..6356aaf02 100644 --- a/eternalcore-core/build.gradle.kts +++ b/eternalcore-core/build.gradle.kts @@ -12,6 +12,7 @@ dependencies { api(project(":eternalcore-docs-api")) // Base libraries + compileOnly("org.jspecify:jspecify:${Versions.JSPECIFY}") compileOnly("org.jetbrains:annotations:${Versions.JETBRAINS_ANNOTATIONS}") // Minecraft & Bridges API @@ -111,7 +112,7 @@ eternalShadow { // caffeine library("com.github.ben-manes.caffeine:caffeine:${Versions.CAFFEINE}") - libraryRelocate("com.github.benmanes.caffeine"); + libraryRelocate("com.github.benmanes.caffeine") // glowingentites (nms) library("fr.skytasul:glowingentities:${Versions.GLOWING_ENTITIES}") diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/bridge/placeholderapi/PlaceholderApiExtension.java b/eternalcore-core/src/main/java/com/eternalcode/core/bridge/placeholderapi/PlaceholderApiExtension.java index 2eb14ccc6..4a3d28c4b 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/bridge/placeholderapi/PlaceholderApiExtension.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/bridge/placeholderapi/PlaceholderApiExtension.java @@ -3,13 +3,12 @@ import com.eternalcode.core.bridge.BridgeInitializer; import com.eternalcode.core.placeholder.PlaceholderRaw; import com.eternalcode.core.placeholder.PlaceholderRegistry; +import java.util.Optional; import me.clip.placeholderapi.expansion.PlaceholderExpansion; import org.bukkit.entity.Player; import org.bukkit.plugin.PluginDescriptionFile; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.Optional; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; public class PlaceholderApiExtension extends PlaceholderExpansion implements BridgeInitializer { @@ -22,7 +21,7 @@ public PlaceholderApiExtension(PlaceholderRegistry placeholderRegistry, PluginDe } @Override - public @Nullable String onPlaceholderRequest(Player player, @NotNull String params) { + public @Nullable String onPlaceholderRequest(Player player, @NonNull String params) { Optional optional = this.placeholderRegistry.getRawPlaceholder(params); if (optional.isPresent()) { @@ -33,17 +32,17 @@ public PlaceholderApiExtension(PlaceholderRegistry placeholderRegistry, PluginDe } @Override - public @NotNull String getIdentifier() { + public @NonNull String getIdentifier() { return "eternalcore"; } @Override - public @NotNull String getAuthor() { + public @NonNull String getAuthor() { return "EternalCodeTeam"; } @Override - public @NotNull String getVersion() { + public @NonNull String getVersion() { return this.pluginDescriptionFile.getVersion(); } diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/delay/InstantExpiry.java b/eternalcore-core/src/main/java/com/eternalcode/core/delay/InstantExpiry.java index 168c92b51..a52d88e31 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/delay/InstantExpiry.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/delay/InstantExpiry.java @@ -3,22 +3,22 @@ import com.github.benmanes.caffeine.cache.Expiry; import java.time.Duration; import java.time.Instant; -import org.jetbrains.annotations.NotNull; +import org.jspecify.annotations.NonNull; -class InstantExpiry implements Expiry<@NotNull T, @NotNull Instant> { +class InstantExpiry implements Expiry<@NonNull T, @NonNull Instant> { @Override - public long expireAfterCreate(@NotNull T key, @NotNull Instant expireTime, long currentTime) { + public long expireAfterCreate(@NonNull T key, @NonNull Instant expireTime, long currentTime) { return timeToExpire(expireTime); } @Override - public long expireAfterUpdate(@NotNull T key, @NotNull Instant newExpireTime, long currentTime, long currentDuration) { + public long expireAfterUpdate(@NonNull T key, @NonNull Instant newExpireTime, long currentTime, long currentDuration) { return timeToExpire(newExpireTime); } @Override - public long expireAfterRead(@NotNull T key, @NotNull Instant value, long currentTime, long currentDuration) { + public long expireAfterRead(@NonNull T key, @NonNull Instant value, long currentTime, long currentDuration) { return currentDuration; } diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/adminchat/AdminChatChannelController.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/adminchat/AdminChatChannelController.java index b7ae7784d..4889ac530 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/feature/adminchat/AdminChatChannelController.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/adminchat/AdminChatChannelController.java @@ -9,7 +9,7 @@ import org.bukkit.event.Listener; import org.bukkit.event.player.AsyncPlayerChatEvent; import org.bukkit.event.player.PlayerQuitEvent; -import org.jetbrains.annotations.NotNull; +import org.jspecify.annotations.NonNull; @Controller final class AdminChatChannelController implements Listener { @@ -18,13 +18,13 @@ final class AdminChatChannelController implements Listener { private final Scheduler scheduler; @Inject - AdminChatChannelController(@NotNull AdminChatService adminChatService, Scheduler scheduler) { + AdminChatChannelController(@NonNull AdminChatService adminChatService, Scheduler scheduler) { this.adminChatService = adminChatService; this.scheduler = scheduler; } @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true) - void onPlayerChat(@NotNull AsyncPlayerChatEvent event) { + void onPlayerChat(@NonNull AsyncPlayerChatEvent event) { Player player = event.getPlayer(); if (!this.adminChatService.hasEnabledChat(player.getUniqueId())) { @@ -37,7 +37,7 @@ void onPlayerChat(@NotNull AsyncPlayerChatEvent event) { } @EventHandler(priority = EventPriority.MONITOR) - void onPlayerQuit(@NotNull PlayerQuitEvent event) { + void onPlayerQuit(@NonNull PlayerQuitEvent event) { Player player = event.getPlayer(); if (this.adminChatService.hasEnabledChat(player.getUniqueId())) { diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/adminchat/AdminChatCommand.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/adminchat/AdminChatCommand.java index 1b1bac728..7a62b54d6 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/feature/adminchat/AdminChatCommand.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/adminchat/AdminChatCommand.java @@ -10,7 +10,7 @@ import dev.rollczi.litecommands.annotations.permission.Permission; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import org.jetbrains.annotations.NotNull; +import org.jspecify.annotations.NonNull; @Command(name = "adminchat", aliases = {"ac"}) @Permission(AdminChatPermissionConstant.ADMIN_CHAT_PERMISSION) @@ -20,7 +20,7 @@ final class AdminChatCommand { private final NoticeService noticeService; @Inject - AdminChatCommand(@NotNull AdminChatService adminChatService, @NotNull NoticeService noticeService) { + AdminChatCommand(@NonNull AdminChatService adminChatService, @NonNull NoticeService noticeService) { this.adminChatService = adminChatService; this.noticeService = noticeService; } @@ -29,7 +29,7 @@ final class AdminChatCommand { @DescriptionDocs( description = "Toggles persistent admin chat mode. When enabled, all your messages will be sent to admin chat." ) - void executeToggle(@Context @NotNull Player sender) { + void executeToggle(@Context @NonNull Player sender) { boolean enabled = this.adminChatService.toggleChat(sender.getUniqueId()); this.noticeService.create() @@ -45,7 +45,7 @@ void executeToggle(@Context @NotNull Player sender) { description = "Sends a message to all staff members with admin chat permissions.", arguments = "" ) - void executeSendMessage(@Context @NotNull CommandSender sender, @Join @NotNull String message) { + void executeSendMessage(@Context @NonNull CommandSender sender, @Join @NonNull String message) { if (message.trim().isEmpty()) { this.noticeService.create() .notice(translation -> translation.argument().noArgument()) diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/adminchat/AdminChatServiceImpl.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/adminchat/AdminChatServiceImpl.java index 1ce953327..ded1bd3d4 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/feature/adminchat/AdminChatServiceImpl.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/adminchat/AdminChatServiceImpl.java @@ -15,8 +15,8 @@ import org.bukkit.Server; import org.bukkit.command.CommandSender; import org.bukkit.command.ConsoleCommandSender; -import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Unmodifiable; +import org.jspecify.annotations.NonNull; @Service final class AdminChatServiceImpl implements AdminChatService { @@ -39,7 +39,7 @@ final class AdminChatServiceImpl implements AdminChatService { } @Override - public boolean toggleChat(@NotNull UUID playerUuid) { + public boolean toggleChat(@NonNull UUID playerUuid) { if (this.playersWithEnabledChat.contains(playerUuid)) { this.playersWithEnabledChat.remove(playerUuid); return false; @@ -51,19 +51,19 @@ public boolean toggleChat(@NotNull UUID playerUuid) { } @Override - public boolean hasEnabledChat(@NotNull UUID playerUuid) { + public boolean hasEnabledChat(@NonNull UUID playerUuid) { return this.playersWithEnabledChat.contains(playerUuid); } @Override - @NotNull + @NonNull @Unmodifiable public Collection getPlayersWithEnabledChat() { return Collections.unmodifiableSet(this.playersWithEnabledChat); } @Override - public void sendAdminChatMessage(@NotNull String message, @NotNull CommandSender sender) { + public void sendAdminChatMessage(@NonNull String message, @NonNull CommandSender sender) { if (message == null || message.trim().isEmpty()) { throw new IllegalArgumentException("Message cannot be null or empty"); } @@ -88,17 +88,17 @@ public void sendAdminChatMessage(@NotNull String message, @NotNull CommandSender } @Override - public void enableChat(@NotNull UUID playerUuid) { + public void enableChat(@NonNull UUID playerUuid) { this.playersWithEnabledChat.add(playerUuid); } @Override - public void disableChat(@NotNull UUID playerUuid) { + public void disableChat(@NonNull UUID playerUuid) { this.playersWithEnabledChat.remove(playerUuid); } @Override - public boolean canSeeAdminChat(@NotNull CommandSender sender) { + public boolean canSeeAdminChat(@NonNull CommandSender sender) { if (sender instanceof ConsoleCommandSender) { return true; } diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/customcommand/CustomCommandBukkitWrapper.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/customcommand/CustomCommandBukkitWrapper.java index 5810cf72d..23d8703a6 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/feature/customcommand/CustomCommandBukkitWrapper.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/customcommand/CustomCommandBukkitWrapper.java @@ -6,7 +6,7 @@ import java.util.List; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; -import org.jetbrains.annotations.NotNull; +import org.jspecify.annotations.NonNull; public class CustomCommandBukkitWrapper extends Command { @@ -18,8 +18,8 @@ public class CustomCommandBukkitWrapper extends Command { private final List commands; protected CustomCommandBukkitWrapper( - @NotNull String name, - @NotNull List aliases, + @NonNull String name, + @NonNull List aliases, NoticeService noticeService, Notice message, List commands @@ -32,7 +32,7 @@ protected CustomCommandBukkitWrapper( } @Override - public boolean execute(@NotNull CommandSender commandSender, @NotNull String s, @NotNull String[] strings) { + public boolean execute(@NonNull CommandSender commandSender, @NonNull String s, @NonNull String[] strings) { this.noticeService.create() .notice(this.message) .sender(commandSender) diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/deathmessage/DeathContext.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/deathmessage/DeathContext.java index 56a52658d..2df6cdb2e 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/feature/deathmessage/DeathContext.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/deathmessage/DeathContext.java @@ -3,7 +3,7 @@ import org.bukkit.entity.Entity; import org.bukkit.entity.Player; import org.bukkit.event.entity.EntityDamageEvent.DamageCause; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; public record DeathContext( Player victim, diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/ignore/IgnoreRepositoryOrmLite.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/ignore/IgnoreRepositoryOrmLite.java index ebbb8fbcb..60d109457 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/feature/ignore/IgnoreRepositoryOrmLite.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/ignore/IgnoreRepositoryOrmLite.java @@ -18,7 +18,7 @@ import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; import java.util.stream.Collectors; -import org.jetbrains.annotations.NotNull; +import org.jspecify.annotations.NonNull; @Repository class IgnoreRepositoryOrmLite extends AbstractRepositoryOrmLite implements IgnoreRepository { @@ -122,7 +122,7 @@ public CompletableFuture> getIgnoredPlayers(UUID by) { private class IgnoreLoader extends CacheLoader> { @Override - public @NotNull Set load(@NotNull UUID key) throws SQLException { + public @NonNull Set load(@NonNull UUID key) throws SQLException { return IgnoreRepositoryOrmLite.this.cachedDao.queryBuilder() .where().eq(IgnoreTable.PLAYER_ID_COLUMN, key) .query() diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/jail/JailServiceImpl.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/jail/JailServiceImpl.java index 8cc0303bf..228fa61c5 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/feature/jail/JailServiceImpl.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/jail/JailServiceImpl.java @@ -17,15 +17,14 @@ import java.util.Collections; import java.util.HashMap; import java.util.Map; +import java.util.Optional; import java.util.UUID; import org.bukkit.Location; import org.bukkit.Server; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.jetbrains.annotations.Blocking; - -import java.util.Optional; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; @Service class JailServiceImpl implements JailService { @@ -134,11 +133,7 @@ public void releaseAllPlayers() { public boolean isPlayerJailed(UUID player) { JailedPlayer jailedPlayer = this.jailedPlayers.get(player); - if (jailedPlayer == null || jailedPlayer.isPrisonExpired()) { - return false; - } - - return true; + return jailedPlayer != null && !jailedPlayer.isPrisonExpired(); } @Override diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/teleportrandomplayer/TeleportRandomPlayerService.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/teleportrandomplayer/TeleportRandomPlayerService.java index 7ebab55f4..2d4fa11b4 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/feature/teleportrandomplayer/TeleportRandomPlayerService.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/teleportrandomplayer/TeleportRandomPlayerService.java @@ -4,16 +4,15 @@ import com.eternalcode.core.injector.annotations.component.Service; import com.github.benmanes.caffeine.cache.Cache; import com.github.benmanes.caffeine.cache.Caffeine; -import java.util.concurrent.TimeUnit; -import org.bukkit.Server; -import org.bukkit.entity.Player; - import java.time.Instant; import java.util.Comparator; -import java.util.UUID; import java.util.List; +import java.util.UUID; +import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; -import org.jetbrains.annotations.Nullable; +import org.bukkit.Server; +import org.bukkit.entity.Player; +import org.jspecify.annotations.Nullable; @Service public class TeleportRandomPlayerService { diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/vanish/controller/OpenSilentController.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/vanish/controller/OpenSilentController.java index 46dbe0ea6..ad9fdefe5 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/feature/vanish/controller/OpenSilentController.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/vanish/controller/OpenSilentController.java @@ -31,7 +31,7 @@ import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; import org.bukkit.inventory.CraftingInventory; import org.bukkit.util.Vector; -import org.jetbrains.annotations.NotNull; +import org.jspecify.annotations.NonNull; /** * Controller allowing vanished players to silently access containers @@ -204,7 +204,7 @@ private boolean isContainerType(Material type) { private record PlayerRestoreListener(Scheduler scheduler) implements RemovalListener { @Override - public void onRemoval(UUID playerId, ContainerWrapper data, @NotNull RemovalCause cause) { + public void onRemoval(UUID playerId, ContainerWrapper data, @NonNull RemovalCause cause) { if (cause == RemovalCause.EXPIRED && data != null) { this.scheduler.run(() -> { diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/injector/bean/BeanCandidateContainer.java b/eternalcore-core/src/main/java/com/eternalcode/core/injector/bean/BeanCandidateContainer.java index f1c59f680..0d6176e78 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/injector/bean/BeanCandidateContainer.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/injector/bean/BeanCandidateContainer.java @@ -3,7 +3,7 @@ import dev.rollczi.litecommands.priority.MutablePrioritizedList; import dev.rollczi.litecommands.priority.PriorityLevel; import java.util.function.Function; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; class BeanCandidateContainer { diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/injector/scan/DependencyScanner.java b/eternalcore-core/src/main/java/com/eternalcode/core/injector/scan/DependencyScanner.java index 420e65acd..5941f4602 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/injector/scan/DependencyScanner.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/injector/scan/DependencyScanner.java @@ -6,7 +6,6 @@ import com.eternalcode.core.injector.bean.BeanHolder; import com.eternalcode.core.injector.bean.LazyFieldBeanCandidate; import com.eternalcode.core.util.ReflectUtil; - import java.lang.annotation.Annotation; import java.lang.reflect.Field; import java.lang.reflect.Method; @@ -16,7 +15,7 @@ import java.util.List; import java.util.Map; import java.util.function.Predicate; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.Nullable; public class DependencyScanner { diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/notice/NoticeService.java b/eternalcore-core/src/main/java/com/eternalcode/core/notice/NoticeService.java index fbb3e0f32..f247e12e9 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/notice/NoticeService.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/notice/NoticeService.java @@ -22,7 +22,7 @@ import net.kyori.adventure.text.minimessage.MiniMessage; import net.kyori.adventure.text.serializer.ComponentSerializer; import org.bukkit.Server; -import org.jetbrains.annotations.NotNull; +import org.jspecify.annotations.NonNull; @Service public class NoticeService extends Multification { @@ -60,17 +60,17 @@ public NoticeService( } @Override - public @NotNull ViewerProvider viewerProvider() { + public @NonNull ViewerProvider viewerProvider() { return new BukkitViewerProvider(this.userManager, this.server); } @Override - public @NotNull TranslationProvider translationProvider() { + public @NonNull TranslationProvider translationProvider() { return this.translationManager; } @Override - public @NotNull AudienceConverter audienceConverter() { + public @NonNull AudienceConverter audienceConverter() { return viewer -> { if (viewer.isConsole()) { return this.audienceProvider.console(); @@ -81,12 +81,12 @@ public NoticeService( } @Override - public @NotNull AsyncExecutor asyncExecutor() { + public @NonNull AsyncExecutor asyncExecutor() { return this.scheduler::runAsync; } @Override - public @NotNull Replacer globalReplacer() { + public @NonNull Replacer globalReplacer() { return (viewer, text) -> this.registry.format(text, viewer); } @@ -101,7 +101,7 @@ public PlatformBroadcaster platformBroadcaster() { } @Override - protected @NotNull ComponentSerializer serializer() { + protected @NonNull ComponentSerializer serializer() { return this.miniMessage; } diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/translation/TranslationManager.java b/eternalcore-core/src/main/java/com/eternalcode/core/translation/TranslationManager.java index 889ddc6ca..3329815bc 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/translation/TranslationManager.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/translation/TranslationManager.java @@ -4,7 +4,7 @@ import java.util.Locale; import java.util.Map; import java.util.UUID; -import org.jetbrains.annotations.NotNull; +import org.jspecify.annotations.NonNull; public class TranslationManager implements TranslationProvider { @@ -30,7 +30,7 @@ public Translation getMessages(Language language) { return getMessages(); } - @NotNull + @NonNull @Override public Translation provide(Locale locale) { return getMessages(); diff --git a/eternalcore-core/src/test/java/com/eternalcode/core/test/MockAudienceProvider.java b/eternalcore-core/src/test/java/com/eternalcode/core/test/MockAudienceProvider.java index 506021af3..6a50449b2 100644 --- a/eternalcore-core/src/test/java/com/eternalcode/core/test/MockAudienceProvider.java +++ b/eternalcore-core/src/test/java/com/eternalcode/core/test/MockAudienceProvider.java @@ -16,8 +16,8 @@ import net.kyori.adventure.text.flattener.ComponentFlattener; import net.kyori.adventure.text.minimessage.MiniMessage; import net.kyori.adventure.translation.GlobalTranslator; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; import panda.std.Blank; public class MockAudienceProvider extends FacetAudienceProvider { @@ -40,12 +40,12 @@ public void leave(Viewer viewer) { } @Override - protected @NotNull MockAudienceProvider.MockAudience createAudience(@NotNull Collection viewers) { + protected @NonNull MockAudienceProvider.MockAudience createAudience(@NonNull Collection viewers) { return new MockAudienceProvider.MockAudience(new MockAudienceProvider.Chat(), viewers); } @Override - public @NotNull ComponentFlattener flattener() { + public @NonNull ComponentFlattener flattener() { return FLATTENER; } @@ -72,15 +72,15 @@ static class Chat implements Facet.Chat { @Override public void sendMessage( - @NotNull Viewer viewer, - @NotNull Identity source, - @NotNull String message, - @NotNull Object type) { + @NonNull Viewer viewer, + @NonNull Identity source, + @NonNull String message, + @NonNull Object type) { messages.add(message); } @Override - public @Nullable String createMessage(@NotNull Viewer viewer, @NotNull Component message) { + public @Nullable String createMessage(@NonNull Viewer viewer, @NonNull Component message) { return MiniMessage.miniMessage().serialize(message); } } diff --git a/eternalcore-paper/src/main/java/com/eternalcode/paper/phantom/PhantomSpawnAttemptEvent.java b/eternalcore-paper/src/main/java/com/eternalcode/paper/phantom/PhantomSpawnAttemptEvent.java index 30e5b17d4..e1afb238c 100644 --- a/eternalcore-paper/src/main/java/com/eternalcode/paper/phantom/PhantomSpawnAttemptEvent.java +++ b/eternalcore-paper/src/main/java/com/eternalcode/paper/phantom/PhantomSpawnAttemptEvent.java @@ -6,7 +6,7 @@ import org.bukkit.event.Event; import org.bukkit.event.HandlerList; import org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason; -import org.jetbrains.annotations.NotNull; +import org.jspecify.annotations.NonNull; /** * Internal event of {@link com.destroystokyo.paper.event.entity.PhantomPreSpawnEvent} @@ -49,7 +49,7 @@ public void setCancelled(boolean cancelled) { } @Override - public @NotNull HandlerList getHandlers() { + public @NonNull HandlerList getHandlers() { return HANDLER_LIST; } From 74a808a652f639e289d60effc776150f8997aedb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20K=C4=99dziora?= <77227023+Jakubk15@users.noreply.github.com> Date: Sat, 31 Jan 2026 15:38:36 +0100 Subject: [PATCH 2/8] Update eternalcore-core/src/main/java/com/eternalcode/core/bridge/placeholderapi/PlaceholderApiExtension.java Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --- .../core/bridge/placeholderapi/PlaceholderApiExtension.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/bridge/placeholderapi/PlaceholderApiExtension.java b/eternalcore-core/src/main/java/com/eternalcode/core/bridge/placeholderapi/PlaceholderApiExtension.java index 4a3d28c4b..cbf25bf94 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/bridge/placeholderapi/PlaceholderApiExtension.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/bridge/placeholderapi/PlaceholderApiExtension.java @@ -21,7 +21,7 @@ public PlaceholderApiExtension(PlaceholderRegistry placeholderRegistry, PluginDe } @Override - public @Nullable String onPlaceholderRequest(Player player, @NonNull String params) { + public @NonNull String onPlaceholderRequest(Player player, @NonNull String params) { Optional optional = this.placeholderRegistry.getRawPlaceholder(params); if (optional.isPresent()) { From a65339d918e57165121d79b44cebbb1edc056dda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20K=C4=99dziora?= <77227023+Jakubk15@users.noreply.github.com> Date: Mon, 2 Feb 2026 14:26:28 +0100 Subject: [PATCH 3/8] Update AdminChatCommand.java Co-authored-by: DMK <81445555+imDMK@users.noreply.github.com> --- .../eternalcode/core/feature/adminchat/AdminChatCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/adminchat/AdminChatCommand.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/adminchat/AdminChatCommand.java index 7a62b54d6..2a9b700cd 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/feature/adminchat/AdminChatCommand.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/adminchat/AdminChatCommand.java @@ -45,7 +45,7 @@ void executeToggle(@Context @NonNull Player sender) { description = "Sends a message to all staff members with admin chat permissions.", arguments = "" ) - void executeSendMessage(@Context @NonNull CommandSender sender, @Join @NonNull String message) { + void executeSendMessage(@Context CommandSender sender, @Join String message) { if (message.trim().isEmpty()) { this.noticeService.create() .notice(translation -> translation.argument().noArgument()) From b9bd8db5a89efbabf4ff3dfa3fee1fc9f82e7a5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20K=C4=99dziora?= <77227023+Jakubk15@users.noreply.github.com> Date: Mon, 2 Feb 2026 14:27:55 +0100 Subject: [PATCH 4/8] Update AdminChatCommand.java Co-authored-by: DMK <81445555+imDMK@users.noreply.github.com> --- .../eternalcode/core/feature/adminchat/AdminChatCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/adminchat/AdminChatCommand.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/adminchat/AdminChatCommand.java index 2a9b700cd..886f5f8a4 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/feature/adminchat/AdminChatCommand.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/adminchat/AdminChatCommand.java @@ -29,7 +29,7 @@ final class AdminChatCommand { @DescriptionDocs( description = "Toggles persistent admin chat mode. When enabled, all your messages will be sent to admin chat." ) - void executeToggle(@Context @NonNull Player sender) { + void executeToggle(@Context Player sender) { boolean enabled = this.adminChatService.toggleChat(sender.getUniqueId()); this.noticeService.create() From 0d6e00533104e7793b4a614d8ef382df51847215 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20K=C4=99dziora?= <77227023+Jakubk15@users.noreply.github.com> Date: Mon, 2 Feb 2026 14:28:50 +0100 Subject: [PATCH 5/8] Update AdminChatChannelController.java Co-authored-by: DMK <81445555+imDMK@users.noreply.github.com> --- .../core/feature/adminchat/AdminChatChannelController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/adminchat/AdminChatChannelController.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/adminchat/AdminChatChannelController.java index 4889ac530..a4e4c15a6 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/feature/adminchat/AdminChatChannelController.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/adminchat/AdminChatChannelController.java @@ -37,7 +37,7 @@ void onPlayerChat(@NonNull AsyncPlayerChatEvent event) { } @EventHandler(priority = EventPriority.MONITOR) - void onPlayerQuit(@NonNull PlayerQuitEvent event) { + void onPlayerQuit(PlayerQuitEvent event) { Player player = event.getPlayer(); if (this.adminChatService.hasEnabledChat(player.getUniqueId())) { From 58b428693f5e9925894163a774917b858e3c4efa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20K=C4=99dziora?= <77227023+Jakubk15@users.noreply.github.com> Date: Mon, 2 Feb 2026 14:29:03 +0100 Subject: [PATCH 6/8] Update AdminChatChannelController.java Co-authored-by: DMK <81445555+imDMK@users.noreply.github.com> --- .../core/feature/adminchat/AdminChatChannelController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/adminchat/AdminChatChannelController.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/adminchat/AdminChatChannelController.java index a4e4c15a6..a0dafdb2b 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/feature/adminchat/AdminChatChannelController.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/adminchat/AdminChatChannelController.java @@ -24,7 +24,7 @@ final class AdminChatChannelController implements Listener { } @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true) - void onPlayerChat(@NonNull AsyncPlayerChatEvent event) { + void onPlayerChat(AsyncPlayerChatEvent event) { Player player = event.getPlayer(); if (!this.adminChatService.hasEnabledChat(player.getUniqueId())) { From 3fc32c7af6469317957f0cdf02a0f2ee908c55ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20K=C4=99dziora?= <77227023+Jakubk15@users.noreply.github.com> Date: Mon, 2 Feb 2026 14:29:31 +0100 Subject: [PATCH 7/8] Update AdminChatChannelController.java Co-authored-by: DMK <81445555+imDMK@users.noreply.github.com> --- .../core/feature/adminchat/AdminChatChannelController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/adminchat/AdminChatChannelController.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/adminchat/AdminChatChannelController.java index a0dafdb2b..989a60cb6 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/feature/adminchat/AdminChatChannelController.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/adminchat/AdminChatChannelController.java @@ -18,7 +18,7 @@ final class AdminChatChannelController implements Listener { private final Scheduler scheduler; @Inject - AdminChatChannelController(@NonNull AdminChatService adminChatService, Scheduler scheduler) { + AdminChatChannelController(@NonNull AdminChatService adminChatService, @NonNull Scheduler scheduler) { this.adminChatService = adminChatService; this.scheduler = scheduler; } From 8057ad328052acadcd18f3fc89856a6dfd95038c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20K=C4=99dziora?= <77227023+Jakubk15@users.noreply.github.com> Date: Mon, 2 Feb 2026 14:29:52 +0100 Subject: [PATCH 8/8] Update InstantExpiry.java Co-authored-by: DMK <81445555+imDMK@users.noreply.github.com> --- .../src/main/java/com/eternalcode/core/delay/InstantExpiry.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/delay/InstantExpiry.java b/eternalcore-core/src/main/java/com/eternalcode/core/delay/InstantExpiry.java index a52d88e31..f1d19f34d 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/delay/InstantExpiry.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/delay/InstantExpiry.java @@ -5,7 +5,7 @@ import java.time.Instant; import org.jspecify.annotations.NonNull; -class InstantExpiry implements Expiry<@NonNull T, @NonNull Instant> { +class InstantExpiry implements Expiry { @Override public long expireAfterCreate(@NonNull T key, @NonNull Instant expireTime, long currentTime) {