aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/me')
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/SkyblockerInitializer.java3
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/discord/DiscordRPCManager.java9
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java12
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/utils/events/SkyblockLeaveCallback.java21
4 files changed, 42 insertions, 3 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/SkyblockerInitializer.java b/src/main/java/me/xmrvizzy/skyblocker/SkyblockerInitializer.java
index be0bb0dd..b60ae4d1 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/SkyblockerInitializer.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/SkyblockerInitializer.java
@@ -7,6 +7,7 @@ import me.xmrvizzy.skyblocker.skyblock.api.StatsCommand;
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 {
@@ -19,5 +20,7 @@ public class SkyblockerInitializer implements ClientModInitializer {
ItemRegistry.init();
StatsCommand.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..68963809 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/discord/DiscordRPCManager.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/discord/DiscordRPCManager.java
@@ -7,6 +7,8 @@ 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 org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -98,4 +100,11 @@ public class DiscordRPCManager implements IPCListener{
isConnected = false;
}
+ public void init(){
+ SkyblockLeaveCallback.EVENT.register(() -> {
+ stop();
+ 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 66d04b50..045da7fe 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java
@@ -1,6 +1,8 @@
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;
@@ -34,10 +36,14 @@ public class Utils {
isInjected = true;
ItemTooltipCallback.EVENT.register(PriceInfoTooltip::onInjectTooltip);
}
- Events.onSkyblockJoin();
-
+ SkyblockJoinCallback.EVENT.invoker().join();
+ isOnSkyblock = true;
+ }
+ if (!sidebar.get(0).contains("SKYBLOCK") && isOnSkyblock) {
+ SkyblockLeaveCallback.EVENT.invoker().leave();
+ Utils.isOnSkyblock = false;
+ Utils.isInDungeons = false;
}
- if (!sidebar.get(0).contains("SKYBLOCK") && isOnSkyblock) Events.onSkyblockDisconnect();
isInDungeons = isOnSkyblock && string.contains("The Catacombs");
}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/events/SkyblockLeaveCallback.java b/src/main/java/me/xmrvizzy/skyblocker/utils/events/SkyblockLeaveCallback.java
new file mode 100644
index 00000000..c02ddba4
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/utils/events/SkyblockLeaveCallback.java
@@ -0,0 +1,21 @@
+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<SkyblockLeaveCallback> 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();
+}