diff options
author | TacoMonkey <75862693+TacoMonkey11@users.noreply.github.com> | 2022-01-31 17:47:37 -0500 |
---|---|---|
committer | TacoMonkey <75862693+TacoMonkey11@users.noreply.github.com> | 2022-01-31 17:47:37 -0500 |
commit | 00730e46f8abbf5328fbe31a626e9b1e81e81e40 (patch) | |
tree | e8b97667e5101e1bb00d595568283d1ef73a94bb /src/main/java/me/xmrvizzy/skyblocker/utils/UpdateChecker.java | |
parent | 935e806e526b3be24d3ba4455495c11297a8dd70 (diff) | |
download | Skyblocker-00730e46f8abbf5328fbe31a626e9b1e81e81e40.tar.gz Skyblocker-00730e46f8abbf5328fbe31a626e9b1e81e81e40.tar.bz2 Skyblocker-00730e46f8abbf5328fbe31a626e9b1e81e81e40.zip |
Added simple update checker
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker/utils/UpdateChecker.java')
-rw-r--r-- | src/main/java/me/xmrvizzy/skyblocker/utils/UpdateChecker.java | 53 |
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; + } +} |