diff --git a/CHANGELOG.md b/CHANGELOG.md index 8f0f5ed..a6cf83e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Changelog +**1.0.6** +* Fix Crash (Again) + **1.0.5** * Fix Crash diff --git a/build.gradle b/build.gradle index eefd7fd..3d516b7 100644 --- a/build.gradle +++ b/build.gradle @@ -34,6 +34,7 @@ dependencies { shadowJar { configurations = [project.configurations.shadow] classifier 'shadow-dev' + mergeServiceFiles() } import com.github.jengelman.gradle.plugins.shadow.tasks.ConfigureShadowRelocation diff --git a/gradle.properties b/gradle.properties index a18d1fc..e235679 100644 --- a/gradle.properties +++ b/gradle.properties @@ -9,7 +9,7 @@ org.gradle.jvmargs = -Xmx1G fabric_loader_version = 0.8.8+build.202 # Mod Properties - mod_version = 1.0.5 + mod_version = 1.0.6 maven_group = com.thebrokenrail # Dependencies diff --git a/src/main/java/com/thebrokenrail/modupdater/strategy/CurseForgeStrategy.java b/src/main/java/com/thebrokenrail/modupdater/strategy/CurseForgeStrategy.java index f0f3059..f82941c 100644 --- a/src/main/java/com/thebrokenrail/modupdater/strategy/CurseForgeStrategy.java +++ b/src/main/java/com/thebrokenrail/modupdater/strategy/CurseForgeStrategy.java @@ -33,18 +33,21 @@ class CurseForgeStrategy implements ModUpdateStrategy { return null; } - String data = Util.urlToString("https://addons-ecs.forgesvc.net/api/v2/addon/" + projectID + "/files"); - - Moshi moshi = new Moshi.Builder().build(); - JsonAdapter jsonAdapter = moshi.adapter(CurseForgeFile[].class); - - CurseForgeFile[] files; + String data; try { - files = jsonAdapter.fromJson(data); + data = Util.urlToString("https://addons-ecs.forgesvc.net/api/v2/addon/" + projectID + "/files"); } catch (IOException e) { ModUpdater.getLogger().warn("Unable To Access CurseForge: " + name); return null; - } catch (JsonDataException e) { + } + + CurseForgeFile[] files; + try { + Moshi moshi = new Moshi.Builder().build(); + JsonAdapter jsonAdapter = moshi.adapter(CurseForgeFile[].class); + + files = jsonAdapter.fromJson(data); + } catch (JsonDataException | IOException e) { ModUpdater.getLogger().warn("CurseForge Sent Invalid Data: ", e); return null; } diff --git a/src/main/java/com/thebrokenrail/modupdater/strategy/GitHubReleasesStrategy.java b/src/main/java/com/thebrokenrail/modupdater/strategy/GitHubReleasesStrategy.java index 0ba23f9..065bae4 100644 --- a/src/main/java/com/thebrokenrail/modupdater/strategy/GitHubReleasesStrategy.java +++ b/src/main/java/com/thebrokenrail/modupdater/strategy/GitHubReleasesStrategy.java @@ -37,19 +37,22 @@ public class GitHubReleasesStrategy implements ModUpdateStrategy { return null; } - String data = Util.urlToString(String.format("https://api.github.com/repos/%s/%s/releases", owner, repo)); - - Moshi moshi = new Moshi.Builder().build(); - JsonAdapter jsonAdapter = moshi.adapter(GitHubRelease[].class); - - GitHubRelease[] releases; + String data; try { - // GitHub's API never omits values, they're always null - releases = jsonAdapter.nonNull().fromJson(data); + data = Util.urlToString(String.format("https://api.github.com/repos/%s/%s/releases", owner, repo)); } catch (IOException e) { ModUpdater.getLogger().warn("Unable To Access GitHub: " + name); return null; - } catch (JsonDataException e) { + } + + GitHubRelease[] releases; + try { + Moshi moshi = new Moshi.Builder().build(); + JsonAdapter jsonAdapter = moshi.adapter(GitHubRelease[].class); + + // GitHub's API never omits values, they're always null + releases = jsonAdapter.nonNull().fromJson(data); + } catch (JsonDataException | IOException e) { ModUpdater.getLogger().warn("GitHub Sent Invalid Data: ", e); return null; } diff --git a/src/main/java/com/thebrokenrail/modupdater/strategy/MavenStrategy.java b/src/main/java/com/thebrokenrail/modupdater/strategy/MavenStrategy.java index e5431bb..51850be 100644 --- a/src/main/java/com/thebrokenrail/modupdater/strategy/MavenStrategy.java +++ b/src/main/java/com/thebrokenrail/modupdater/strategy/MavenStrategy.java @@ -12,8 +12,7 @@ import org.dom4j.DocumentException; import org.dom4j.Node; import org.dom4j.io.SAXReader; -import java.net.MalformedURLException; -import java.net.URL; +import java.io.IOException; import java.util.List; public class MavenStrategy implements ModUpdateStrategy { @@ -33,11 +32,19 @@ public class MavenStrategy implements ModUpdateStrategy { String mavenRoot = String.format("%s/%s/%s", repository, group.replaceAll("\\.", "/"), artifact); + String data; + try { + data = Util.urlToString(mavenRoot + "/maven-metadata.xml"); + } catch (IOException e) { + ModUpdater.getLogger().warn("Unable To Access Maven Repository: " + name); + return null; + } + Document doc; try { SAXReader reader = new SAXReader(); - doc = reader.read(new URL(mavenRoot + "/maven-metadata.xml")); - } catch (MalformedURLException | DocumentException e) { + doc = reader.read(data); + } catch (DocumentException e) { ModUpdater.getLogger().warn("Unable To Access Maven Repository: " + name); return null; } diff --git a/src/main/java/com/thebrokenrail/modupdater/util/Util.java b/src/main/java/com/thebrokenrail/modupdater/util/Util.java index aa66c7b..538f9e2 100644 --- a/src/main/java/com/thebrokenrail/modupdater/util/Util.java +++ b/src/main/java/com/thebrokenrail/modupdater/util/Util.java @@ -12,24 +12,19 @@ import java.net.URL; import java.util.Optional; public class Util { - public static String urlToString(String urlStr) { - try { - StringBuilder stringBuilder = new StringBuilder(); - URL url = new URL(urlStr); + public static String urlToString(String urlStr) throws IOException { + StringBuilder stringBuilder = new StringBuilder(); + URL url = new URL(urlStr); - try (BufferedReader in = new BufferedReader(new InputStreamReader(url.openConnection().getInputStream()))) { - String line; - while ((line = in.readLine()) != null) { - stringBuilder.append(line); - stringBuilder.append('\n'); - } + try (BufferedReader in = new BufferedReader(new InputStreamReader(url.openConnection().getInputStream()))) { + String line; + while ((line = in.readLine()) != null) { + stringBuilder.append(line); + stringBuilder.append('\n'); } - - return stringBuilder.toString(); - } catch (IOException e) { - e.printStackTrace(); - return ""; } + + return stringBuilder.toString(); } public static final String JAR_EXTENSION = ".jar";