aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/xmrvizzy/skyblocker/utils
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker/utils')
-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
2 files changed, 30 insertions, 3 deletions
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();
+}