diff options
14 files changed, 59 insertions, 48 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java b/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java index db702e81..e33e9c2d 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java +++ b/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java @@ -32,7 +32,7 @@ public class SkyblockerMod { if(onHypxiel()) { if (ticks % 4 == 0) try { - if (Utils.isDungeons) { + if (Utils.isInDungeons) { DungeonBlaze.DungeonBlaze(); } } catch (Exception e) { @@ -41,10 +41,10 @@ public class SkyblockerMod { if (ticks % 20 == 0) { rpTimer++; if (rpTimer == 5) { - if (discordRPCManager.isConnected && Utils.isSkyblock && SkyblockerConfig.get().richPresence.enableRichPresence) { + if (discordRPCManager.isConnected && Utils.isOnSkyblock && SkyblockerConfig.get().richPresence.enableRichPresence) { discordRPCManager.updatePresence(); } - if (discordRPCManager.isConnected && Utils.isSkyblock && SkyblockerConfig.get().richPresence.cycleMode) { + if (discordRPCManager.isConnected && Utils.isOnSkyblock && SkyblockerConfig.get().richPresence.cycleMode) { discordRPCManager.cycleCount++; if (discordRPCManager.cycleCount == 3) discordRPCManager.cycleCount = 0; } @@ -52,7 +52,7 @@ public class SkyblockerMod { } if (client.world != null && !client.isInSingleplayer()) Utils.sbChecker(); - if (!discordRPCManager.isConnected && Utils.isSkyblock && SkyblockerConfig.get().richPresence.enableRichPresence) + if (!discordRPCManager.isConnected && Utils.isOnSkyblock && SkyblockerConfig.get().richPresence.enableRichPresence) discordRPCManager.start(); if (discordRPCManager.isConnected && !SkyblockerConfig.get().richPresence.enableRichPresence) discordRPCManager.stop(); diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/ChatHudListenerMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/ChatHudListenerMixin.java index 43103159..9170f1db 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/ChatHudListenerMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/ChatHudListenerMixin.java @@ -1,20 +1,15 @@ package me.xmrvizzy.skyblocker.mixin; import me.xmrvizzy.skyblocker.chat.ChatParser; -import me.xmrvizzy.skyblocker.config.SkyblockerConfig; import me.xmrvizzy.skyblocker.utils.Utils; -import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.hud.ChatHudListener; -import net.minecraft.client.network.ClientPlayerEntity; import net.minecraft.network.MessageType; -import net.minecraft.text.ClickEvent; import net.minecraft.text.Text; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import java.util.List; import java.util.UUID; @Mixin(ChatHudListener.class) @@ -24,7 +19,7 @@ public class ChatHudListenerMixin { @Inject(method = "onChatMessage", at = @At("HEAD"), cancellable = true) public void onMessage(MessageType messageType, Text message, UUID senderUuid, CallbackInfo ci) { - if (!Utils.isSkyblock) + if (!Utils.isOnSkyblock) return; if (parser.shouldFilter(message.getString())) ci.cancel(); diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/ClientPlayerEntityMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/ClientPlayerEntityMixin.java index 5825b394..160c8078 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/ClientPlayerEntityMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/ClientPlayerEntityMixin.java @@ -29,6 +29,6 @@ public abstract class ClientPlayerEntityMixin extends AbstractClientPlayerEntity @Inject(method = "dropSelectedItem", at = @At("HEAD"), cancellable = true) public void dropSelectedItem(boolean dropEntireStack, CallbackInfoReturnable<Boolean> cir) { - if (Utils.isSkyblock) HotbarSlotLock.handleDropSelectedItem(this.getInventory().selectedSlot, cir); + if (Utils.isOnSkyblock) HotbarSlotLock.handleDropSelectedItem(this.getInventory().selectedSlot, cir); } }
\ No newline at end of file diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/GenericContainerScreenMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/GenericContainerScreenMixin.java index 3e6bf16a..d63d17b8 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/GenericContainerScreenMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/GenericContainerScreenMixin.java @@ -25,7 +25,7 @@ public abstract class GenericContainerScreenMixin extends HandledScreen<GenericC @Override protected void drawForeground(MatrixStack matrices, int mouseX, int mouseY) { super.drawForeground(matrices, mouseX, mouseY); - if (Utils.isSkyblock) + if (Utils.isOnSkyblock) SkyblockerMod.getInstance().containerSolverManager.onDraw(matrices, this.handler.slots.subList(0, rows * 9)); } } diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java index d676dc25..06b74549 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java @@ -2,7 +2,6 @@ package me.xmrvizzy.skyblocker.mixin; import me.xmrvizzy.skyblocker.config.SkyblockerConfig; import me.xmrvizzy.skyblocker.skyblock.item.WikiLookup; -import me.xmrvizzy.skyblocker.skyblock.itemlist.ItemListWidget; import me.xmrvizzy.skyblocker.skyblock.quicknav.QuickNav; import me.xmrvizzy.skyblocker.skyblock.quicknav.QuickNavButton; import me.xmrvizzy.skyblocker.utils.Utils; @@ -35,7 +34,7 @@ public abstract class HandledScreenMixin extends Screen { @Inject(method = "init()V", at = @At("TAIL")) private void init(CallbackInfo ci) { // quicknav - if (Utils.isSkyblock && SkyblockerConfig.get().general.quicknav.enableQuicknav) { + if (Utils.isOnSkyblock && SkyblockerConfig.get().general.quicknav.enableQuicknav) { String screenTitle = super.getTitle().getString().trim(); List<QuickNavButton> buttons = QuickNav.init(screenTitle); for (QuickNavButton button : buttons) super.addDrawableChild(button); diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java index 2653aeef..19e0d79e 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java @@ -43,7 +43,7 @@ public abstract class InGameHudMixin extends DrawableHelper { @Inject(method = "setOverlayMessage(Lnet/minecraft/text/Text;Z)V", at = @At("HEAD"), cancellable = true) private void onSetOverlayMessage(Text message, boolean tinted, CallbackInfo ci) { - if(!Utils.isSkyblock) + if(!Utils.isOnSkyblock) return; String msg = message.getString(); if(statusBars.update(msg)) @@ -52,7 +52,7 @@ public abstract class InGameHudMixin extends DrawableHelper { @Inject(method = "renderHotbar", at = @At("HEAD")) public void renderHotbar(float f, MatrixStack matrices, CallbackInfo ci) { - if (Utils.isSkyblock) { + if (Utils.isOnSkyblock) { hotbarMatrices = matrices; hotbarSlotIndex = 0; } @@ -60,7 +60,7 @@ public abstract class InGameHudMixin extends DrawableHelper { @Inject(method = "renderHotbarItem", at = @At("HEAD")) public void renderHotbarItem(int i, int j, float f, PlayerEntity player, ItemStack stack, int seed, CallbackInfo ci) { - if (Utils.isSkyblock) { + if (Utils.isOnSkyblock) { if (HotbarSlotLock.isLocked(hotbarSlotIndex)) { RenderSystem.setShaderTexture(0,SLOT_LOCK); this.drawTexture(hotbarMatrices, i, j, 0, 0,16, 16); @@ -71,18 +71,18 @@ public abstract class InGameHudMixin extends DrawableHelper { @Inject(method = "renderExperienceBar", at = @At("HEAD"), cancellable = true) private void renderExperienceBar(MatrixStack matrices, int x, CallbackInfo ci) { - if (Utils.isSkyblock && SkyblockerConfig.get().general.bars.enableBars) + if (Utils.isOnSkyblock && SkyblockerConfig.get().general.bars.enableBars) ci.cancel(); } @Inject(method = "renderStatusBars", at = @At("HEAD"), cancellable = true) private void renderStatusBars(MatrixStack matrices, CallbackInfo ci) { - if(!Utils.isSkyblock) + if(!Utils.isOnSkyblock) return; if(statusBars.render(matrices, scaledWidth, scaledHeight)) ci.cancel(); - if (Utils.isDungeons && SkyblockerConfig.get().locations.dungeons.enableMap) + if (Utils.isInDungeons && SkyblockerConfig.get().locations.dungeons.enableMap) DungeonMap.render(matrices); RenderSystem.setShaderTexture(0, GUI_ICONS_TEXTURE); @@ -90,7 +90,7 @@ public abstract class InGameHudMixin extends DrawableHelper { @Inject(method = "renderMountHealth", at = @At("HEAD"), cancellable = true) private void renderMountHealth(MatrixStack matrices, CallbackInfo ci) { - if (Utils.isSkyblock && SkyblockerConfig.get().general.bars.enableBars) + if (Utils.isOnSkyblock && SkyblockerConfig.get().general.bars.enableBars) ci.cancel(); } }
\ No newline at end of file diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/InventoryScreenMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/InventoryScreenMixin.java index fcdbf706..4bff2779 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/InventoryScreenMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/InventoryScreenMixin.java @@ -19,7 +19,7 @@ public class InventoryScreenMixin { ) ) RecipeBookWidget constructor() { - if (Utils.isSkyblock && SkyblockerConfig.get().general.itemList.enableItemList) + if (Utils.isOnSkyblock && SkyblockerConfig.get().general.itemList.enableItemList) return new ItemListWidget(); else return new RecipeBookWidget(); diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/ItemRendererMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/ItemRendererMixin.java index 002497ce..395027bc 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/ItemRendererMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/ItemRendererMixin.java @@ -28,7 +28,7 @@ public abstract class ItemRendererMixin { @Inject(method = "renderGuiItemOverlay(Lnet/minecraft/client/font/TextRenderer;Lnet/minecraft/item/ItemStack;IILjava/lang/String;)V", at = @At("HEAD")) public void renderItemBar(TextRenderer renderer, ItemStack stack, int x, int y, @Nullable String countLabel, CallbackInfo ci) { - if (Utils.isSkyblock && SkyblockerConfig.get().locations.dwarvenMines.enableDrillFuel) { + if (Utils.isOnSkyblock && SkyblockerConfig.get().locations.dwarvenMines.enableDrillFuel) { if (!stack.isEmpty()) { NbtCompound tag = stack.getNbt(); if (tag != null && tag.contains("ExtraAttributes")) { diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/LeverBlockMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/LeverBlockMixin.java index f1c6661d..c3ff287e 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/LeverBlockMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/LeverBlockMixin.java @@ -22,7 +22,7 @@ public abstract class LeverBlockMixin extends WallMountedBlock { @Inject(method = "getOutlineShape", at = @At("HEAD"), cancellable = true) public void onGetOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context, CallbackInfoReturnable<VoxelShape> cir) { - if (Utils.isSkyblock) { + if (Utils.isOnSkyblock) { VoxelShape shape = OldLever.getShape(state.get(FACE), state.get(FACING)); if (shape != null) cir.setReturnValue(shape); diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/MinecraftClientMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/MinecraftClientMixin.java index 21730e69..6561eb5b 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/MinecraftClientMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/MinecraftClientMixin.java @@ -27,13 +27,13 @@ public class MinecraftClientMixin { @Inject(method = "handleInputEvents", at = @At("HEAD")) public void handleInputEvents(CallbackInfo ci) { - if (Utils.isSkyblock) HotbarSlotLock.handleInputEvents(player); + if (Utils.isOnSkyblock) HotbarSlotLock.handleInputEvents(player); } @Inject(method = "setScreen", at = @At("HEAD")) public void onSetScreen(Screen screen, CallbackInfo ci) { ContainerSolverManager manager = SkyblockerMod.getInstance().containerSolverManager; - if(Utils.isSkyblock && screen instanceof GenericContainerScreen) + if(Utils.isOnSkyblock && screen instanceof GenericContainerScreen) manager.onSetScreen((GenericContainerScreen) screen); else manager.clearScreen(); diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/Reparty.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/Reparty.java index 69278023..d4dd7fb0 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/Reparty.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/Reparty.java @@ -23,7 +23,7 @@ public class Reparty extends ChatListener { repartying = false; ClientCommandManager.DISPATCHER.register( ClientCommandManager.literal("rp").executes(context -> { - if (!Utils.isSkyblock || repartying) + if (!Utils.isOnSkyblock || repartying) return 0; assert client.player != null; repartying = true; diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/WikiLookup.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/WikiLookup.java index a0788126..4e5e7f32 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/WikiLookup.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/WikiLookup.java @@ -5,7 +5,6 @@ import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonParser; import me.xmrvizzy.skyblocker.utils.Utils; -import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents; import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper; import net.minecraft.client.MinecraftClient; import net.minecraft.client.option.KeyBinding; @@ -49,7 +48,7 @@ public class WikiLookup { } public static void openWiki(Slot slot){ - if (Utils.isSkyblock){ + if (Utils.isOnSkyblock){ id = getSkyblockId(slot); try { //Setting up a connection with the repo diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/Events.java b/src/main/java/me/xmrvizzy/skyblocker/utils/Events.java new file mode 100644 index 00000000..8488d6ab --- /dev/null +++ b/src/main/java/me/xmrvizzy/skyblocker/utils/Events.java @@ -0,0 +1,29 @@ +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("Joined Skyblock"); + if (UpdateChecker.shouldUpdate()){ + LiteralText link = new LiteralText("https://modrinth.com/mod/skyblocker-liap/versions"); + client.player.sendMessage(Text.of("You are running an outdated version of Skyblocker! Click the link below to find the newest version!"), false); + client.player.sendMessage(link.styled(style -> style.withClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, "https://modrinth.com/mod/skyblocker-liap/versions"))), false); + } + } + + public static void onSkyblockDisconnect(){ + logger.info("Disconnected from Skyblock"); + SkyblockerMod.getInstance().discordRPCManager.stop(); + Utils.isOnSkyblock = false; + Utils.isInDungeons = false; + } +} diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java b/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java index a4736242..e3623bb4 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java +++ b/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java @@ -1,7 +1,5 @@ package me.xmrvizzy.skyblocker.utils; -import com.google.common.collect.Iterables; -import com.google.common.collect.Lists; import me.xmrvizzy.skyblocker.skyblock.item.PriceInfoTooltip; import net.fabricmc.fabric.api.client.item.v1.ItemTooltipCallback; import net.minecraft.client.MinecraftClient; @@ -12,44 +10,35 @@ import net.minecraft.scoreboard.Team; import net.minecraft.util.Formatting; import java.util.ArrayList; -import java.util.Collection; import java.util.Collections; import java.util.List; -import java.util.stream.Collectors; public class Utils { - public static boolean isSkyblock = false; - public static boolean isDungeons = false; + public static boolean isOnSkyblock = false; + public static boolean isInDungeons = false; public static boolean isInjected = false; public static void sbChecker() { List<String> sidebar = getSidebar(); if (sidebar == null) { - isSkyblock = false; - isDungeons = false; + isOnSkyblock = false; + isInDungeons = false; return; } String string = sidebar.toString(); if (sidebar.isEmpty()) return; - if (sidebar.get(sidebar.size() - 1).equals("www.hypixel.net")) { - if (sidebar.get(0).contains("SKYBLOCK")){ + if (sidebar.get(0).contains("SKYBLOCK") && !isOnSkyblock){ if(!isInjected){ isInjected = true; ItemTooltipCallback.EVENT.register(PriceInfoTooltip::onInjectTooltip); } - isSkyblock = true; + Events.onSkyblockJoin(); } - else isSkyblock = false; - - isDungeons = isSkyblock && string.contains("The Catacombs"); - - } else { - isSkyblock = false; - isDungeons = false; + if (!sidebar.get(0).contains("SKYBLOCK") && isOnSkyblock) Events.onSkyblockDisconnect(); + isInDungeons = isOnSkyblock && string.contains("The Catacombs"); } - } public static String getLocation() { String location = null; |