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 6938ed85f..4a1f86479 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 @@ -167,6 +167,13 @@ public void run() { return; } + // Set the UUID for the player login from floodgate. + if (isLinked && profile.isOnlinemodePreferred()) { + profile.setId(floodgatePlayer.getCorrectUniqueId()); + core.getPlugin().getLog().info( + "Player {} login as a Floodgate linked premium user (UUID: {})", + username, floodgatePlayer.getCorrectUniqueId()); + } //start Bukkit/Bungee specific tasks startLogin(); diff --git a/core/src/main/java/com/github/games647/fastlogin/core/shared/ForceLoginManagement.java b/core/src/main/java/com/github/games647/fastlogin/core/shared/ForceLoginManagement.java index 863d9803e..ca7c66e15 100644 --- a/core/src/main/java/com/github/games647/fastlogin/core/shared/ForceLoginManagement.java +++ b/core/src/main/java/com/github/games647/fastlogin/core/shared/ForceLoginManagement.java @@ -80,7 +80,13 @@ public void run() { if (success) { //update only on success to prevent corrupt data if (playerProfile != null) { - playerProfile.setId(session.getUuid()); + if (session.getUuid() == null) { + // Set session ID from floodgatePlayer.getCorrectUniqueId() + session.setUuid(playerProfile.getId()); + } else { + // Set player UUID to session UUID + playerProfile.setId(session.getUuid()); + } playerProfile.setOnlinemodePreferred(true); storage.save(playerProfile); }