From 935e806e526b3be24d3ba4455495c11297a8dd70 Mon Sep 17 00:00:00 2001 From: TacoMonkey <75862693+TacoMonkey11@users.noreply.github.com> Date: Mon, 31 Jan 2022 17:47:21 -0500 Subject: Added Skyblock join/disconnect "events" I renamed two variables, deal with it --- .../java/me/xmrvizzy/skyblocker/utils/Events.java | 29 ++++++++++++++++++++++ .../java/me/xmrvizzy/skyblocker/utils/Utils.java | 27 ++++++-------------- 2 files changed, 37 insertions(+), 19 deletions(-) create mode 100644 src/main/java/me/xmrvizzy/skyblocker/utils/Events.java (limited to 'src/main/java/me/xmrvizzy/skyblocker/utils') diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/Events.java b/src/main/java/me/xmrvizzy/skyblocker/utils/Events.java new file mode 100644 index 00000000..8488d6ab --- /dev/null +++ b/src/main/java/me/xmrvizzy/skyblocker/utils/Events.java @@ -0,0 +1,29 @@ +package me.xmrvizzy.skyblocker.utils; + +import me.xmrvizzy.skyblocker.SkyblockerMod; +import net.minecraft.client.MinecraftClient; +import net.minecraft.text.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class Events { + public static MinecraftClient client = MinecraftClient.getInstance(); + public static Logger logger = LoggerFactory.getLogger(SkyblockerMod.NAMESPACE); + + public static void onSkyblockJoin(){ + Utils.isOnSkyblock = true; + logger.info("Joined Skyblock"); + if (UpdateChecker.shouldUpdate()){ + LiteralText link = new LiteralText("https://modrinth.com/mod/skyblocker-liap/versions"); + client.player.sendMessage(Text.of("You are running an outdated version of Skyblocker! Click the link below to find the newest version!"), false); + client.player.sendMessage(link.styled(style -> style.withClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, "https://modrinth.com/mod/skyblocker-liap/versions"))), false); + } + } + + public static void onSkyblockDisconnect(){ + logger.info("Disconnected from Skyblock"); + SkyblockerMod.getInstance().discordRPCManager.stop(); + Utils.isOnSkyblock = false; + Utils.isInDungeons = false; + } +} diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java b/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java index a4736242..e3623bb4 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java +++ b/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java @@ -1,7 +1,5 @@ package me.xmrvizzy.skyblocker.utils; -import com.google.common.collect.Iterables; -import com.google.common.collect.Lists; import me.xmrvizzy.skyblocker.skyblock.item.PriceInfoTooltip; import net.fabricmc.fabric.api.client.item.v1.ItemTooltipCallback; import net.minecraft.client.MinecraftClient; @@ -12,44 +10,35 @@ import net.minecraft.scoreboard.Team; import net.minecraft.util.Formatting; import java.util.ArrayList; -import java.util.Collection; import java.util.Collections; import java.util.List; -import java.util.stream.Collectors; public class Utils { - public static boolean isSkyblock = false; - public static boolean isDungeons = false; + public static boolean isOnSkyblock = false; + public static boolean isInDungeons = false; public static boolean isInjected = false; public static void sbChecker() { List sidebar = getSidebar(); if (sidebar == null) { - isSkyblock = false; - isDungeons = false; + isOnSkyblock = false; + isInDungeons = false; return; } String string = sidebar.toString(); if (sidebar.isEmpty()) return; - if (sidebar.get(sidebar.size() - 1).equals("www.hypixel.net")) { - if (sidebar.get(0).contains("SKYBLOCK")){ + if (sidebar.get(0).contains("SKYBLOCK") && !isOnSkyblock){ if(!isInjected){ isInjected = true; ItemTooltipCallback.EVENT.register(PriceInfoTooltip::onInjectTooltip); } - isSkyblock = true; + Events.onSkyblockJoin(); } - else isSkyblock = false; - - isDungeons = isSkyblock && string.contains("The Catacombs"); - - } else { - isSkyblock = false; - isDungeons = false; + if (!sidebar.get(0).contains("SKYBLOCK") && isOnSkyblock) Events.onSkyblockDisconnect(); + isInDungeons = isOnSkyblock && string.contains("The Catacombs"); } - } public static String getLocation() { String location = null; -- cgit From 00730e46f8abbf5328fbe31a626e9b1e81e81e40 Mon Sep 17 00:00:00 2001 From: TacoMonkey <75862693+TacoMonkey11@users.noreply.github.com> Date: Mon, 31 Jan 2022 17:47:37 -0500 Subject: Added simple update checker --- .../xmrvizzy/skyblocker/utils/UpdateChecker.java | 53 ++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 src/main/java/me/xmrvizzy/skyblocker/utils/UpdateChecker.java (limited to 'src/main/java/me/xmrvizzy/skyblocker/utils') 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; + } +} -- cgit From 1c839abd92d8de521dd5ed254b4da08ff0bb3d83 Mon Sep 17 00:00:00 2001 From: TacoMonkey <75862693+TacoMonkey11@users.noreply.github.com> Date: Mon, 31 Jan 2022 17:49:31 -0500 Subject: Added config for the Update Notification --- src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java | 2 ++ src/main/java/me/xmrvizzy/skyblocker/utils/Events.java | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) (limited to 'src/main/java/me/xmrvizzy/skyblocker/utils') diff --git a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java index 9471620b..ad511ff2 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java +++ b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java @@ -42,6 +42,8 @@ public class SkyblockerConfig implements ConfigData { @ConfigEntry.Gui.CollapsibleObject(startExpanded = true) public Quicknav quicknav = new Quicknav(); + public boolean enableUpdateNotification = true; + @ConfigEntry.Gui.Excluded public List lockedSlots = new ArrayList<>(); } diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/Events.java b/src/main/java/me/xmrvizzy/skyblocker/utils/Events.java index 8488d6ab..615e5971 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/utils/Events.java +++ b/src/main/java/me/xmrvizzy/skyblocker/utils/Events.java @@ -1,6 +1,7 @@ package me.xmrvizzy.skyblocker.utils; import me.xmrvizzy.skyblocker.SkyblockerMod; +import me.xmrvizzy.skyblocker.config.SkyblockerConfig; import net.minecraft.client.MinecraftClient; import net.minecraft.text.*; import org.slf4j.Logger; @@ -13,7 +14,7 @@ public class Events { public static void onSkyblockJoin(){ Utils.isOnSkyblock = true; logger.info("Joined Skyblock"); - if (UpdateChecker.shouldUpdate()){ + if (UpdateChecker.shouldUpdate() && SkyblockerConfig.get().general.enableUpdateNotification){ LiteralText link = new LiteralText("https://modrinth.com/mod/skyblocker-liap/versions"); client.player.sendMessage(Text.of("You are running an outdated version of Skyblocker! Click the link below to find the newest version!"), false); client.player.sendMessage(link.styled(style -> style.withClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, "https://modrinth.com/mod/skyblocker-liap/versions"))), false); -- cgit From 36654a68e3d4151b290d513c1a2035838ad68376 Mon Sep 17 00:00:00 2001 From: TacoMonkey <75862693+TacoMonkey11@users.noreply.github.com> Date: Tue, 1 Feb 2022 11:01:36 -0500 Subject: refined update message --- src/main/java/me/xmrvizzy/skyblocker/utils/Events.java | 10 +++++++--- src/main/resources/assets/skyblocker/lang/en_us.json | 7 ++++++- 2 files changed, 13 insertions(+), 4 deletions(-) (limited to 'src/main/java/me/xmrvizzy/skyblocker/utils') diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/Events.java b/src/main/java/me/xmrvizzy/skyblocker/utils/Events.java index 615e5971..f1f0c464 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/utils/Events.java +++ b/src/main/java/me/xmrvizzy/skyblocker/utils/Events.java @@ -15,9 +15,13 @@ public class Events { Utils.isOnSkyblock = true; logger.info("Joined Skyblock"); if (UpdateChecker.shouldUpdate() && SkyblockerConfig.get().general.enableUpdateNotification){ - LiteralText link = new LiteralText("https://modrinth.com/mod/skyblocker-liap/versions"); - client.player.sendMessage(Text.of("You are running an outdated version of Skyblocker! Click the link below to find the newest version!"), false); - client.player.sendMessage(link.styled(style -> style.withClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, "https://modrinth.com/mod/skyblocker-liap/versions"))), false); + 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); + + client.player.sendMessage(linkMessage, false); } } diff --git a/src/main/resources/assets/skyblocker/lang/en_us.json b/src/main/resources/assets/skyblocker/lang/en_us.json index 4e7d88bb..d3e7db26 100644 --- a/src/main/resources/assets/skyblocker/lang/en_us.json +++ b/src/main/resources/assets/skyblocker/lang/en_us.json @@ -43,5 +43,10 @@ "text.autoconfig.skyblocker.option.messages.hideAOTE": "Hide AOTE Messages", "text.autoconfig.skyblocker.option.messages.hideImplosion": "Hide Implosion Message", "text.autoconfig.skyblocker.option.messages.hideMoltenWave": "Hide Molten Wave Message", - "text.autoconfig.skyblocker.option.messages.hideAds": "Hide Ads From Public Chat" + "text.autoconfig.skyblocker.option.messages.hideAds": "Hide Ads From Public Chat", + + "skyblocker.update.update_message": "§b[§6Skyblocker§b] §2There is a new version available!", + "skyblocker.update.update_link": " §2§nClick here§r", + "skyblocker.update.update_message_end" : " §ato find out about latest features.", + "skyblocker.update.hover_text": "Open Modrinth" } \ No newline at end of file -- cgit From b02cd6b85808e45f48b16403655f03c9d4b4b075 Mon Sep 17 00:00:00 2001 From: TacoMonkey <75862693+TacoMonkey11@users.noreply.github.com> Date: Tue, 1 Feb 2022 11:01:48 -0500 Subject: Added a toast builder for the future --- .../me/xmrvizzy/skyblocker/utils/ToastBuilder.java | 34 ++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/main/java/me/xmrvizzy/skyblocker/utils/ToastBuilder.java (limited to 'src/main/java/me/xmrvizzy/skyblocker/utils') diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/ToastBuilder.java b/src/main/java/me/xmrvizzy/skyblocker/utils/ToastBuilder.java new file mode 100644 index 00000000..910c8a6c --- /dev/null +++ b/src/main/java/me/xmrvizzy/skyblocker/utils/ToastBuilder.java @@ -0,0 +1,34 @@ +package me.xmrvizzy.skyblocker.utils; + +import com.mojang.blaze3d.systems.RenderSystem; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.render.GameRenderer; +import net.minecraft.client.toast.Toast; +import net.minecraft.client.toast.ToastManager; +import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.text.Text; + +@Environment(value= EnvType.CLIENT) +public class ToastBuilder implements Toast { + private final Text title; + private final Text description; + + public ToastBuilder(Text title, Text description) { + this.title = title; + this.description = description; + } + + @Override + public Toast.Visibility draw(MatrixStack matrices, ToastManager manager, long startTime) { + RenderSystem.setShader(GameRenderer::getPositionTexShader); + RenderSystem.setShaderTexture(0, TEXTURE); + RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); + + manager.drawTexture(matrices, 0, 0, 0, 0, this.getWidth(), this.getHeight()); + manager.getClient().textRenderer.draw(matrices, title, 7.0f, 7.0f, -11534256); + manager.getClient().textRenderer.draw(matrices, description, 7.0f, 18.0f, -16777216); + return startTime >= 3000L ? Toast.Visibility.HIDE : Toast.Visibility.SHOW; + } +} -- cgit From 3e7f0d4c2ab64d7483788a9afc9614e3516bf813 Mon Sep 17 00:00:00 2001 From: TacoMonkey <75862693+TacoMonkey11@users.noreply.github.com> Date: Tue, 1 Feb 2022 20:05:47 -0500 Subject: Added auction bought notification --- .../chat/chatevents/AuctionSoldEvent.java | 26 ++++++++++++++++++++++ .../me/xmrvizzy/skyblocker/utils/ToastBuilder.java | 1 - .../resources/assets/skyblocker/lang/en_us.json | 5 ++++- 3 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 src/main/java/me/xmrvizzy/skyblocker/chat/chatevents/AuctionSoldEvent.java (limited to 'src/main/java/me/xmrvizzy/skyblocker/utils') diff --git a/src/main/java/me/xmrvizzy/skyblocker/chat/chatevents/AuctionSoldEvent.java b/src/main/java/me/xmrvizzy/skyblocker/chat/chatevents/AuctionSoldEvent.java new file mode 100644 index 00000000..73aee79f --- /dev/null +++ b/src/main/java/me/xmrvizzy/skyblocker/chat/chatevents/AuctionSoldEvent.java @@ -0,0 +1,26 @@ +package me.xmrvizzy.skyblocker.chat.chatevents; + +import me.xmrvizzy.skyblocker.chat.ChatListener; +import me.xmrvizzy.skyblocker.utils.ToastBuilder; +import net.minecraft.client.MinecraftClient; +import net.minecraft.text.TranslatableText; + +public class AuctionSoldEvent extends ChatListener{ + private final TranslatableText toastTitle = new TranslatableText("skyblocker.auction_sold.title"); + private final TranslatableText toastDesc = new TranslatableText("skyblocker.auction_sold.desc"); + + public AuctionSoldEvent() { + super("/^(?=.*Auction)(?=.*bought).*$/gm"); + } + + @Override + public boolean isEnabled() { + return true; + } + + @Override + public boolean onMessage(String[] groups) { + MinecraftClient.getInstance().getToastManager().add(new ToastBuilder(toastTitle, toastDesc)); + return true; + } +} diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/ToastBuilder.java b/src/main/java/me/xmrvizzy/skyblocker/utils/ToastBuilder.java index 910c8a6c..fd3122f7 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/utils/ToastBuilder.java +++ b/src/main/java/me/xmrvizzy/skyblocker/utils/ToastBuilder.java @@ -3,7 +3,6 @@ package me.xmrvizzy.skyblocker.utils; import com.mojang.blaze3d.systems.RenderSystem; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; -import net.minecraft.client.MinecraftClient; import net.minecraft.client.render.GameRenderer; import net.minecraft.client.toast.Toast; import net.minecraft.client.toast.ToastManager; diff --git a/src/main/resources/assets/skyblocker/lang/en_us.json b/src/main/resources/assets/skyblocker/lang/en_us.json index d3e7db26..1116ba2c 100644 --- a/src/main/resources/assets/skyblocker/lang/en_us.json +++ b/src/main/resources/assets/skyblocker/lang/en_us.json @@ -48,5 +48,8 @@ "skyblocker.update.update_message": "§b[§6Skyblocker§b] §2There is a new version available!", "skyblocker.update.update_link": " §2§nClick here§r", "skyblocker.update.update_message_end" : " §ato find out about latest features.", - "skyblocker.update.hover_text": "Open Modrinth" + "skyblocker.update.hover_text": "Open Modrinth", + + "skyblocker.auction_sold.title": "Auction Bought!", + "skyblocker.auction_sold.desc" : "Collect your coins in chat!" } \ No newline at end of file -- cgit From e398b26148195c928b6fa28dc72987b9ed0c5da7 Mon Sep 17 00:00:00 2001 From: TacoMonkey <75862693+TacoMonkey11@users.noreply.github.com> Date: Tue, 1 Feb 2022 20:09:52 -0500 Subject: Revert "Added auction bought notification" This reverts commit 3e7f0d4c2ab64d7483788a9afc9614e3516bf813. --- .../chat/chatevents/AuctionSoldEvent.java | 26 ---------------------- .../me/xmrvizzy/skyblocker/utils/ToastBuilder.java | 1 + .../resources/assets/skyblocker/lang/en_us.json | 5 +---- 3 files changed, 2 insertions(+), 30 deletions(-) delete mode 100644 src/main/java/me/xmrvizzy/skyblocker/chat/chatevents/AuctionSoldEvent.java (limited to 'src/main/java/me/xmrvizzy/skyblocker/utils') diff --git a/src/main/java/me/xmrvizzy/skyblocker/chat/chatevents/AuctionSoldEvent.java b/src/main/java/me/xmrvizzy/skyblocker/chat/chatevents/AuctionSoldEvent.java deleted file mode 100644 index 73aee79f..00000000 --- a/src/main/java/me/xmrvizzy/skyblocker/chat/chatevents/AuctionSoldEvent.java +++ /dev/null @@ -1,26 +0,0 @@ -package me.xmrvizzy.skyblocker.chat.chatevents; - -import me.xmrvizzy.skyblocker.chat.ChatListener; -import me.xmrvizzy.skyblocker.utils.ToastBuilder; -import net.minecraft.client.MinecraftClient; -import net.minecraft.text.TranslatableText; - -public class AuctionSoldEvent extends ChatListener{ - private final TranslatableText toastTitle = new TranslatableText("skyblocker.auction_sold.title"); - private final TranslatableText toastDesc = new TranslatableText("skyblocker.auction_sold.desc"); - - public AuctionSoldEvent() { - super("/^(?=.*Auction)(?=.*bought).*$/gm"); - } - - @Override - public boolean isEnabled() { - return true; - } - - @Override - public boolean onMessage(String[] groups) { - MinecraftClient.getInstance().getToastManager().add(new ToastBuilder(toastTitle, toastDesc)); - return true; - } -} diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/ToastBuilder.java b/src/main/java/me/xmrvizzy/skyblocker/utils/ToastBuilder.java index fd3122f7..910c8a6c 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/utils/ToastBuilder.java +++ b/src/main/java/me/xmrvizzy/skyblocker/utils/ToastBuilder.java @@ -3,6 +3,7 @@ package me.xmrvizzy.skyblocker.utils; import com.mojang.blaze3d.systems.RenderSystem; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; +import net.minecraft.client.MinecraftClient; import net.minecraft.client.render.GameRenderer; import net.minecraft.client.toast.Toast; import net.minecraft.client.toast.ToastManager; diff --git a/src/main/resources/assets/skyblocker/lang/en_us.json b/src/main/resources/assets/skyblocker/lang/en_us.json index 1116ba2c..d3e7db26 100644 --- a/src/main/resources/assets/skyblocker/lang/en_us.json +++ b/src/main/resources/assets/skyblocker/lang/en_us.json @@ -48,8 +48,5 @@ "skyblocker.update.update_message": "§b[§6Skyblocker§b] §2There is a new version available!", "skyblocker.update.update_link": " §2§nClick here§r", "skyblocker.update.update_message_end" : " §ato find out about latest features.", - "skyblocker.update.hover_text": "Open Modrinth", - - "skyblocker.auction_sold.title": "Auction Bought!", - "skyblocker.auction_sold.desc" : "Collect your coins in chat!" + "skyblocker.update.hover_text": "Open Modrinth" } \ No newline at end of file -- cgit From cfa71c037f0caaf04ea06ec2dd40ff17d0622fcd Mon Sep 17 00:00:00 2001 From: TacoMonkey <75862693+TacoMonkey11@users.noreply.github.com> Date: Fri, 18 Feb 2022 16:05:24 -0500 Subject: Switch from URLConnection to InputStreamReader --- .../java/me/xmrvizzy/skyblocker/utils/Events.java | 2 +- .../xmrvizzy/skyblocker/utils/UpdateChecker.java | 47 ++++++++++------------ 2 files changed, 23 insertions(+), 26 deletions(-) (limited to 'src/main/java/me/xmrvizzy/skyblocker/utils') diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/Events.java b/src/main/java/me/xmrvizzy/skyblocker/utils/Events.java index f1f0c464..e3aa4da4 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/utils/Events.java +++ b/src/main/java/me/xmrvizzy/skyblocker/utils/Events.java @@ -14,7 +14,7 @@ public class Events { public static void onSkyblockJoin(){ Utils.isOnSkyblock = true; logger.info("Joined Skyblock"); - if (UpdateChecker.shouldUpdate() && SkyblockerConfig.get().general.enableUpdateNotification){ + if (UpdateChecker.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"); diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/UpdateChecker.java b/src/main/java/me/xmrvizzy/skyblocker/utils/UpdateChecker.java index 2fb80fd6..ffdd59d4 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/utils/UpdateChecker.java +++ b/src/main/java/me/xmrvizzy/skyblocker/utils/UpdateChecker.java @@ -1,16 +1,16 @@ 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 com.google.gson.*; import me.xmrvizzy.skyblocker.SkyblockerMod; +import me.xmrvizzy.skyblocker.config.SkyblockerConfig; import net.fabricmc.loader.api.FabricLoader; 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; @@ -23,30 +23,27 @@ public class UpdateChecker { Matcher matcher; VersionNumber localVersion = null; VersionNumber latestVersion = null; - Boolean shouldUpdate = false; + boolean shouldUpdate = false; + if (SkyblockerConfig.get().general.enableUpdateNotification){ + try{ + URL url = new URL("https://api.modrinth.com/v2/project/skyblocker-liap/version"); - try{ - URL url = new URL("https://api.modrinth.com/v2/project/skyblocker-liap/version"); - URLConnection request = url.openConnection(); - request.connect(); + 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; - 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)); + } catch (IOException e) { + e.printStackTrace(); } - 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; } -- cgit From 7cf1a059304507defd304477790d8f35ee18a393 Mon Sep 17 00:00:00 2001 From: TacoMonkey <75862693+TacoMonkey11@users.noreply.github.com> Date: Fri, 18 Feb 2022 17:07:00 -0500 Subject: chucking it into a thread... --- .../xmrvizzy/skyblocker/utils/UpdateChecker.java | 51 ++++++++++++---------- 1 file changed, 28 insertions(+), 23 deletions(-) (limited to 'src/main/java/me/xmrvizzy/skyblocker/utils') diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/UpdateChecker.java b/src/main/java/me/xmrvizzy/skyblocker/utils/UpdateChecker.java index ffdd59d4..fd43d8e3 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/utils/UpdateChecker.java +++ b/src/main/java/me/xmrvizzy/skyblocker/utils/UpdateChecker.java @@ -17,33 +17,38 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; public class UpdateChecker { + public static boolean shouldUpdate = false; + public static Pattern pattern = Pattern.compile("v(\\d+)\\.(\\d+)\\.(\\d+)"); + public static Pattern localPattern = Pattern.compile("(\\d+)\\.(\\d+)\\.(\\d+)"); + public static Matcher matcher; + public static VersionNumber localVersion = null; + public static VersionNumber latestVersion = null; 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; if (SkyblockerConfig.get().general.enableUpdateNotification){ - try{ - URL url = new URL("https://api.modrinth.com/v2/project/skyblocker-liap/version"); + new Thread(new Runnable() { + @Override + public void run() { + 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; + 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(); - } + } catch (IOException e) { + e.printStackTrace(); + } + } + }).start(); } return shouldUpdate; } -- cgit