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

This commit is contained in:
nossr50 2019-05-05 16:41:42 -07:00
parent 588b6f3692
commit 23b7e11dd1
4 changed files with 23 additions and 12 deletions

View File

@ -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

View File

@ -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>

View File

@ -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);

View File

@ -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);