Fix BungeeCord not setting an premium uuid (Fixes #35)

This commit is contained in:
games647
2016-07-09 13:30:43 +02:00
parent bb2e60f6e1
commit 0745957e79
5 changed files with 17 additions and 14 deletions

View File

@ -7,6 +7,7 @@
* Fix player entry is not saved if namechangecheck is enabled * Fix player entry is not saved if namechangecheck is enabled
* Fix skin applies for third-party plugins * Fix skin applies for third-party plugins
* Switch to mcapi.ca for uuid lookups * Switch to mcapi.ca for uuid lookups
* Fix BungeeCord not setting an premium uuid
######1.6.2 ######1.6.2

View File

@ -57,8 +57,9 @@ public class NameCheckTask implements Runnable {
//user not exists in the db //user not exists in the db
try { try {
if (plugin.getConfig().getBoolean("nameChangeCheck") || (plugin.getConfig().getBoolean("autoRegister") boolean isRegistered = plugin.getAuthPlugin().isRegistered(username);
&& plugin.getAuthPlugin().isRegistered(username))) { if (plugin.getConfig().getBoolean("nameChangeCheck")
|| (plugin.getConfig().getBoolean("autoRegister") && isRegistered)) {
premiumUUID = plugin.getCore().getMojangApiConnector().getPremiumUUID(username); 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); plugin.getLogger().log(Level.FINER, "Player {0} uses a premium username", username);
enablePremiumLogin(profile, false); enablePremiumLogin(profile, false);
return; return;

View File

@ -47,8 +47,9 @@ public class ProtocolSupportListener implements Listener {
//user not exists in the db //user not exists in the db
try { try {
if (plugin.getConfig().getBoolean("nameChangeCheck") || (plugin.getConfig().getBoolean("autoRegister") boolean isRegistered = plugin.getAuthPlugin().isRegistered(username);
&& plugin.getAuthPlugin().isRegistered(username))) { if (plugin.getConfig().getBoolean("nameChangeCheck")
|| (plugin.getConfig().getBoolean("autoRegister") && isRegistered)) {
premiumUUID = plugin.getCore().getMojangApiConnector().getPremiumUUID(username); premiumUUID = plugin.getCore().getMojangApiConnector().getPremiumUUID(username);
} }
@ -61,8 +62,7 @@ public class ProtocolSupportListener implements Listener {
} }
} }
if (premiumUUID != null if (premiumUUID != null && plugin.getConfig().getBoolean("autoRegister") && !isRegistered) {
&& plugin.getConfig().getBoolean("autoRegister") && !authPlugin.isRegistered(username)) {
plugin.getLogger().log(Level.FINER, "Player {0} uses a premium username", username); plugin.getLogger().log(Level.FINER, "Player {0} uses a premium username", username);
startPremiumSession(username, loginStartEvent, false, profile); startPremiumSession(username, loginStartEvent, false, profile);
return; return;

View File

@ -68,13 +68,12 @@ public class PluginMessageListener implements Listener {
if (forPlayer.getPendingConnection().isOnlineMode()) { if (forPlayer.getPendingConnection().isOnlineMode()) {
//bukkit module successfully received and force logged in the user //bukkit module successfully received and force logged in the user
//update only on success to prevent corrupt data //update only on success to prevent corrupt data
PlayerProfile playerProfile = plugin.getCore().getStorage().loadProfile(forPlayer.getName());
BungeeLoginSession loginSession = plugin.getSession().get(forPlayer.getPendingConnection()); BungeeLoginSession loginSession = plugin.getSession().get(forPlayer.getPendingConnection());
PlayerProfile playerProfile = loginSession.getProfile();
loginSession.setRegistered(true); loginSession.setRegistered(true);
if (!loginSession.isAlreadySaved()) { if (!loginSession.isAlreadySaved()) {
playerProfile.setPremium(true); playerProfile.setPremium(true);
//we override this in the loginevent
plugin.getCore().getStorage().save(playerProfile); plugin.getCore().getStorage().save(playerProfile);
loginSession.setAlreadySaved(true); loginSession.setAlreadySaved(true);
} }

View File

@ -57,11 +57,13 @@ public class ForceLoginTask implements Runnable {
//save will happen on success message from bukkit //save will happen on success message from bukkit
sendBukkitLoginNotification(autoRegister); sendBukkitLoginNotification(autoRegister);
} }
} else //cracked player } else {
if (!session.isAlreadySaved()) { //cracked player
playerProfile.setPremium(false); if (!session.isAlreadySaved()) {
plugin.getCore().getStorage().save(playerProfile); playerProfile.setPremium(false);
session.setAlreadySaved(true); plugin.getCore().getStorage().save(playerProfile);
session.setAlreadySaved(true);
}
} }
} catch (Exception ex) { } catch (Exception ex) {
plugin.getLogger().log(Level.INFO, "ERROR ON FORCE LOGIN", ex); plugin.getLogger().log(Level.INFO, "ERROR ON FORCE LOGIN", ex);