From da2b7afe80b97198dfc5c9bddc93f468ca9a49d2 Mon Sep 17 00:00:00 2001 From: TacoMonkey <75862693+TacoMonkey11@users.noreply.github.com> Date: Sat, 19 Mar 2022 18:09:38 -0400 Subject: clean up UpdateChecker --- .../xmrvizzy/skyblocker/utils/UpdateChecker.java | 62 +++++++++++++--------- 1 file changed, 38 insertions(+), 24 deletions(-) (limited to 'src/main/java/me/xmrvizzy/skyblocker/utils/UpdateChecker.java') diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/UpdateChecker.java b/src/main/java/me/xmrvizzy/skyblocker/utils/UpdateChecker.java index fd43d8e3..b64541c9 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/utils/UpdateChecker.java +++ b/src/main/java/me/xmrvizzy/skyblocker/utils/UpdateChecker.java @@ -3,16 +3,18 @@ package me.xmrvizzy.skyblocker.utils; import com.google.gson.*; import me.xmrvizzy.skyblocker.SkyblockerMod; import me.xmrvizzy.skyblocker.config.SkyblockerConfig; +import me.xmrvizzy.skyblocker.utils.events.SkyblockJoinCallback; 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 net.minecraft.util.ActionResult; 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 +27,43 @@ 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(){ + if (shouldUpdate()){ + SkyblockJoinCallback.EVENT.register(() -> { + 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); + return ActionResult.PASS; + }); + } + } } -- cgit From 1971d74529540a230acff05bc87c82997462da67 Mon Sep 17 00:00:00 2001 From: TacoMonkey <75862693+TacoMonkey11@users.noreply.github.com> Date: Sun, 20 Mar 2022 11:17:12 -0400 Subject: Move events into one file --- .../skyblocker/discord/DiscordRPCManager.java | 8 ++---- .../xmrvizzy/skyblocker/utils/SkyblockEvents.java | 33 ++++++++++++++++++++++ .../xmrvizzy/skyblocker/utils/UpdateChecker.java | 11 +++----- .../java/me/xmrvizzy/skyblocker/utils/Utils.java | 6 ++-- .../utils/events/SkyblockJoinCallback.java | 21 -------------- .../utils/events/SkyblockLeaveCallback.java | 21 -------------- 6 files changed, 41 insertions(+), 59 deletions(-) create mode 100644 src/main/java/me/xmrvizzy/skyblocker/utils/SkyblockEvents.java delete mode 100644 src/main/java/me/xmrvizzy/skyblocker/utils/events/SkyblockJoinCallback.java delete mode 100644 src/main/java/me/xmrvizzy/skyblocker/utils/events/SkyblockLeaveCallback.java (limited to 'src/main/java/me/xmrvizzy/skyblocker/utils/UpdateChecker.java') diff --git a/src/main/java/me/xmrvizzy/skyblocker/discord/DiscordRPCManager.java b/src/main/java/me/xmrvizzy/skyblocker/discord/DiscordRPCManager.java index 68963809..867e16b2 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/discord/DiscordRPCManager.java +++ b/src/main/java/me/xmrvizzy/skyblocker/discord/DiscordRPCManager.java @@ -7,8 +7,7 @@ import com.jagrosh.discordipc.entities.RichPresence; import com.jagrosh.discordipc.entities.pipe.PipeStatus; import me.xmrvizzy.skyblocker.config.SkyblockerConfig; import me.xmrvizzy.skyblocker.utils.Utils; -import me.xmrvizzy.skyblocker.utils.events.SkyblockLeaveCallback; -import net.minecraft.util.ActionResult; +import me.xmrvizzy.skyblocker.utils.SkyblockEvents; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -101,10 +100,7 @@ public class DiscordRPCManager implements IPCListener{ } public void init(){ - SkyblockLeaveCallback.EVENT.register(() -> { - stop(); - return ActionResult.PASS; - }); + SkyblockEvents.LEAVE.register(this::stop); } } diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/SkyblockEvents.java b/src/main/java/me/xmrvizzy/skyblocker/utils/SkyblockEvents.java new file mode 100644 index 00000000..2dd83ffa --- /dev/null +++ b/src/main/java/me/xmrvizzy/skyblocker/utils/SkyblockEvents.java @@ -0,0 +1,33 @@ +package me.xmrvizzy.skyblocker.utils; + +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.fabricmc.fabric.api.event.Event; +import net.fabricmc.fabric.api.event.EventFactory; + +@Environment(EnvType.CLIENT) +public final class SkyblockEvents { + public static final Event JOIN = EventFactory.createArrayBacked(SkyblockEvents.SkyblockJoin.class, callbacks -> () -> { + for (SkyblockEvents.SkyblockJoin callback : callbacks) { + callback.onSkyblockJoin(); + } + }); + + public static final Event LEAVE = EventFactory.createArrayBacked(SkyblockEvents.SkyblockLeave.class, callbacks -> () -> { + for (SkyblockEvents.SkyblockLeave callback : callbacks) { + callback.onSkyblockLeave(); + } + }); + + @Environment(EnvType.CLIENT) + @FunctionalInterface + public interface SkyblockJoin { + void onSkyblockJoin(); + } + + @Environment(EnvType.CLIENT) + @FunctionalInterface + public interface SkyblockLeave { + void onSkyblockLeave(); + } +} diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/UpdateChecker.java b/src/main/java/me/xmrvizzy/skyblocker/utils/UpdateChecker.java index b64541c9..8909b5a9 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/utils/UpdateChecker.java +++ b/src/main/java/me/xmrvizzy/skyblocker/utils/UpdateChecker.java @@ -3,13 +3,11 @@ package me.xmrvizzy.skyblocker.utils; import com.google.gson.*; import me.xmrvizzy.skyblocker.SkyblockerMod; import me.xmrvizzy.skyblocker.config.SkyblockerConfig; -import me.xmrvizzy.skyblocker.utils.events.SkyblockJoinCallback; 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 net.minecraft.util.ActionResult; import org.spongepowered.asm.util.VersionNumber; import java.io.IOException; @@ -53,8 +51,8 @@ public class UpdateChecker { } public static void init(){ - if (shouldUpdate()){ - SkyblockJoinCallback.EVENT.register(() -> { + 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"); @@ -62,8 +60,7 @@ public class UpdateChecker { 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); - return ActionResult.PASS; - }); - } + } + }); } } diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java b/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java index 045da7fe..4551564d 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java +++ b/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java @@ -1,8 +1,6 @@ package me.xmrvizzy.skyblocker.utils; import me.xmrvizzy.skyblocker.skyblock.item.PriceInfoTooltip; -import me.xmrvizzy.skyblocker.utils.events.SkyblockJoinCallback; -import me.xmrvizzy.skyblocker.utils.events.SkyblockLeaveCallback; import net.fabricmc.fabric.api.client.item.v1.ItemTooltipCallback; import net.minecraft.client.MinecraftClient; import net.minecraft.scoreboard.Scoreboard; @@ -36,11 +34,11 @@ public class Utils { isInjected = true; ItemTooltipCallback.EVENT.register(PriceInfoTooltip::onInjectTooltip); } - SkyblockJoinCallback.EVENT.invoker().join(); + SkyblockEvents.JOIN.invoker().onSkyblockJoin(); isOnSkyblock = true; } if (!sidebar.get(0).contains("SKYBLOCK") && isOnSkyblock) { - SkyblockLeaveCallback.EVENT.invoker().leave(); + SkyblockEvents.LEAVE.invoker().onSkyblockLeave(); Utils.isOnSkyblock = false; Utils.isInDungeons = false; } diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/events/SkyblockJoinCallback.java b/src/main/java/me/xmrvizzy/skyblocker/utils/events/SkyblockJoinCallback.java deleted file mode 100644 index b5d621dd..00000000 --- a/src/main/java/me/xmrvizzy/skyblocker/utils/events/SkyblockJoinCallback.java +++ /dev/null @@ -1,21 +0,0 @@ -package me.xmrvizzy.skyblocker.utils.events; - -import net.fabricmc.fabric.api.event.Event; -import net.fabricmc.fabric.api.event.EventFactory; -import net.minecraft.util.ActionResult; - -public interface SkyblockJoinCallback { - Event EVENT = EventFactory.createArrayBacked(SkyblockJoinCallback.class, - (listeners) -> () -> { - for (SkyblockJoinCallback listener : listeners) { - ActionResult result = listener.join(); - - if(result != ActionResult.PASS) { - return result; - } - } - return ActionResult.PASS; - }); - - ActionResult join(); -} diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/events/SkyblockLeaveCallback.java b/src/main/java/me/xmrvizzy/skyblocker/utils/events/SkyblockLeaveCallback.java deleted file mode 100644 index c02ddba4..00000000 --- a/src/main/java/me/xmrvizzy/skyblocker/utils/events/SkyblockLeaveCallback.java +++ /dev/null @@ -1,21 +0,0 @@ -package me.xmrvizzy.skyblocker.utils.events; - -import net.fabricmc.fabric.api.event.Event; -import net.fabricmc.fabric.api.event.EventFactory; -import net.minecraft.util.ActionResult; - -public interface SkyblockLeaveCallback { - Event EVENT = EventFactory.createArrayBacked(SkyblockLeaveCallback.class, - (listeners) -> () -> { - for (SkyblockLeaveCallback listener : listeners) { - ActionResult result = listener.leave(); - - if(result != ActionResult.PASS) { - return result; - } - } - return ActionResult.PASS; - }); - - ActionResult leave(); -} -- cgit