From 548e47f85ae1e68c2f9f9c96f18b1e2181f9d221 Mon Sep 17 00:00:00 2001 From: Adrian <68704415+4drian3d@users.noreply.github.com> Date: Fri, 21 Apr 2023 03:30:02 -0500 Subject: [PATCH] fix: Fixed NullPointerException in Player Join Listener (#47) --- .../java/net/william278/velocitab/tab/PlayerTabList.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/william278/velocitab/tab/PlayerTabList.java b/src/main/java/net/william278/velocitab/tab/PlayerTabList.java index ec0838d..150318a 100644 --- a/src/main/java/net/william278/velocitab/tab/PlayerTabList.java +++ b/src/main/java/net/william278/velocitab/tab/PlayerTabList.java @@ -27,6 +27,7 @@ import com.velocitypowered.api.proxy.Player; import com.velocitypowered.api.proxy.ServerConnection; import com.velocitypowered.api.proxy.player.TabList; import com.velocitypowered.api.proxy.player.TabListEntry; +import com.velocitypowered.api.proxy.server.RegisteredServer; import com.velocitypowered.api.proxy.server.ServerInfo; import com.velocitypowered.api.scheduler.ScheduledTask; import net.kyori.adventure.text.Component; @@ -67,7 +68,8 @@ public class PlayerTabList { plugin.getScoreboardManager().ifPresent(manager -> manager.resetCache(joined)); // Remove the player from the tracking list if they are switching servers - if (event.getPreviousServer() == null) { + final RegisteredServer previousServer = event.getPreviousServer(); + if (previousServer == null) { players.removeIf(player -> player.getPlayer().getUniqueId().equals(joined.getUniqueId())); } @@ -79,7 +81,7 @@ public class PlayerTabList { .orElse("?")); // If the server is not in a group, use fallback. // If fallback is disabled, permit the player to switch excluded servers without header or footer override - if (serversInGroup.isEmpty() && !this.fallbackServers.contains(event.getPreviousServer().getServerInfo().getName())) { + if (serversInGroup.isEmpty() && (previousServer != null && !this.fallbackServers.contains(previousServer.getServerInfo().getName()))) { event.getPlayer().sendPlayerListHeaderAndFooter(Component.empty(), Component.empty()); return; }