diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/ConnectionListener.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/ConnectionListener.java index 61161d5c..05c9a18f 100644 --- a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/ConnectionListener.java +++ b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/ConnectionListener.java @@ -81,17 +81,20 @@ public class ConnectionListener implements Listener { // cases: Paper (firing BungeeCord message before PlayerJoinEvent) or not running BungeeCord and already // having the login session from the login process BukkitLoginSession session = plugin.getSession(player.getAddress()); - FloodgateService floodgateService = plugin.getFloodgateService(); - if (floodgateService != null) { - FloodgatePlayer floodgatePlayer = floodgateService.getBedrockPlayer(player.getUniqueId()); - if (floodgatePlayer != null) { - Runnable floodgateAuthTask = new FloodgateAuthTask(plugin.getCore(), player, floodgatePlayer); - Bukkit.getScheduler().runTaskAsynchronously(plugin, floodgateAuthTask); - return; - } - } if (session == null) { + // Floodgate players usually don't have a session at this point + // exception: if force login by bungee message had been delayed + FloodgateService floodgateService = plugin.getFloodgateService(); + if (floodgateService != null) { + FloodgatePlayer floodgatePlayer = floodgateService.getBedrockPlayer(player.getUniqueId()); + if (floodgatePlayer != null) { + Runnable floodgateAuthTask = new FloodgateAuthTask(plugin.getCore(), player, floodgatePlayer); + Bukkit.getScheduler().runTaskAsynchronously(plugin, floodgateAuthTask); + return; + } + } + String sessionId = plugin.getSessionId(player.getAddress()); plugin.getLog().info("No on-going login session for player: {} with ID {}", player, sessionId); } else {