From b6b785f26995e647886be4824d8cc1fb0b4897f0 Mon Sep 17 00:00:00 2001 From: TacoMonkey <75862693+tacomonkey11@users.noreply.github.com> Date: Sat, 19 Mar 2022 18:10:03 -0400 Subject: switch to fabric api events --- .../java/me/xmrvizzy/skyblocker/utils/Utils.java | 12 +++++++++--- .../utils/events/SkyblockLeaveCallback.java | 21 +++++++++++++++++++++ 2 files changed, 30 insertions(+), 3 deletions(-) create mode 100644 src/main/java/me/xmrvizzy/skyblocker/utils/events/SkyblockLeaveCallback.java (limited to 'src/main/java/me/xmrvizzy/skyblocker/utils') 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 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