forked from TuxCoding/FastLogin
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:
@ -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") &&
|
||||||
|
Reference in New Issue
Block a user