diff --git a/bungee/src/main/java/com/github/games647/fastlogin/bungee/hooks/BungeeAuthHook.java b/bungee/src/main/java/com/github/games647/fastlogin/bungee/hooks/BungeeAuthHook.java index 65899b7a..c59c132d 100644 --- a/bungee/src/main/java/com/github/games647/fastlogin/bungee/hooks/BungeeAuthHook.java +++ b/bungee/src/main/java/com/github/games647/fastlogin/bungee/hooks/BungeeAuthHook.java @@ -28,6 +28,12 @@ public class BungeeAuthHook implements BungeeAuthPlugin { @Override public boolean forceLogin(ProxiedPlayer player) { //https://github.com/MatteCarra/BungeeAuth/blob/master/src/me/vik1395/BungeeAuth/Login.java#L92-95 + if (Main.plonline.contains(player.getName())) { + Main.plugin.getLogger().log(Level.INFO, "Cannot force login player {0}, because he/she is already online" + , player.getName()); + return true; + } + Main.plonline.add(player.getName()); //renamed from ct to databaseConnection diff --git a/bungee/src/main/java/com/github/games647/fastlogin/bungee/tasks/ForceLoginTask.java b/bungee/src/main/java/com/github/games647/fastlogin/bungee/tasks/ForceLoginTask.java index 0c28fe21..d8cb84bf 100644 --- a/bungee/src/main/java/com/github/games647/fastlogin/bungee/tasks/ForceLoginTask.java +++ b/bungee/src/main/java/com/github/games647/fastlogin/bungee/tasks/ForceLoginTask.java @@ -48,10 +48,8 @@ public class ForceLoginTask implements Runnable { //save will happen on success message from bukkit sendBukkitLoginNotification(autoRegister); } else if (session.needsRegistration()) { - session.setAlreadyLogged(true); forceRegister(session, authPlugin); } else if (authPlugin.forceLogin(player)) { - session.setAlreadyLogged(true); forceLogin(session, authPlugin); } } else { @@ -68,10 +66,15 @@ public class ForceLoginTask implements Runnable { } private void forceRegister(BungeeLoginSession session, BungeeAuthPlugin authPlugin) { + if (session.isAlreadyLogged()) { + sendBukkitLoginNotification(true); + return; + } + session.setAlreadyLogged(true); String password = plugin.generateStringPassword(); - if (session.isAlreadyLogged()|| authPlugin.forceRegister(player, password)) { + if (authPlugin.forceRegister(player, password)) { //save will happen on success message from bukkit sendBukkitLoginNotification(true); String message = plugin.getCore().getMessage("auto-register"); @@ -83,9 +86,13 @@ public class ForceLoginTask implements Runnable { } private void forceLogin(BungeeLoginSession session, BungeeAuthPlugin authPlugin) { - session.setAlreadyLogged(true); + if (session.isAlreadyLogged()) { + sendBukkitLoginNotification(false); + return; + } - if (session.isAlreadyLogged() || authPlugin.forceLogin(player)) { + session.setAlreadyLogged(true); + if (authPlugin.forceLogin(player)) { //save will happen on success message from bukkit sendBukkitLoginNotification(false); String message = plugin.getCore().getMessage("auto-login");