aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/xmrvizzy/skyblocker/utils/UpdateChecker.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker/utils/UpdateChecker.java')
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/utils/UpdateChecker.java59
1 files changed, 35 insertions, 24 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/UpdateChecker.java b/src/main/java/me/xmrvizzy/skyblocker/utils/UpdateChecker.java
index fd43d8e3..8909b5a9 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/utils/UpdateChecker.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/utils/UpdateChecker.java
@@ -4,15 +4,15 @@ import com.google.gson.*;
import me.xmrvizzy.skyblocker.SkyblockerMod;
import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
import net.fabricmc.loader.api.FabricLoader;
+import net.minecraft.client.MinecraftClient;
+import net.minecraft.text.ClickEvent;
+import net.minecraft.text.HoverEvent;
+import net.minecraft.text.TranslatableText;
import org.spongepowered.asm.util.VersionNumber;
-import javax.net.ssl.HttpsURLConnection;
import java.io.IOException;
-import java.io.InputStream;
import java.io.InputStreamReader;
-import java.net.HttpURLConnection;
import java.net.URL;
-import java.net.URLConnection;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -25,31 +25,42 @@ public class UpdateChecker {
public static VersionNumber latestVersion = null;
public static boolean shouldUpdate(){
if (SkyblockerConfig.get().general.enableUpdateNotification){
- new Thread(new Runnable() {
- @Override
- public void run() {
- try{
- URL url = new URL("https://api.modrinth.com/v2/project/skyblocker-liap/version");
+ new Thread(() -> {
+ try{
+ URL url = new URL("https://api.modrinth.com/v2/project/skyblocker-liap/version");
- InputStreamReader reader = new InputStreamReader(url.openStream());
- JsonObject versionJson = new Gson().fromJson(reader, JsonElement.class).getAsJsonArray().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();
+ InputStreamReader reader = new InputStreamReader(url.openStream());
+ JsonObject versionJson = new Gson().fromJson(reader, JsonElement.class).getAsJsonArray().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();
}
}).start();
}
return shouldUpdate;
}
+
+ public static void init(){
+ SkyblockEvents.JOIN.register(() -> {
+ if (shouldUpdate()) {
+ TranslatableText linkMessage = new TranslatableText("skyblocker.update.update_message");
+ TranslatableText linkMessageEnding = new TranslatableText("skyblocker.update.update_message_end");
+ TranslatableText link = new TranslatableText("skyblocker.update.update_link");
+ TranslatableText hoverText = new TranslatableText("skyblocker.update.hover_text");
+ linkMessage.append(link.styled(style -> style.withClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, "https://modrinth.com/mod/skyblocker-liap/versions")).withHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, hoverText)))).append(linkMessageEnding);
+
+ MinecraftClient.getInstance().player.sendMessage(linkMessage, false);
+ }
+ });
+ }
}