From 17af2cee50484ad04414419405347da37a5c2086 Mon Sep 17 00:00:00 2001 From: "ansgar [Hajen]" Date: Sun, 25 Sep 2022 14:05:51 +0200 Subject: [PATCH] Fix broken mojang api request --- .../saltymc/eaa/function/CheckFunction.java | 5 ++-- .../eaa/util/mojangApi/PlayerInfo.java | 24 ++++++++++--------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/src/main/java/net/saltymc/eaa/function/CheckFunction.java b/src/main/java/net/saltymc/eaa/function/CheckFunction.java index 6cf6da3..183df46 100644 --- a/src/main/java/net/saltymc/eaa/function/CheckFunction.java +++ b/src/main/java/net/saltymc/eaa/function/CheckFunction.java @@ -46,9 +46,8 @@ public class CheckFunction { TagFunction.loadPlayer(playerUUID, true); - List names = PlayerInfo.playerUUIDToNames(playerUUID); - for (int i = 1; i <= names.size(); i++) - source.sendFeedback(Text.of(i + ". " + names.get(i-1))); + String name = PlayerInfo.playerUUIDToName(playerUUID); + source.sendFeedback(Text.of(name)); List tags = DB_Tag.getTagsFromPlayer(DB_Player.getPlayer(playerUUID)); if (tags.size() > 0) { diff --git a/src/main/java/net/saltymc/eaa/util/mojangApi/PlayerInfo.java b/src/main/java/net/saltymc/eaa/util/mojangApi/PlayerInfo.java index a62e8f2..d9100aa 100644 --- a/src/main/java/net/saltymc/eaa/util/mojangApi/PlayerInfo.java +++ b/src/main/java/net/saltymc/eaa/util/mojangApi/PlayerInfo.java @@ -57,6 +57,8 @@ public class PlayerInfo { if (responseJSON.containsKey("name") && ! ((String)responseJSON.get("name")).equalsIgnoreCase(playerName)) return null; + LOGGER.info("player: " + playerName + " is: " + responseJSON.get("id")); + return (String) responseJSON.get("id"); } catch (Exception ex) { @@ -65,20 +67,22 @@ public class PlayerInfo { } } - public static List playerUUIDToNames(String playerUUID) throws MojangUtilException { + //changed due to API changes ... + public static String playerUUIDToName(String playerUUID) throws MojangUtilException { try { HttpClient httpClient = HttpClientBuilder.create().build(); - HttpGet request = new HttpGet("https://api.mojang.com/user/profiles/" + playerUUID.replaceAll("-", "") + "/names"); + HttpGet request = new HttpGet("https://api.mojang.com/user/profile/" + playerUUID.replaceAll("-", "")); HttpResponse response = httpClient.execute(request); - List ret = new ArrayList<>(); - // take the response body as a json formatted string - for (Object responseJSON : (JSONArray) new JSONParser().parse(EntityUtils.toString(response.getEntity()))) { - ret.add((String) ((JSONObject)responseJSON).get("name")); - } + JSONObject responseJSON = (JSONObject) new JSONParser().parse(EntityUtils.toString(response.getEntity())); + //doublecheck correct name + if (responseJSON.containsKey("id") && ! ((String)responseJSON.get("id")).equalsIgnoreCase(playerUUID.replaceAll("-", ""))) + return null; - return ret; + LOGGER.info("player: " + playerUUID + " is: " + responseJSON.get("name")); + + return (String) responseJSON.get("name"); } catch (Exception e) { LOGGER.error("Could not parse UUID to username!", e); @@ -87,8 +91,6 @@ public class PlayerInfo { } public static String playerUUIDToCurrentName(String playerUUID) throws MojangUtilException { - List playernames = playerUUIDToNames(playerUUID); - - return playernames.get(playernames.size() - 1); + return playerUUIDToName(playerUUID); } }