Explorar el Código

Fixed bugs that could occur while updating old DBs to have UUIDs

nossr50 hace 6 años
padre
commit
23b7e11dd1

+ 3 - 0
Changelog.txt

@@ -1,3 +1,6 @@
+Version 2.1.55
+    Fixed a bug that could occur when adding UUIDs to old outdated DBs
+
 Version 2.1.54
     Fixed a bug where the Skill 'Understanding the Art' was preventing vanilla experience orbs from furnaces
     Fixed 'Understanding the Art' not correctly boosting vanilla XP from furnaces

+ 1 - 1
pom.xml

@@ -2,7 +2,7 @@
     <modelVersion>4.0.0</modelVersion>
     <groupId>com.gmail.nossr50.mcMMO</groupId>
     <artifactId>mcMMO</artifactId>
-    <version>2.1.54</version>
+    <version>2.1.55</version>
     <name>mcMMO</name>
     <url>https://github.com/mcMMO-Dev/mcMMO</url>
     <scm>

+ 11 - 8
src/main/java/com/gmail/nossr50/runnables/database/UUIDUpdateAsyncTask.java

@@ -68,15 +68,18 @@ public class UUIDUpdateAsyncTask extends BukkitRunnable {
             }
             catch (Exception e) {
                 // Handle 429
-                if (e.getMessage().contains("429")) {
-                    size += userNamesSection.size();
-                    try {
-                        Thread.sleep(LIMIT_PERIOD);
-                    } catch (InterruptedException ex) {
-                        e.printStackTrace();
-                        return;
+                if(e.getMessage() != null)
+                {
+                    if (e.getMessage().contains("429")) {
+                        size += userNamesSection.size();
+                        try {
+                            Thread.sleep(LIMIT_PERIOD);
+                        } catch (InterruptedException ex) {
+                            e.printStackTrace();
+                            return;
+                        }
+                        continue;
                     }
-                    continue;
                 }
 
                 plugin.getLogger().log(Level.SEVERE, "Unable to fetch UUIDs!", e);

+ 8 - 3
src/main/java/com/gmail/nossr50/util/uuid/UUIDFetcher.java

@@ -1,10 +1,12 @@
 package com.gmail.nossr50.util.uuid;
 
 import com.google.common.collect.ImmutableList;
+import com.google.gson.Gson;
 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;
@@ -43,10 +45,13 @@ public class UUIDFetcher implements Callable<Map<String, UUID>> {
                 array.add(element);
             }
 
-            String body = array.getAsString();
+            Gson gson = new Gson();
+            String body = array.toString();
+
             writeBody(connection, body);
-            for (Object profile : array) {
-                JsonObject jsonProfile = (JsonObject) profile;
+            JsonObject[] jsonStreamArray = gson.fromJson(new InputStreamReader(connection.getInputStream()), JsonObject[].class);
+
+            for (JsonObject jsonProfile : jsonStreamArray) {
                 String id = jsonProfile.get("id").getAsString();
                 String name = jsonProfile.get("name").getAsString();
                 UUID uuid = UUIDFetcher.getUUID(id);