diff --git a/CHANGELOG.md b/CHANGELOG.md index c92c18d3..b7dbd555 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ * Fix player entry is not saved if namechangecheck is enabled * Fix skin applies for third-party plugins * Switch to mcapi.ca for uuid lookups +* Fix BungeeCord not setting an premium uuid ######1.6.2 diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocollib/NameCheckTask.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocollib/NameCheckTask.java index b83697e1..cfca6b87 100644 --- a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocollib/NameCheckTask.java +++ b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocollib/NameCheckTask.java @@ -57,8 +57,9 @@ public class NameCheckTask implements Runnable { //user not exists in the db try { - if (plugin.getConfig().getBoolean("nameChangeCheck") || (plugin.getConfig().getBoolean("autoRegister") - && plugin.getAuthPlugin().isRegistered(username))) { + boolean isRegistered = plugin.getAuthPlugin().isRegistered(username); + if (plugin.getConfig().getBoolean("nameChangeCheck") + || (plugin.getConfig().getBoolean("autoRegister") && isRegistered)) { premiumUUID = plugin.getCore().getMojangApiConnector().getPremiumUUID(username); } @@ -71,7 +72,7 @@ public class NameCheckTask implements Runnable { } } - if (premiumUUID != null && plugin.getConfig().getBoolean("autoRegister")) { + if (premiumUUID != null && plugin.getConfig().getBoolean("autoRegister") && !isRegistered) { plugin.getLogger().log(Level.FINER, "Player {0} uses a premium username", username); enablePremiumLogin(profile, false); return; diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocolsupport/ProtocolSupportListener.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocolsupport/ProtocolSupportListener.java index 762ca9b2..6af68d3d 100644 --- a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocolsupport/ProtocolSupportListener.java +++ b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocolsupport/ProtocolSupportListener.java @@ -47,8 +47,9 @@ public class ProtocolSupportListener implements Listener { //user not exists in the db try { - if (plugin.getConfig().getBoolean("nameChangeCheck") || (plugin.getConfig().getBoolean("autoRegister") - && plugin.getAuthPlugin().isRegistered(username))) { + boolean isRegistered = plugin.getAuthPlugin().isRegistered(username); + if (plugin.getConfig().getBoolean("nameChangeCheck") + || (plugin.getConfig().getBoolean("autoRegister") && isRegistered)) { premiumUUID = plugin.getCore().getMojangApiConnector().getPremiumUUID(username); } @@ -61,8 +62,7 @@ public class ProtocolSupportListener implements Listener { } } - if (premiumUUID != null - && plugin.getConfig().getBoolean("autoRegister") && !authPlugin.isRegistered(username)) { + if (premiumUUID != null && plugin.getConfig().getBoolean("autoRegister") && !isRegistered) { plugin.getLogger().log(Level.FINER, "Player {0} uses a premium username", username); startPremiumSession(username, loginStartEvent, false, profile); return; 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 c32a4ecf..7c3351dc 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 @@ -68,13 +68,12 @@ public class PluginMessageListener implements Listener { if (forPlayer.getPendingConnection().isOnlineMode()) { //bukkit module successfully received and force logged in the user //update only on success to prevent corrupt data - PlayerProfile playerProfile = plugin.getCore().getStorage().loadProfile(forPlayer.getName()); BungeeLoginSession loginSession = plugin.getSession().get(forPlayer.getPendingConnection()); + PlayerProfile playerProfile = loginSession.getProfile(); loginSession.setRegistered(true); if (!loginSession.isAlreadySaved()) { playerProfile.setPremium(true); - //we override this in the loginevent plugin.getCore().getStorage().save(playerProfile); loginSession.setAlreadySaved(true); } diff --git a/bungee/src/main/java/com/github/games647/fastlogin/bungee/tasks/ForceLoginTask.java b/bungee/src/main/java/com/github/games647/fastlogin/bungee/tasks/ForceLoginTask.java index 41c57c40..cfbbacfd 100644 --- a/bungee/src/main/java/com/github/games647/fastlogin/bungee/tasks/ForceLoginTask.java +++ b/bungee/src/main/java/com/github/games647/fastlogin/bungee/tasks/ForceLoginTask.java @@ -57,11 +57,13 @@ public class ForceLoginTask implements Runnable { //save will happen on success message from bukkit sendBukkitLoginNotification(autoRegister); } - } else //cracked player - if (!session.isAlreadySaved()) { - playerProfile.setPremium(false); - plugin.getCore().getStorage().save(playerProfile); - session.setAlreadySaved(true); + } else { + //cracked player + if (!session.isAlreadySaved()) { + playerProfile.setPremium(false); + plugin.getCore().getStorage().save(playerProfile); + session.setAlreadySaved(true); + } } } catch (Exception ex) { plugin.getLogger().log(Level.INFO, "ERROR ON FORCE LOGIN", ex);