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 546e0d80..5ddad9bc 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 @@ -48,20 +48,23 @@ 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()); - FloodgatePlayer floodgatePlayer = FloodgateAPI.getPlayer(player.getUniqueId()); - if (floodgatePlayer != null) { - StoredProfile profile = plugin.getCore().getStorage().loadProfile(player.getName()); + + if(Bukkit.getServer().getPluginManager().getPlugin("Geyser-Spigot") != null && + Bukkit.getServer().getPluginManager().getPlugin("floodgate-bukkit") != null) { + //TODO: Does this return null if a player is connected through Geyser Online mode? + FloodgatePlayer floodgatePlayer = FloodgateAPI.getPlayer(player.getUniqueId()); + if (floodgatePlayer != null) { + StoredProfile profile = plugin.getCore().getStorage().loadProfile(player.getName()); - //create fake session to make auto login work - session = new BukkitLoginSession(player.getName(), profile.isSaved()); - session.setVerified(true); - - //start auto login - //TODO: configurate auto login for floodgate players - //TODO: fix bug: registering as bedrock player breaks java auto login - Runnable forceLoginTask = new ForceLoginTask(plugin.getCore(), player, session); - Bukkit.getScheduler().runTaskAsynchronously(plugin, forceLoginTask); - } else if (session == null) { + //create fake session to make auto login work + session = new BukkitLoginSession(player.getName(), profile.isSaved()); + session.setVerified(true); + + //TODO: configurate auto login for floodgate players + //TODO: fix bug: registering as bedrock player breaks java auto login + } + } + if (session == null) { String sessionId = plugin.getSessionId(player.getAddress()); plugin.getLog().info("No on-going login session for player: {} with ID {}", player, sessionId); } else { diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocollib/NameCheckTask.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocollib/NameCheckTask.java index 2413dfb3..48e7cf87 100644 --- a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocollib/NameCheckTask.java +++ b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocollib/NameCheckTask.java @@ -12,6 +12,7 @@ import com.github.games647.fastlogin.core.shared.event.FastLoginPreLoginEvent; import java.security.PublicKey; import java.util.Random; +import org.bukkit.Bukkit; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.geysermc.connector.GeyserConnector; @@ -46,15 +47,17 @@ public class NameCheckTask extends JoinManagement