From 9d1ecdf52c7aed8cb1a87ed647bbe42f44d910d6 Mon Sep 17 00:00:00 2001 From: rtm516 Date: Thu, 10 Dec 2020 10:15:38 +0000 Subject: [PATCH] Fix NPE when user disconnects from embedded Geyser server --- .../connect/proxy/ProxyConnectorServerEventHandler.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/main/java/org/geysermc/connect/proxy/ProxyConnectorServerEventHandler.java b/src/main/java/org/geysermc/connect/proxy/ProxyConnectorServerEventHandler.java index 7737270..a70c2a1 100644 --- a/src/main/java/org/geysermc/connect/proxy/ProxyConnectorServerEventHandler.java +++ b/src/main/java/org/geysermc/connect/proxy/ProxyConnectorServerEventHandler.java @@ -53,6 +53,14 @@ public class ProxyConnectorServerEventHandler extends ConnectorServerEventHandle // Add another disconnect handler to remove the player on final disconnect bedrockServerSession.addDisconnectHandler(disconnectReason -> { + // Make sure nothing is null before locating the player + if (MasterServer.getInstance() == null + || MasterServer.getInstance().getPlayers().size() == 0 + || session.getAuthData() == null + || session.getAuthData().getXboxUUID() == null) { + return; + } + Player player = MasterServer.getInstance().getPlayers().get(session.getAuthData().getXboxUUID()); if (player != null) { MasterServer.getInstance().getLogger().debug("Player disconnected from Geyser proxy: " + player.getDisplayName() + " (" + disconnectReason + ")");