diff options
Diffstat (limited to 'src/main/java')
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(); +} |