mirror of
https://github.com/TuxCoding/FastLogin.git
synced 2025-07-29 18:27:36 +02:00
Merge pull request #602 from Smart123s/fg-bungee-handshake
Fix plugin messages for Floodgate players
This commit is contained in:
@ -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());
|
||||
|
@ -73,10 +73,20 @@ public abstract class FloodgateManagement<P extends C, C, L extends LoginSession
|
||||
|
||||
// check if the Bedrock player is linked to a Java account
|
||||
isLinked = floodgatePlayer.getLinkedPlayer() != null;
|
||||
profile = core.getStorage().loadProfile(username);
|
||||
AuthPlugin<P> 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<P extends C, C, L extends LoginSession
|
||||
}
|
||||
|
||||
//logging in from bedrock for a second time threw an error with UUID
|
||||
profile = core.getStorage().loadProfile(username);
|
||||
if (profile == null) {
|
||||
profile = new StoredProfile(getUUID(player), username, true, getAddress(player).toString());
|
||||
}
|
||||
|
Reference in New Issue
Block a user