[BungeeAuth] Do not login the player if it's already logged in using

sessions
This commit is contained in:
games647
2016-08-19 21:59:27 +02:00
parent 36d7564c3a
commit 3e84ebd787
2 changed files with 18 additions and 5 deletions

View File

@@ -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

View File

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