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/SkyblockerMod.java | 8 +++--- .../skyblocker/mixin/ChatHudListenerMixin.java | 7 +----- .../skyblocker/mixin/ClientPlayerEntityMixin.java | 2 +- .../mixin/GenericContainerScreenMixin.java | 2 +- .../skyblocker/mixin/HandledScreenMixin.java | 3 +-- .../xmrvizzy/skyblocker/mixin/InGameHudMixin.java | 14 +++++------ .../skyblocker/mixin/InventoryScreenMixin.java | 2 +- .../skyblocker/mixin/ItemRendererMixin.java | 2 +- .../xmrvizzy/skyblocker/mixin/LeverBlockMixin.java | 2 +- .../skyblocker/mixin/MinecraftClientMixin.java | 4 +-- .../skyblocker/skyblock/dungeon/Reparty.java | 2 +- .../skyblocker/skyblock/item/WikiLookup.java | 3 +-- .../java/me/xmrvizzy/skyblocker/utils/Events.java | 29 ++++++++++++++++++++++ .../java/me/xmrvizzy/skyblocker/utils/Utils.java | 27 ++++++-------------- 14 files changed, 59 insertions(+), 48 deletions(-) create mode 100644 src/main/java/me/xmrvizzy/skyblocker/utils/Events.java (limited to 'src/main') diff --git a/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java b/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java index db702e81..e33e9c2d 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java +++ b/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java @@ -32,7 +32,7 @@ public class SkyblockerMod { if(onHypxiel()) { if (ticks % 4 == 0) try { - if (Utils.isDungeons) { + if (Utils.isInDungeons) { DungeonBlaze.DungeonBlaze(); } } catch (Exception e) { @@ -41,10 +41,10 @@ public class SkyblockerMod { if (ticks % 20 == 0) { rpTimer++; if (rpTimer == 5) { - if (discordRPCManager.isConnected && Utils.isSkyblock && SkyblockerConfig.get().richPresence.enableRichPresence) { + if (discordRPCManager.isConnected && Utils.isOnSkyblock && SkyblockerConfig.get().richPresence.enableRichPresence) { discordRPCManager.updatePresence(); } - if (discordRPCManager.isConnected && Utils.isSkyblock && SkyblockerConfig.get().richPresence.cycleMode) { + if (discordRPCManager.isConnected && Utils.isOnSkyblock && SkyblockerConfig.get().richPresence.cycleMode) { discordRPCManager.cycleCount++; if (discordRPCManager.cycleCount == 3) discordRPCManager.cycleCount = 0; } @@ -52,7 +52,7 @@ public class SkyblockerMod { } if (client.world != null && !client.isInSingleplayer()) Utils.sbChecker(); - if (!discordRPCManager.isConnected && Utils.isSkyblock && SkyblockerConfig.get().richPresence.enableRichPresence) + if (!discordRPCManager.isConnected && Utils.isOnSkyblock && SkyblockerConfig.get().richPresence.enableRichPresence) discordRPCManager.start(); if (discordRPCManager.isConnected && !SkyblockerConfig.get().richPresence.enableRichPresence) discordRPCManager.stop(); diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/ChatHudListenerMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/ChatHudListenerMixin.java index 43103159..9170f1db 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/ChatHudListenerMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/ChatHudListenerMixin.java @@ -1,20 +1,15 @@ package me.xmrvizzy.skyblocker.mixin; import me.xmrvizzy.skyblocker.chat.ChatParser; -import me.xmrvizzy.skyblocker.config.SkyblockerConfig; import me.xmrvizzy.skyblocker.utils.Utils; -import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.hud.ChatHudListener; -import net.minecraft.client.network.ClientPlayerEntity; import net.minecraft.network.MessageType; -import net.minecraft.text.ClickEvent; import net.minecraft.text.Text; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import java.util.List; import java.util.UUID; @Mixin(ChatHudListener.class) @@ -24,7 +19,7 @@ public class ChatHudListenerMixin { @Inject(method = "onChatMessage", at = @At("HEAD"), cancellable = true) public void onMessage(MessageType messageType, Text message, UUID senderUuid, CallbackInfo ci) { - if (!Utils.isSkyblock) + if (!Utils.isOnSkyblock) return; if (parser.shouldFilter(message.getString())) ci.cancel(); diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/ClientPlayerEntityMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/ClientPlayerEntityMixin.java index 5825b394..160c8078 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/ClientPlayerEntityMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/ClientPlayerEntityMixin.java @@ -29,6 +29,6 @@ public abstract class ClientPlayerEntityMixin extends AbstractClientPlayerEntity @Inject(method = "dropSelectedItem", at = @At("HEAD"), cancellable = true) public void dropSelectedItem(boolean dropEntireStack, CallbackInfoReturnable cir) { - if (Utils.isSkyblock) HotbarSlotLock.handleDropSelectedItem(this.getInventory().selectedSlot, cir); + if (Utils.isOnSkyblock) HotbarSlotLock.handleDropSelectedItem(this.getInventory().selectedSlot, cir); } } \ No newline at end of file diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/GenericContainerScreenMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/GenericContainerScreenMixin.java index 3e6bf16a..d63d17b8 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/GenericContainerScreenMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/GenericContainerScreenMixin.java @@ -25,7 +25,7 @@ public abstract class GenericContainerScreenMixin extends HandledScreen buttons = QuickNav.init(screenTitle); for (QuickNavButton button : buttons) super.addDrawableChild(button); diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java index 2653aeef..19e0d79e 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java @@ -43,7 +43,7 @@ public abstract class InGameHudMixin extends DrawableHelper { @Inject(method = "setOverlayMessage(Lnet/minecraft/text/Text;Z)V", at = @At("HEAD"), cancellable = true) private void onSetOverlayMessage(Text message, boolean tinted, CallbackInfo ci) { - if(!Utils.isSkyblock) + if(!Utils.isOnSkyblock) return; String msg = message.getString(); if(statusBars.update(msg)) @@ -52,7 +52,7 @@ public abstract class InGameHudMixin extends DrawableHelper { @Inject(method = "renderHotbar", at = @At("HEAD")) public void renderHotbar(float f, MatrixStack matrices, CallbackInfo ci) { - if (Utils.isSkyblock) { + if (Utils.isOnSkyblock) { hotbarMatrices = matrices; hotbarSlotIndex = 0; } @@ -60,7 +60,7 @@ public abstract class InGameHudMixin extends DrawableHelper { @Inject(method = "renderHotbarItem", at = @At("HEAD")) public void renderHotbarItem(int i, int j, float f, PlayerEntity player, ItemStack stack, int seed, CallbackInfo ci) { - if (Utils.isSkyblock) { + if (Utils.isOnSkyblock) { if (HotbarSlotLock.isLocked(hotbarSlotIndex)) { RenderSystem.setShaderTexture(0,SLOT_LOCK); this.drawTexture(hotbarMatrices, i, j, 0, 0,16, 16); @@ -71,18 +71,18 @@ public abstract class InGameHudMixin extends DrawableHelper { @Inject(method = "renderExperienceBar", at = @At("HEAD"), cancellable = true) private void renderExperienceBar(MatrixStack matrices, int x, CallbackInfo ci) { - if (Utils.isSkyblock && SkyblockerConfig.get().general.bars.enableBars) + if (Utils.isOnSkyblock && SkyblockerConfig.get().general.bars.enableBars) ci.cancel(); } @Inject(method = "renderStatusBars", at = @At("HEAD"), cancellable = true) private void renderStatusBars(MatrixStack matrices, CallbackInfo ci) { - if(!Utils.isSkyblock) + if(!Utils.isOnSkyblock) return; if(statusBars.render(matrices, scaledWidth, scaledHeight)) ci.cancel(); - if (Utils.isDungeons && SkyblockerConfig.get().locations.dungeons.enableMap) + if (Utils.isInDungeons && SkyblockerConfig.get().locations.dungeons.enableMap) DungeonMap.render(matrices); RenderSystem.setShaderTexture(0, GUI_ICONS_TEXTURE); @@ -90,7 +90,7 @@ public abstract class InGameHudMixin extends DrawableHelper { @Inject(method = "renderMountHealth", at = @At("HEAD"), cancellable = true) private void renderMountHealth(MatrixStack matrices, CallbackInfo ci) { - if (Utils.isSkyblock && SkyblockerConfig.get().general.bars.enableBars) + if (Utils.isOnSkyblock && SkyblockerConfig.get().general.bars.enableBars) ci.cancel(); } } \ No newline at end of file diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/InventoryScreenMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/InventoryScreenMixin.java index fcdbf706..4bff2779 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/InventoryScreenMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/InventoryScreenMixin.java @@ -19,7 +19,7 @@ public class InventoryScreenMixin { ) ) RecipeBookWidget constructor() { - if (Utils.isSkyblock && SkyblockerConfig.get().general.itemList.enableItemList) + if (Utils.isOnSkyblock && SkyblockerConfig.get().general.itemList.enableItemList) return new ItemListWidget(); else return new RecipeBookWidget(); diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/ItemRendererMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/ItemRendererMixin.java index 002497ce..395027bc 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/ItemRendererMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/ItemRendererMixin.java @@ -28,7 +28,7 @@ public abstract class ItemRendererMixin { @Inject(method = "renderGuiItemOverlay(Lnet/minecraft/client/font/TextRenderer;Lnet/minecraft/item/ItemStack;IILjava/lang/String;)V", at = @At("HEAD")) public void renderItemBar(TextRenderer renderer, ItemStack stack, int x, int y, @Nullable String countLabel, CallbackInfo ci) { - if (Utils.isSkyblock && SkyblockerConfig.get().locations.dwarvenMines.enableDrillFuel) { + if (Utils.isOnSkyblock && SkyblockerConfig.get().locations.dwarvenMines.enableDrillFuel) { if (!stack.isEmpty()) { NbtCompound tag = stack.getNbt(); if (tag != null && tag.contains("ExtraAttributes")) { diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/LeverBlockMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/LeverBlockMixin.java index f1c6661d..c3ff287e 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/LeverBlockMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/LeverBlockMixin.java @@ -22,7 +22,7 @@ public abstract class LeverBlockMixin extends WallMountedBlock { @Inject(method = "getOutlineShape", at = @At("HEAD"), cancellable = true) public void onGetOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context, CallbackInfoReturnable cir) { - if (Utils.isSkyblock) { + if (Utils.isOnSkyblock) { VoxelShape shape = OldLever.getShape(state.get(FACE), state.get(FACING)); if (shape != null) cir.setReturnValue(shape); diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/MinecraftClientMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/MinecraftClientMixin.java index 21730e69..6561eb5b 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/MinecraftClientMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/MinecraftClientMixin.java @@ -27,13 +27,13 @@ public class MinecraftClientMixin { @Inject(method = "handleInputEvents", at = @At("HEAD")) public void handleInputEvents(CallbackInfo ci) { - if (Utils.isSkyblock) HotbarSlotLock.handleInputEvents(player); + if (Utils.isOnSkyblock) HotbarSlotLock.handleInputEvents(player); } @Inject(method = "setScreen", at = @At("HEAD")) public void onSetScreen(Screen screen, CallbackInfo ci) { ContainerSolverManager manager = SkyblockerMod.getInstance().containerSolverManager; - if(Utils.isSkyblock && screen instanceof GenericContainerScreen) + if(Utils.isOnSkyblock && screen instanceof GenericContainerScreen) manager.onSetScreen((GenericContainerScreen) screen); else manager.clearScreen(); diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/Reparty.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/Reparty.java index 69278023..d4dd7fb0 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/Reparty.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/Reparty.java @@ -23,7 +23,7 @@ public class Reparty extends ChatListener { repartying = false; ClientCommandManager.DISPATCHER.register( ClientCommandManager.literal("rp").executes(context -> { - if (!Utils.isSkyblock || repartying) + if (!Utils.isOnSkyblock || repartying) return 0; assert client.player != null; repartying = true; diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/WikiLookup.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/WikiLookup.java index a0788126..4e5e7f32 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/WikiLookup.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/WikiLookup.java @@ -5,7 +5,6 @@ import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonParser; import me.xmrvizzy.skyblocker.utils.Utils; -import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents; import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper; import net.minecraft.client.MinecraftClient; import net.minecraft.client.option.KeyBinding; @@ -49,7 +48,7 @@ public class WikiLookup { } public static void openWiki(Slot slot){ - if (Utils.isSkyblock){ + if (Utils.isOnSkyblock){ id = getSkyblockId(slot); try { //Setting up a connection with the repo 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') 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') 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') 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') 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') 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 131a60db6c039fa083202aa6de34edeef94eb350 Mon Sep 17 00:00:00 2001 From: TacoMonkey <75862693+TacoMonkey11@users.noreply.github.com> Date: Tue, 1 Feb 2022 20:06:43 -0500 Subject: added event to parser --- src/main/java/me/xmrvizzy/skyblocker/chat/ChatParser.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'src/main') diff --git a/src/main/java/me/xmrvizzy/skyblocker/chat/ChatParser.java b/src/main/java/me/xmrvizzy/skyblocker/chat/ChatParser.java index 97ca1f68..a690c2de 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/chat/ChatParser.java +++ b/src/main/java/me/xmrvizzy/skyblocker/chat/ChatParser.java @@ -1,5 +1,6 @@ package me.xmrvizzy.skyblocker.chat; +import me.xmrvizzy.skyblocker.chat.chatevents.AuctionSoldEvent; import me.xmrvizzy.skyblocker.chat.filters.*; import me.xmrvizzy.skyblocker.skyblock.dungeon.Reparty; import me.xmrvizzy.skyblocker.skyblock.dungeon.ThreeWeirdos; @@ -11,17 +12,21 @@ import java.util.regex.Matcher; public class ChatParser { private final static ChatListener[] listeners = new ChatListener[]{ - new Reparty(), + // solvers + new Fetchur(), + new Puzzler(), + new Trivia(), new ThreeWeirdos(), + // filters + new Reparty(), new AoteFilter(), new ImplosionFilter(), new MoltenWaveFilter(), new HealFilter(), new AbilityFilter(), new AdFilter(), - new Fetchur(), - new Puzzler(), - new Trivia(), + // Toasts + new AuctionSoldEvent(), }; public boolean shouldFilter(String message) { -- cgit From fa959336a536179a70a16d8960d390bca9c5a922 Mon Sep 17 00:00:00 2001 From: TacoMonkey <75862693+TacoMonkey11@users.noreply.github.com> Date: Tue, 1 Feb 2022 20:09:43 -0500 Subject: Revert "added event to parser" This reverts commit 131a60db6c039fa083202aa6de34edeef94eb350. --- src/main/java/me/xmrvizzy/skyblocker/chat/ChatParser.java | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) (limited to 'src/main') diff --git a/src/main/java/me/xmrvizzy/skyblocker/chat/ChatParser.java b/src/main/java/me/xmrvizzy/skyblocker/chat/ChatParser.java index a690c2de..97ca1f68 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/chat/ChatParser.java +++ b/src/main/java/me/xmrvizzy/skyblocker/chat/ChatParser.java @@ -1,6 +1,5 @@ package me.xmrvizzy.skyblocker.chat; -import me.xmrvizzy.skyblocker.chat.chatevents.AuctionSoldEvent; import me.xmrvizzy.skyblocker.chat.filters.*; import me.xmrvizzy.skyblocker.skyblock.dungeon.Reparty; import me.xmrvizzy.skyblocker.skyblock.dungeon.ThreeWeirdos; @@ -12,21 +11,17 @@ import java.util.regex.Matcher; public class ChatParser { private final static ChatListener[] listeners = new ChatListener[]{ - // solvers - new Fetchur(), - new Puzzler(), - new Trivia(), - new ThreeWeirdos(), - // filters new Reparty(), + new ThreeWeirdos(), new AoteFilter(), new ImplosionFilter(), new MoltenWaveFilter(), new HealFilter(), new AbilityFilter(), new AdFilter(), - // Toasts - new AuctionSoldEvent(), + new Fetchur(), + new Puzzler(), + new Trivia(), }; public boolean shouldFilter(String message) { -- 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') 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 1794afd43f827622ac5eac5effe64511ed12e17f Mon Sep 17 00:00:00 2001 From: TacoMonkey <75862693+TacoMonkey11@users.noreply.github.com> Date: Wed, 2 Feb 2022 20:05:35 -0500 Subject: Added translation for config option --- src/main/resources/assets/skyblocker/lang/en_us.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/main') diff --git a/src/main/resources/assets/skyblocker/lang/en_us.json b/src/main/resources/assets/skyblocker/lang/en_us.json index d3e7db26..a7ab8eff 100644 --- a/src/main/resources/assets/skyblocker/lang/en_us.json +++ b/src/main/resources/assets/skyblocker/lang/en_us.json @@ -48,5 +48,6 @@ "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", + "text.autoconfig.skyblocker.option.general.enableUpdateNotification": "Update Notification" } \ 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') 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') 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