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");
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") &&