Sfoglia il codice sorgente

Switch to GSON since mojang lib does not exist in 1.14

nossr50 6 anni fa
parent
commit
09cba965d3
1 ha cambiato i file con 17 aggiunte e 10 eliminazioni
  1. 17 10
      src/main/java/com/gmail/nossr50/util/uuid/UUIDFetcher.java

+ 17 - 10
src/main/java/com/gmail/nossr50/util/uuid/UUIDFetcher.java

@@ -1,11 +1,10 @@
 package com.gmail.nossr50.util.uuid;
 
 import com.google.common.collect.ImmutableList;
-import org.json.simple.JSONArray;
-import org.json.simple.JSONObject;
-import org.json.simple.parser.JSONParser;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
 
-import java.io.InputStreamReader;
 import java.io.OutputStream;
 import java.net.HttpURLConnection;
 import java.net.URL;
@@ -17,7 +16,6 @@ public class UUIDFetcher implements Callable<Map<String, UUID>> {
     private static final int PROFILES_PER_REQUEST = 50;
     private static final long RATE_LIMIT = 100L;
     private static final String PROFILE_URL = "https://api.mojang.com/profiles/minecraft";
-    private final JSONParser jsonParser = new JSONParser();
     private final List<String> names;
     private final boolean rateLimiting;
 
@@ -35,13 +33,22 @@ public class UUIDFetcher implements Callable<Map<String, UUID>> {
         int requests = (int) Math.ceil(names.size() / PROFILES_PER_REQUEST);
         for (int i = 0; i < requests; i++) {
             HttpURLConnection connection = createConnection();
-            String body = JSONArray.toJSONString(names.subList(i * PROFILES_PER_REQUEST, Math.min((i + 1) * PROFILES_PER_REQUEST, names.size())));
+
+            List<String> nameSubList = names.subList(i * PROFILES_PER_REQUEST, Math.min((i + 1) * PROFILES_PER_REQUEST, names.size()));
+            JsonArray array = new JsonArray();
+
+            for(String name : nameSubList)
+            {
+                JsonPrimitive element = new JsonPrimitive(name);
+                array.add(element);
+            }
+
+            String body = array.getAsString();
             writeBody(connection, body);
-            JSONArray array = (JSONArray) jsonParser.parse(new InputStreamReader(connection.getInputStream()));
             for (Object profile : array) {
-                JSONObject jsonProfile = (JSONObject) profile;
-                String id = (String) jsonProfile.get("id");
-                String name = (String) jsonProfile.get("name");
+                JsonObject jsonProfile = (JsonObject) profile;
+                String id = jsonProfile.get("id").getAsString();
+                String name = jsonProfile.get("name").getAsString();
                 UUID uuid = UUIDFetcher.getUUID(id);
                 uuidMap.put(name, uuid);
             }