Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class MojangAPI {
- private static final String USER_API_REQ = "https://api.mojang.com/users/profiles/minecraft/%s";
- private Map<String, UUID> responseCache = new ConcurrentHashMap<String, UUID>();
- private UUID getOfflineUUID(String name) {
- if (!responseCache.containsKey(name)) {
- try {
- HttpURLConnection con = (HttpURLConnection) new URL(String.format(USER_API_REQ, name)).openConnection();
- con.setRequestMethod("GET");
- int code = con.getResponseCode();
- if (code == 204) {
- System.out.println("Mojang API server returned 204 code! (User does not exist!)");
- return null;
- } else if (code == 404) {
- System.out.println("Mojang API returned 404! (Server not found)");
- }
- InputStreamReader reader = new InputStreamReader(con.getInputStream());
- JsonElement element = new JsonParser().parse(reader);
- if (element.isJsonArray()) {
- System.out.println("Link returned invalid JSON (returned an array)");
- return null;
- }
- reader.close();
- JsonObject obj = element.getAsJsonArray().get(0).getAsJsonObject();
- UUID finallly = UUID.fromString(obj.get("id").getAsString());
- responseCache.put(name, finallly);
- return finallly;
- } catch (Exception e) {
- e.printStackTrace();
- }
- return null;
- } else {
- return responseCache.get(name);
- }
- }
- public UUID getOfflineUUIDAsync(String name) {
- CompletableFuture<UUID> unique = CompletableFuture.supplyAsync(() -> getOfflineUUID(name), Constants.DEFAULT_THREAD_POOL);
- try {
- return unique.get();
- } catch (InterruptedException | ExecutionException e) {
- e.printStackTrace();
- }
- return null;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement