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
This commit is contained in:
Smart123s
2021-03-22 17:22:51 +01:00
parent 305700497e
commit 07da8fc76a

View File

@ -50,26 +50,33 @@ public class FloodgateAuthTask implements Runnable {
String autoLoginFloodgate = plugin.getCore().getConfig().getString("autoLoginFloodgate"); String autoLoginFloodgate = plugin.getCore().getConfig().getString("autoLoginFloodgate");
boolean autoRegisterFloodgate = plugin.getCore().getConfig().getBoolean("autoRegisterFloodgate"); boolean autoRegisterFloodgate = plugin.getCore().getConfig().getBoolean("autoRegisterFloodgate");
// create fake session to make auto login work boolean isRegistered;
// the player should only be registered (=> parm. registered = false) if
// the player is not registered and autoRegister is enabled in the config
try { try {
BukkitLoginSession session = new BukkitLoginSession(player.getName(), authPlugin.isRegistered(player.getName()) || !autoRegisterFloodgate); isRegistered = authPlugin.isRegistered(player.getName());
// 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);
} catch (Exception e) { } catch (Exception e) {
plugin.getLog().error( plugin.getLog().error(
"An error has occured while checking if player {} is registered", "An error has occured while checking if player {} is registered",
player.getName()); player.getName());
return; 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) { public static GeyserSession getGeyserPlayer(String username) {
if (Bukkit.getServer().getPluginManager().isPluginEnabled("floodgate-bukkit") && if (Bukkit.getServer().getPluginManager().isPluginEnabled("floodgate-bukkit") &&
Bukkit.getServer().getPluginManager().isPluginEnabled("Geyser-Spigot") && Bukkit.getServer().getPluginManager().isPluginEnabled("Geyser-Spigot") &&