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 skin applies for third-party plugins
* Switch to mcapi.ca for uuid lookups
* Fix BungeeCord not setting an premium uuid
######1.6.2

View File

@ -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;

View File

@ -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;

View File

@ -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);
}

View File

@ -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);