aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorYasin <LifeIsAParadox@users.noreply.github.com>2022-05-03 13:43:59 +0200
committerGitHub <noreply@github.com>2022-05-03 13:43:59 +0200
commit50566cf7e402094f84ddef998f815ff7a37559db (patch)
tree8347293277020ae4a9a3ca7617515df7ef052472 /src/main
parent84c72d8306c433bb73eea9b6e3466f6e8c8e746b (diff)
parent9a1eebebd9ce9b7b04991fe1940bcad78f509f0b (diff)
downloadSkyblocker-50566cf7e402094f84ddef998f815ff7a37559db.tar.gz
Skyblocker-50566cf7e402094f84ddef998f815ff7a37559db.tar.bz2
Skyblocker-50566cf7e402094f84ddef998f815ff7a37559db.zip
Merge pull request #66 from TacoMonkey11/fabricapi-events
Replace bootleg events with fabric api events
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/SkyblockerInitializer.java3
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/discord/DiscordRPCManager.java5
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/utils/Events.java35
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/utils/SkyblockEvents.java33
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/utils/UpdateChecker.java59
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java10
6 files changed, 83 insertions, 62 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/SkyblockerInitializer.java b/src/main/java/me/xmrvizzy/skyblocker/SkyblockerInitializer.java
index a15b3a96..e9af52f6 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/SkyblockerInitializer.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/SkyblockerInitializer.java
@@ -8,6 +8,7 @@ import me.xmrvizzy.skyblocker.skyblock.dwarven.DwarvenHud;
import me.xmrvizzy.skyblocker.skyblock.item.PriceInfoTooltip;
import me.xmrvizzy.skyblocker.skyblock.item.WikiLookup;
import me.xmrvizzy.skyblocker.skyblock.itemlist.ItemRegistry;
+import me.xmrvizzy.skyblocker.utils.UpdateChecker;
import net.fabricmc.api.ClientModInitializer;
public class SkyblockerInitializer implements ClientModInitializer {
@@ -21,5 +22,7 @@ public class SkyblockerInitializer implements ClientModInitializer {
StatsCommand.init();
DwarvenHud.init();
ChatMessageListener.init();
+ UpdateChecker.init();
+ SkyblockerMod.getInstance().discordRPCManager.init();
}
}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/discord/DiscordRPCManager.java b/src/main/java/me/xmrvizzy/skyblocker/discord/DiscordRPCManager.java
index e13dfd09..867e16b2 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/discord/DiscordRPCManager.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/discord/DiscordRPCManager.java
@@ -7,6 +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.SkyblockEvents;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -98,4 +99,8 @@ public class DiscordRPCManager implements IPCListener{
isConnected = false;
}
+ public void init(){
+ SkyblockEvents.LEAVE.register(this::stop);
+ }
+
}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/Events.java b/src/main/java/me/xmrvizzy/skyblocker/utils/Events.java
deleted file mode 100644
index 9c488f34..00000000
--- a/src/main/java/me/xmrvizzy/skyblocker/utils/Events.java
+++ /dev/null
@@ -1,35 +0,0 @@
-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("[Skyblocker] Joined Skyblock");
- 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");
- 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);
-
- if (client.player != null) {
- client.player.sendMessage(linkMessage, false);
- }
- }
- }
-
- public static void onSkyblockDisconnect(){
- LOGGER.info("[Skyblocker] Disconnected from Skyblock");
- SkyblockerMod.getInstance().discordRPCManager.stop();
- Utils.isOnSkyblock = false;
- Utils.isInDungeons = false;
- }
-}
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<SkyblockEvents.SkyblockJoin> JOIN = EventFactory.createArrayBacked(SkyblockEvents.SkyblockJoin.class, callbacks -> () -> {
+ for (SkyblockEvents.SkyblockJoin callback : callbacks) {
+ callback.onSkyblockJoin();
+ }
+ });
+
+ public static final Event<SkyblockEvents.SkyblockLeave> 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 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);
+ }
+ });
+ }
}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java b/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java
index 5894c9df..46f3a7e1 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java
@@ -35,10 +35,14 @@ public class Utils {
isInjected = true;
ItemTooltipCallback.EVENT.register(PriceInfoTooltip::onInjectTooltip);
}
- Events.onSkyblockJoin();
-
+ SkyblockEvents.JOIN.invoker().onSkyblockJoin();
+ isOnSkyblock = true;
+ }
+ if (!sidebar.get(0).contains("SKYBLOCK") && isOnSkyblock) {
+ SkyblockEvents.LEAVE.invoker().onSkyblockLeave();
+ Utils.isOnSkyblock = false;
+ Utils.isInDungeons = false;
}
- if (!sidebar.get(0).contains("SKYBLOCK") && isOnSkyblock) Events.onSkyblockDisconnect();
isInDungeons = isOnSkyblock && string.contains("The Catacombs");
}