diff --git a/bungee/src/main/java/com/github/games647/fastlogin/bungee/listener/PluginMessageListener.java b/bungee/src/main/java/com/github/games647/fastlogin/bungee/listener/PluginMessageListener.java index 3b2e8f0e..5099785c 100644 --- a/bungee/src/main/java/com/github/games647/fastlogin/bungee/listener/PluginMessageListener.java +++ b/bungee/src/main/java/com/github/games647/fastlogin/bungee/listener/PluginMessageListener.java @@ -36,6 +36,9 @@ import com.github.games647.fastlogin.core.shared.FastLoginCore; import com.google.common.io.ByteArrayDataInput; import com.google.common.io.ByteStreams; +import org.geysermc.floodgate.api.FloodgateApi; +import org.geysermc.floodgate.api.player.FloodgatePlayer; + import java.util.Arrays; import net.md_5.bungee.api.CommandSender; @@ -115,7 +118,13 @@ public class PluginMessageListener implements Listener { } private void onSuccessMessage(ProxiedPlayer forPlayer) { - if (forPlayer.getPendingConnection().isOnlineMode()) { + //check if player is using Floodgate + FloodgatePlayer floodgatePlayer = null; + if (plugin.isPluginInstalled("floodgate")) { + floodgatePlayer = FloodgateApi.getInstance().getPlayer(forPlayer.getUniqueId()); + } + + if (forPlayer.getPendingConnection().isOnlineMode() || floodgatePlayer != null){ //bukkit module successfully received and force logged in the user //update only on success to prevent corrupt data BungeeLoginSession loginSession = plugin.getSession().get(forPlayer.getPendingConnection()); diff --git a/core/src/main/java/com/github/games647/fastlogin/core/shared/FloodgateManagement.java b/core/src/main/java/com/github/games647/fastlogin/core/shared/FloodgateManagement.java index 92cae665..3b36c3ea 100644 --- a/core/src/main/java/com/github/games647/fastlogin/core/shared/FloodgateManagement.java +++ b/core/src/main/java/com/github/games647/fastlogin/core/shared/FloodgateManagement.java @@ -73,10 +73,20 @@ public abstract class FloodgateManagement
authPlugin = core.getAuthPluginHook(); - + try { - isRegistered = authPlugin.isRegistered(username); + //maybe Bungee without auth plugin + if (authPlugin == null) { + if (profile != null) { + isRegistered = profile.isPremium(); + } else { + isRegistered = false; + } + } else { + isRegistered = authPlugin.isRegistered(username); + } } catch (Exception ex) { core.getPlugin().getLog().error( "An error has occured while checking if player {} is registered", @@ -108,7 +118,6 @@ public abstract class FloodgateManagement