From 07da8fc76ae7990e529d46e3d33133a97600240b Mon Sep 17 00:00:00 2001 From: Smart123s <28480228+Smart123s@users.noreply.github.com> Date: Mon, 22 Mar 2021 17:22:51 +0100 Subject: [PATCH] autoRegisterFloodgate will no longer try to log in unregistered BE users previously if autoRegisterFloodgate was set to false and the player was not registered, the plugin tried to auto-login the user, which has led to misleading "Failed to login" messages --- .../bukkit/task/FloodgateAuthTask.java | 31 ++++++++++++------- 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/task/FloodgateAuthTask.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/task/FloodgateAuthTask.java index e8d838dc..1d6a3a78 100644 --- a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/task/FloodgateAuthTask.java +++ b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/task/FloodgateAuthTask.java @@ -50,26 +50,33 @@ public class FloodgateAuthTask implements Runnable { String autoLoginFloodgate = plugin.getCore().getConfig().getString("autoLoginFloodgate"); boolean autoRegisterFloodgate = plugin.getCore().getConfig().getBoolean("autoRegisterFloodgate"); - // create fake session to make auto login work - // the player should only be registered (=> parm. registered = false) if - // the player is not registered and autoRegister is enabled in the config + boolean isRegistered; try { - BukkitLoginSession session = new BukkitLoginSession(player.getName(), authPlugin.isRegistered(player.getName()) || !autoRegisterFloodgate); - // enable auto login based on the value of 'autoLoginFloodgate' in config.yml - session.setVerified(autoLoginFloodgate.equalsIgnoreCase("true") - || (autoLoginFloodgate.equalsIgnoreCase("linked") && isLinked)); - - //run login task - Runnable forceLoginTask = new ForceLoginTask(plugin.getCore(), player, session); - Bukkit.getScheduler().runTaskAsynchronously(plugin, forceLoginTask); + isRegistered = authPlugin.isRegistered(player.getName()); } catch (Exception e) { plugin.getLog().error( "An error has occured while checking if player {} is registered", player.getName()); return; } + + if (!isRegistered && !autoRegisterFloodgate) { + plugin.getLog().info( + "Auto registration is disabled for Floodgate players in config.yml"); + return; + } + + BukkitLoginSession session = new BukkitLoginSession(player.getName(), isRegistered); + + // enable auto login based on the value of 'autoLoginFloodgate' in config.yml + session.setVerified(autoLoginFloodgate.equalsIgnoreCase("true") + || (autoLoginFloodgate.equalsIgnoreCase("linked") && isLinked)); + + // run login task + Runnable forceLoginTask = new ForceLoginTask(plugin.getCore(), player, session); + Bukkit.getScheduler().runTaskAsynchronously(plugin, forceLoginTask); } - + public static GeyserSession getGeyserPlayer(String username) { if (Bukkit.getServer().getPluginManager().isPluginEnabled("floodgate-bukkit") && Bukkit.getServer().getPluginManager().isPluginEnabled("Geyser-Spigot") &&