From fccd413cf86347db1aee981a6323e61fdb45ace2 Mon Sep 17 00:00:00 2001 From: YouHaveTrouble Date: Thu, 19 Jun 2025 11:39:54 +0200 Subject: [PATCH] prevent null players being forwarded to events and message sending logic edge case --- pom.xml | 2 +- .../preventstabby/data/PlayerManager.java | 11 ++++++----- .../preventstabby/util/PluginMessages.java | 5 +++-- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/pom.xml b/pom.xml index 506a6fd..3ad1ad2 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ me.youhavetrouble.preventstabby PreventStabby - 2.1.2 + 2.1.3 jar PreventStabby diff --git a/src/main/java/me/youhavetrouble/preventstabby/data/PlayerManager.java b/src/main/java/me/youhavetrouble/preventstabby/data/PlayerManager.java index 4ee68d1..7d0825f 100644 --- a/src/main/java/me/youhavetrouble/preventstabby/data/PlayerManager.java +++ b/src/main/java/me/youhavetrouble/preventstabby/data/PlayerManager.java @@ -46,15 +46,16 @@ public class PlayerManager { for (PlayerData playerData : playerList.values()) { if (playerData == null) continue; Player player = Bukkit.getPlayer(playerData.getPlayerUuid()); + playerData.getRelatedEntities().removeIf( uuid -> { + Entity entity = Bukkit.getEntity(uuid); + return entity == null; + }); if (player == null || !player.isOnline()) { // player not online, so check for related entities - playerData.getRelatedEntities().removeIf( uuid -> { - Entity entity = Bukkit.getEntity(uuid); - return entity == null; - }); if (playerData.getRelatedEntities().isEmpty()) continue; } - playerData.refreshCacheTime(); // Refresh cache timer if player is online + playerData.refreshCacheTime(); + if (player == null || !player.isOnline()) continue; // If player is offline, skip the rest of the logic // leaving combat logic if (playerData.getLastCombatCheckState() && !playerData.isInCombat()) { PlayerLeaveCombatEvent leaveCombatEvent = null; diff --git a/src/main/java/me/youhavetrouble/preventstabby/util/PluginMessages.java b/src/main/java/me/youhavetrouble/preventstabby/util/PluginMessages.java index 6f249e1..8c680c1 100644 --- a/src/main/java/me/youhavetrouble/preventstabby/util/PluginMessages.java +++ b/src/main/java/me/youhavetrouble/preventstabby/util/PluginMessages.java @@ -9,6 +9,7 @@ import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; import org.bukkit.Bukkit; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; import java.util.UUID; @@ -33,12 +34,12 @@ public class PluginMessages { return PreventStabby.getPlugin().getServer().getPluginManager().getPlugin("PlaceholderAPI") != null; } - public static void sendMessage(CommandSender sender, String message) { + public static void sendMessage(@NotNull CommandSender sender, String message) { if ("".equals(message)) return; sender.sendMessage(parseMessage(sender, message)); } - public static void sendActionBar(Player player, String message) { + public static void sendActionBar(@NotNull Player player, String message) { if ("".equals(message)) return; Component parsedMessage = parseMessage(player, message); player.sendActionBar(parsedMessage);