diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hook/AuthMeHook.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hook/AuthMeHook.java index f872c780..dbfd4df0 100644 --- a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hook/AuthMeHook.java +++ b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hook/AuthMeHook.java @@ -42,6 +42,7 @@ public class AuthMeHook implements AuthPlugin, Listener { @Override public boolean forceLogin(Player player) { if (AuthMeApi.getInstance().isAuthenticated(player)) { + plugin.getLog().warn(ALREADY_AUTHENTICATED, player); return false; } diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hook/LogItHook.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hook/LogItHook.java index 26321909..a41845e7 100644 --- a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hook/LogItHook.java +++ b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hook/LogItHook.java @@ -1,5 +1,6 @@ package com.github.games647.fastlogin.bukkit.hook; +import com.github.games647.fastlogin.bukkit.FastLoginBukkit; import com.github.games647.fastlogin.core.hooks.AuthPlugin; import io.github.lucaseasedup.logit.CancelledState; @@ -22,11 +23,21 @@ import org.bukkit.entity.Player; */ public class LogItHook implements AuthPlugin { + private final FastLoginBukkit plugin; + + public LogItHook(FastLoginBukkit plugin) { + this.plugin = plugin; + } + @Override public boolean forceLogin(Player player) { SessionManager sessionManager = LogItCore.getInstance().getSessionManager(); - return sessionManager.isSessionAlive(player) - || sessionManager.startSession(player) == CancelledState.NOT_CANCELLED; + if (sessionManager.isSessionAlive(player)) { + plugin.getLog().warn(ALREADY_AUTHENTICATED, player); + return false; + } + + return sessionManager.startSession(player) == CancelledState.NOT_CANCELLED; } @Override diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hook/LoginSecurityHook.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hook/LoginSecurityHook.java index 1b0ca5c5..a596cce4 100644 --- a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hook/LoginSecurityHook.java +++ b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hook/LoginSecurityHook.java @@ -30,6 +30,11 @@ public class LoginSecurityHook implements AuthPlugin { @Override public boolean forceLogin(Player player) { PlayerSession session = LoginSecurity.getSessionManager().getPlayerSession(player); + if (session.isAuthorized()) { + plugin.getLog().warn(ALREADY_AUTHENTICATED, player); + return true; + } + return session.isAuthorized() || session.performAction(new LoginAction(AuthService.PLUGIN, plugin)).isSuccess(); } diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hook/UltraAuthHook.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hook/UltraAuthHook.java index 6caa8377..40c5fa48 100644 --- a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hook/UltraAuthHook.java +++ b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hook/UltraAuthHook.java @@ -34,7 +34,7 @@ public class UltraAuthHook implements AuthPlugin { //not thread-safe Future future = Bukkit.getScheduler().callSyncMethod(plugin, () -> { if (UltraAuthAPI.isAuthenticated(player)) { - return true; + return false; } UltraAuthAPI.authenticatedPlayer(player); diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hook/xAuthHook.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hook/xAuthHook.java index 2c5a2f5b..785afb68 100644 --- a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hook/xAuthHook.java +++ b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/hook/xAuthHook.java @@ -35,7 +35,8 @@ public class xAuthHook implements AuthPlugin { xAuthPlayer xAuthPlayer = xAuthPlugin.getPlayerManager().getPlayer(player); if (xAuthPlayer != null) { if (xAuthPlayer.isAuthenticated()) { - return true; + plugin.getLog().warn("Player {} is already authenticated", player); + return false; } //we checked that the player is premium (paid account) diff --git a/core/src/main/java/com/github/games647/fastlogin/core/hooks/AuthPlugin.java b/core/src/main/java/com/github/games647/fastlogin/core/hooks/AuthPlugin.java index dfbcead2..763e50aa 100644 --- a/core/src/main/java/com/github/games647/fastlogin/core/hooks/AuthPlugin.java +++ b/core/src/main/java/com/github/games647/fastlogin/core/hooks/AuthPlugin.java @@ -8,6 +8,8 @@ package com.github.games647.fastlogin.core.hooks; */ public interface AuthPlugin

{ + String ALREADY_AUTHENTICATED = "Player {} is already authenticated. Cancelling force login."; + /** * Login the premium (paid account) player after the player joined successfully the server. *