Files
Tplus/src/main/java/net/nuggetmc/ai/utils/MojangAPI.java

40 lines
1.5 KiB
Java
Raw Normal View History

package net.nuggetmc.ai.utils;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
2021-06-28 03:14:07 -05:00
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
public class MojangAPI {
private static final Map<String, String[]> CACHE = new HashMap<>();
public static String[] getSkin(String name) {
if (CACHE.containsKey(name)) {
return CACHE.get(name);
}
String[] values = pullFromAPI(name);
CACHE.put(name, values);
return values;
}
// CATCHING NULLPOINTEREXCEPTION BAD!!!! eventually fix from the getAsJsonObject thingy
public static String[] pullFromAPI(String name) {
try {
String uuid = new JsonParser().parse(new InputStreamReader(new URL("https://api.mojang.com/users/profiles/minecraft/" + name)
.openStream())).getAsJsonObject().get("id").getAsString();
JsonObject property = new JsonParser()
.parse(new InputStreamReader(new URL("https://sessionserver.mojang.com/session/minecraft/profile/" + uuid + "?unsigned=false")
.openStream())).getAsJsonObject().get("properties").getAsJsonArray().get(0).getAsJsonObject();
return new String[] {property.get("value").getAsString(), property.get("signature").getAsString()};
} catch (IOException | IllegalStateException e) {
return null;
}
}
}