aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/xmrvizzy
diff options
context:
space:
mode:
authorTacoMonkey <75862693+TacoMonkey11@users.noreply.github.com>2022-01-31 17:47:37 -0500
committerTacoMonkey <75862693+TacoMonkey11@users.noreply.github.com>2022-01-31 17:47:37 -0500
commit00730e46f8abbf5328fbe31a626e9b1e81e81e40 (patch)
treee8b97667e5101e1bb00d595568283d1ef73a94bb /src/main/java/me/xmrvizzy
parent935e806e526b3be24d3ba4455495c11297a8dd70 (diff)
downloadSkyblocker-00730e46f8abbf5328fbe31a626e9b1e81e81e40.tar.gz
Skyblocker-00730e46f8abbf5328fbe31a626e9b1e81e81e40.tar.bz2
Skyblocker-00730e46f8abbf5328fbe31a626e9b1e81e81e40.zip
Added simple update checker
Diffstat (limited to 'src/main/java/me/xmrvizzy')
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/utils/UpdateChecker.java53
1 files changed, 53 insertions, 0 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/UpdateChecker.java b/src/main/java/me/xmrvizzy/skyblocker/utils/UpdateChecker.java
new file mode 100644
index 00000000..2fb80fd6
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/utils/UpdateChecker.java
@@ -0,0 +1,53 @@
+package me.xmrvizzy.skyblocker.utils;
+
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonParser;
+import me.xmrvizzy.skyblocker.SkyblockerMod;
+import net.fabricmc.loader.api.FabricLoader;
+import org.spongepowered.asm.util.VersionNumber;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.net.URL;
+import java.net.URLConnection;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+public class UpdateChecker {
+ public static boolean shouldUpdate(){
+ Pattern pattern = Pattern.compile("v(\\d+)\\.(\\d+)\\.(\\d+)");
+ Pattern localPattern = Pattern.compile("(\\d+)\\.(\\d+)\\.(\\d+)");
+ Matcher matcher;
+ VersionNumber localVersion = null;
+ VersionNumber latestVersion = null;
+ Boolean shouldUpdate = false;
+
+ try{
+ URL url = new URL("https://api.modrinth.com/v2/project/skyblocker-liap/version");
+ URLConnection request = url.openConnection();
+ request.connect();
+
+ JsonElement json = JsonParser.parseReader(new InputStreamReader((InputStream) request.getContent()));
+ JsonArray jsonArray = json.getAsJsonArray();
+ JsonObject versionJson = jsonArray.get(0).getAsJsonObject();
+ matcher = pattern.matcher(versionJson.get("version_number").getAsString());
+ if (matcher.find()){
+ latestVersion = VersionNumber.parse(matcher.group(1) + "." + matcher.group(2) + "." + matcher.group(3));
+ }
+ matcher = localPattern.matcher(FabricLoader.getInstance().getModContainer(SkyblockerMod.NAMESPACE).get().getMetadata().getVersion().getFriendlyString());
+ if (matcher.find()){
+ localVersion = VersionNumber.parse(matcher.group(1) + "." + matcher.group(2) + "." + matcher.group(3));
+ }
+ if (localVersion != null && latestVersion != null)
+ if (localVersion.compareTo(latestVersion) < 0) shouldUpdate = true;
+
+ } catch (IOException e) {
+ e.printStackTrace();
+ shouldUpdate = false;
+ }
+ return shouldUpdate;
+ }
+}