From 27a68339ed3d2d1b9c76d0432f7b4fe5136c0ffe Mon Sep 17 00:00:00 2001 From: YouHaveTrouble Date: Thu, 18 Apr 2024 15:16:14 +0200 Subject: [PATCH] Add null checks for playerData in PlayerListener Added null checks for playerData in the methods onPlayerQuit, onPlayerTeleport and onPlayerDeath of the PlayerListener class. This addresses potential issues where plugins are using players as entities, which can sometimes cause playerData to be null. --- .../me/youhavetrouble/preventstabby/data/PlayerListener.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/me/youhavetrouble/preventstabby/data/PlayerListener.java b/src/main/java/me/youhavetrouble/preventstabby/data/PlayerListener.java index 7b82cf8..36b3c85 100644 --- a/src/main/java/me/youhavetrouble/preventstabby/data/PlayerListener.java +++ b/src/main/java/me/youhavetrouble/preventstabby/data/PlayerListener.java @@ -46,6 +46,7 @@ public class PlayerListener implements Listener { Player player = event.getPlayer(); if (!PreventStabby.getPlugin().getConfigCache().punish_for_combat_logout) return; PlayerData playerData = PreventStabby.getPlugin().getPlayerManager().getPlayer(player.getUniqueId()); + if (playerData == null) return; if (!playerData.isInCombat()) return; player.setHealth(0); if (!PreventStabby.getPlugin().getConfigCache().punish_for_combat_logout_announce) return; @@ -56,6 +57,7 @@ public class PlayerListener implements Listener { public void onPlayerTeleport(PlayerTeleportEvent event) { Player player = event.getPlayer(); PlayerData playerData = PreventStabby.getPlugin().getPlayerManager().getPlayer(player.getUniqueId()); + if (playerData == null) return; // Plugins using players as entities can cause this state playerData.setTeleportTimestamp(Instant.now().getEpochSecond()); } @@ -63,7 +65,7 @@ public class PlayerListener implements Listener { public void onPlayerDeath(EntityDeathEvent event) { if (!(event.getEntity() instanceof Player player)) return; PlayerData playerData = PreventStabby.getPlugin().getPlayerManager().getPlayer(player.getUniqueId()); - if (playerData == null) return; + if (playerData == null) return; // Plugins using players as entities can cause this state playerData.markNotInCombat(); }