Fix race condition when waiting for bukkit message while
bungee redirects player
This commit is contained in:
1 parent
596caa0573
commit
36d7564c3a
7 files changed
+22
-7
No files matched your search
@@ -6,6 +6,7 @@ import com.github.games647.fastlogin.core.PlayerProfile;
|
||||
public class BungeeLoginSession extends LoginSession {
|
||||
|
||||
private boolean alreadySaved;
|
||||
private boolean alreadyLogged;
|
||||
|
||||
public BungeeLoginSession(String username, boolean registered, PlayerProfile profile) {
|
||||
super(username, registered, profile);
|
||||
@@ -22,4 +23,12 @@ public class BungeeLoginSession extends LoginSession {
|
||||
public void setAlreadySaved(boolean alreadySaved) {
|
||||
this.alreadySaved = alreadySaved;
|
||||
}
|
||||
|
||||
public boolean isAlreadyLogged() {
|
||||
return alreadyLogged;
|
||||
}
|
||||
|
||||
public void setAlreadyLogged(boolean alreadyLogged) {
|
||||
this.alreadyLogged = alreadyLogged;
|
||||
}
|
||||
}
|
||||
@@ -48,8 +48,10 @@ 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 {
|
||||
@@ -66,8 +68,10 @@ public class ForceLoginTask implements Runnable {
|
||||
}
|
||||
|
||||
private void forceRegister(BungeeLoginSession session, BungeeAuthPlugin authPlugin) {
|
||||
session.setAlreadyLogged(true);
|
||||
|
||||
String password = plugin.generateStringPassword();
|
||||
if (session.isAlreadySaved() || authPlugin.forceRegister(player, password)) {
|
||||
if (session.isAlreadyLogged()|| authPlugin.forceRegister(player, password)) {
|
||||
//save will happen on success message from bukkit
|
||||
sendBukkitLoginNotification(true);
|
||||
String message = plugin.getCore().getMessage("auto-register");
|
||||
@@ -79,7 +83,9 @@ public class ForceLoginTask implements Runnable {
|
||||
}
|
||||
|
||||
private void forceLogin(BungeeLoginSession session, BungeeAuthPlugin authPlugin) {
|
||||
if (session.isAlreadySaved() || authPlugin.forceLogin(player)) {
|
||||
session.setAlreadyLogged(true);
|
||||
|
||||
if (session.isAlreadyLogged() || authPlugin.forceLogin(player)) {
|
||||
//save will happen on success message from bukkit
|
||||
sendBukkitLoginNotification(false);
|
||||
String message = plugin.getCore().getMessage("auto-login");
|
||||
|
||||
Reference in new issue
Block a user