mirror of
https://github.com/TuxCoding/FastLogin.git
synced 2025-07-30 10:47:33 +02:00
Fix third party profile parsing
This commit is contained in:
@ -69,8 +69,17 @@ public class MojangApiBukkit extends MojangApiConnector {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected UUID getUUIDFromJson(String json) {
|
protected UUID getUUIDFromJson(String json) {
|
||||||
JSONObject userData = (JSONObject) JSONValue.parse(json);
|
boolean isArray = json.startsWith("[");
|
||||||
String uuid = (String) userData.get("id");
|
|
||||||
|
JSONObject mojangPlayer;
|
||||||
|
if (isArray) {
|
||||||
|
JSONArray array = (JSONArray) JSONValue.parse(json);
|
||||||
|
mojangPlayer = (JSONObject) array.get(0);
|
||||||
|
} else {
|
||||||
|
mojangPlayer = (JSONObject) JSONValue.parse(json);
|
||||||
|
}
|
||||||
|
|
||||||
|
String uuid = (String) mojangPlayer.get("id");
|
||||||
return FastLoginCore.parseId(uuid);
|
return FastLoginCore.parseId(uuid);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,15 @@ public class MojangApiBungee extends MojangApiConnector {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected UUID getUUIDFromJson(String json) {
|
protected UUID getUUIDFromJson(String json) {
|
||||||
MojangPlayer mojangPlayer = BungeeCord.getInstance().gson.fromJson(json, MojangPlayer.class);
|
boolean isArray = json.startsWith("[");
|
||||||
|
|
||||||
|
MojangPlayer mojangPlayer;
|
||||||
|
if (isArray) {
|
||||||
|
mojangPlayer = BungeeCord.getInstance().gson.fromJson(json, MojangPlayer[].class)[0];
|
||||||
|
} else {
|
||||||
|
mojangPlayer = BungeeCord.getInstance().gson.fromJson(json, MojangPlayer.class);
|
||||||
|
}
|
||||||
|
|
||||||
return FastLoginCore.parseId(mojangPlayer.getId());
|
return FastLoginCore.parseId(mojangPlayer.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,6 +23,7 @@ import net.md_5.bungee.connection.InitialHandler;
|
|||||||
import net.md_5.bungee.connection.LoginResult;
|
import net.md_5.bungee.connection.LoginResult;
|
||||||
import net.md_5.bungee.connection.LoginResult.Property;
|
import net.md_5.bungee.connection.LoginResult.Property;
|
||||||
import net.md_5.bungee.event.EventHandler;
|
import net.md_5.bungee.event.EventHandler;
|
||||||
|
import net.md_5.bungee.event.EventPriority;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Enables online mode logins for specified users and sends
|
* Enables online mode logins for specified users and sends
|
||||||
@ -47,7 +48,7 @@ public class PlayerConnectionListener implements Listener {
|
|||||||
ProxyServer.getInstance().getScheduler().runAsync(plugin, new AsyncPremiumCheck(plugin, preLoginEvent));
|
ProxyServer.getInstance().getScheduler().runAsync(plugin, new AsyncPremiumCheck(plugin, preLoginEvent));
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler(priority = EventPriority.LOW)
|
||||||
public void onLogin(LoginEvent loginEvent) {
|
public void onLogin(LoginEvent loginEvent) {
|
||||||
if (loginEvent.isCancelled()) {
|
if (loginEvent.isCancelled()) {
|
||||||
return;
|
return;
|
||||||
|
Reference in New Issue
Block a user