diff options
author | Kevin <92656833+kevinthegreat1@users.noreply.github.com> | 2023-05-22 16:48:49 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-22 16:48:49 -0400 |
commit | 365d173b2ef8dfa4d4520c08dd432c317acf5a82 (patch) | |
tree | cb7326dd2826cac2fb5a345a73f617416bb2bd6f /src/main/java/me | |
parent | dcc4465a17993c302319e615a2d2cebdb4eb1d82 (diff) | |
parent | 7abc0a2e873689a1b8d89990398329415ddd67e2 (diff) | |
download | Skyblocker-365d173b2ef8dfa4d4520c08dd432c317acf5a82.tar.gz Skyblocker-365d173b2ef8dfa4d4520c08dd432c317acf5a82.tar.bz2 Skyblocker-365d173b2ef8dfa4d4520c08dd432c317acf5a82.zip |
Merge pull request #156 from kevinthegreat1/docs
Refactors & docs
Diffstat (limited to 'src/main/java/me')
20 files changed, 95 insertions, 52 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java b/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java index 503d3a64..aa10b29a 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java +++ b/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java @@ -22,14 +22,22 @@ import net.fabricmc.api.ClientModInitializer; import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents; import net.minecraft.client.MinecraftClient; +/** + * Main class for Skyblocker which initializes features, registers events, and manages ticks. This class will be instantiated by Fabric. Do not instantiate this class. + */ public class SkyblockerMod implements ClientModInitializer { public static final String NAMESPACE = "skyblocker"; private static SkyblockerMod INSTANCE; + @SuppressWarnings("deprecation") public final Scheduler scheduler = new Scheduler(); public final ContainerSolverManager containerSolverManager = new ContainerSolverManager(); public final StatusBarTracker statusBarTracker = new StatusBarTracker(); + /** + * Do not instantiate this class. Use {@link #getInstance()} instead. + */ + @Deprecated public SkyblockerMod() { INSTANCE = this; } @@ -38,6 +46,9 @@ public class SkyblockerMod implements ClientModInitializer { return INSTANCE; } + /** + * Register {@link #tick(MinecraftClient)} to {@link ClientTickEvents#END_CLIENT_TICK}, initialize all features, and schedule tick events. + */ @Override public void onInitializeClient() { ClientTickEvents.END_CLIENT_TICK.register(this::tick); @@ -62,6 +73,10 @@ public class SkyblockerMod implements ClientModInitializer { scheduler.scheduleCyclic(DwarvenHud::update, 40); } + /** + * Ticks the scheduler. Called once at the end of every client tick through {@link ClientTickEvents#END_CLIENT_TICK}. + * @param client the Minecraft client. + */ public void tick(MinecraftClient client) { scheduler.tick(); } diff --git a/src/main/java/me/xmrvizzy/skyblocker/chat/ChatMessageListener.java b/src/main/java/me/xmrvizzy/skyblocker/chat/ChatMessageListener.java index 9e6b5f64..f502a356 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/chat/ChatMessageListener.java +++ b/src/main/java/me/xmrvizzy/skyblocker/chat/ChatMessageListener.java @@ -62,7 +62,7 @@ public interface ChatMessageListener { } // Register EVENT to ClientReceiveMessageEvents.ALLOW_GAME from fabric api ClientReceiveMessageEvents.ALLOW_GAME.register((message, overlay) -> { - if (!Utils.isOnSkyblock) { + if (!Utils.isOnSkyblock()) { return true; } ChatFilterResult result = EVENT.invoker().onMessage(message, message.getString()); diff --git a/src/main/java/me/xmrvizzy/skyblocker/discord/DiscordRPCManager.java b/src/main/java/me/xmrvizzy/skyblocker/discord/DiscordRPCManager.java index 10b88ce8..4fa5265f 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/discord/DiscordRPCManager.java +++ b/src/main/java/me/xmrvizzy/skyblocker/discord/DiscordRPCManager.java @@ -37,7 +37,7 @@ public class DiscordRPCManager { SkyblockerConfig.get().richPresence.customMessage = "Playing Skyblock"; AutoConfig.getConfigHolder(SkyblockerConfig.class).save(); } - if ((!Utils.isOnSkyblock || !SkyblockerConfig.get().richPresence.enableRichPresence) && DiscordIPC.isConnected()){ + if ((!Utils.isOnSkyblock() || !SkyblockerConfig.get().richPresence.enableRichPresence) && DiscordIPC.isConnected()){ DiscordIPC.stop(); LOGGER.info("Discord RPC stopped"); return; diff --git a/src/main/java/me/xmrvizzy/skyblocker/gui/ContainerSolverManager.java b/src/main/java/me/xmrvizzy/skyblocker/gui/ContainerSolverManager.java index 8f3f7e2a..e4ff229d 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/gui/ContainerSolverManager.java +++ b/src/main/java/me/xmrvizzy/skyblocker/gui/ContainerSolverManager.java @@ -42,7 +42,7 @@ public class ContainerSolverManager extends DrawableHelper { public void init() { ScreenEvents.BEFORE_INIT.register((client, screen, scaledWidth, scaledHeight) -> { - if (Utils.isOnSkyblock && screen instanceof GenericContainerScreen genericContainerScreen) { + if (Utils.isOnSkyblock() && screen instanceof GenericContainerScreen genericContainerScreen) { ScreenEvents.afterRender(screen).register((screen1, matrices, mouseX, mouseY, delta) -> { matrices.push(); matrices.translate(((HandledScreenAccessor) genericContainerScreen).getX(), ((HandledScreenAccessor) genericContainerScreen).getY(), 300); diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/ClientPlayerEntityMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/ClientPlayerEntityMixin.java index 237f6ba9..76c4e8ec 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/ClientPlayerEntityMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/ClientPlayerEntityMixin.java @@ -6,7 +6,6 @@ import me.xmrvizzy.skyblocker.utils.Utils; import net.minecraft.client.network.AbstractClientPlayerEntity; import net.minecraft.client.network.ClientPlayerEntity; import net.minecraft.client.world.ClientWorld; -// import net.minecraft.network.encryption.PlayerPublicKey; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -14,15 +13,12 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(ClientPlayerEntity.class) public abstract class ClientPlayerEntityMixin extends AbstractClientPlayerEntity { - - // public ClientPlayerEntityMixin(ClientWorld world, GameProfile profile, PlayerPublicKey publicKey) { public ClientPlayerEntityMixin(ClientWorld world, GameProfile profile) { - // super(world, profile, publicKey); super(world, profile); } @Inject(method = "dropSelectedItem", at = @At("HEAD"), cancellable = true) public void skyblocker$dropSelectedItem(boolean dropEntireStack, CallbackInfoReturnable<Boolean> cir) { - if (Utils.isOnSkyblock) 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/FarmlandBlockMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/FarmlandBlockMixin.java index 29da4bd6..761f8a68 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/FarmlandBlockMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/FarmlandBlockMixin.java @@ -22,10 +22,11 @@ public abstract class FarmlandBlockMixin extends Block { @Inject(method = "getOutlineShape", at = @At("HEAD"), cancellable = true) public void skyblocker$onGetOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context, CallbackInfoReturnable<VoxelShape> cir) { - if (Utils.isOnSkyblock && SkyblockerConfig.get().general.hitbox.oldFarmlandHitbox) + if (Utils.isOnSkyblock() && SkyblockerConfig.get().general.hitbox.oldFarmlandHitbox) cir.setReturnValue(Block.createCuboidShape(0.0, 0.0, 0.0, 16.0, 16.0, 16.0)); } + @SuppressWarnings("deprecation") @Override public VoxelShape getCullingShape(BlockState state, BlockView world, BlockPos pos) { return Block.createCuboidShape(0.0, 0.0, 0.0, 16.0, 15.0, 16.0); diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java index c137e6c8..e17795ab 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java @@ -50,7 +50,7 @@ public abstract class InGameHudMixin extends DrawableHelper { @Inject(method = "setOverlayMessage(Lnet/minecraft/text/Text;Z)V", at = @At("HEAD"), cancellable = true) private void skyblocker$onSetOverlayMessage(Text message, boolean tinted, CallbackInfo ci) { - if (!Utils.isOnSkyblock || !SkyblockerConfig.get().general.bars.enableBars) + if (!Utils.isOnSkyblock() || !SkyblockerConfig.get().general.bars.enableBars) return; String msg = message.getString(); String res = statusBarTracker.update(msg, SkyblockerConfig.get().messages.hideMana); @@ -63,7 +63,7 @@ public abstract class InGameHudMixin extends DrawableHelper { @Inject(method = "renderHotbar", at = @At("HEAD")) public void skyblocker$renderHotbar(float f, MatrixStack matrices, CallbackInfo ci) { - if (Utils.isOnSkyblock) { + if (Utils.isOnSkyblock()) { hotbarMatrices = matrices; hotbarSlotIndex = 0; } @@ -71,7 +71,7 @@ public abstract class InGameHudMixin extends DrawableHelper { @Inject(method = "renderHotbarItem", at = @At("HEAD")) public void skyblocker$renderHotbarItem(MatrixStack matrices, int i, int j, float f, PlayerEntity player, ItemStack stack, int seed, CallbackInfo ci) { - if (Utils.isOnSkyblock) { + if (Utils.isOnSkyblock()) { if (HotbarSlotLock.isLocked(hotbarSlotIndex)) { RenderSystem.setShaderTexture(0, SLOT_LOCK); DrawableHelper.drawTexture(hotbarMatrices, i, j, 0, 0, 16, 16); @@ -82,18 +82,18 @@ public abstract class InGameHudMixin extends DrawableHelper { @Inject(method = "renderExperienceBar", at = @At("HEAD"), cancellable = true) private void skyblocker$renderExperienceBar(MatrixStack matrices, int x, CallbackInfo ci) { - if (Utils.isOnSkyblock && 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 skyblocker$renderStatusBars(MatrixStack matrices, CallbackInfo ci) { - if (!Utils.isOnSkyblock) + if (!Utils.isOnSkyblock()) return; if (statusBars.render(matrices, scaledWidth, scaledHeight)) ci.cancel(); - if (Utils.isInDungeons && SkyblockerConfig.get().locations.dungeons.enableMap) + if (Utils.isInDungeons() && SkyblockerConfig.get().locations.dungeons.enableMap) DungeonMap.render(matrices); RenderSystem.setShaderTexture(0, GUI_ICONS_TEXTURE); @@ -101,7 +101,7 @@ public abstract class InGameHudMixin extends DrawableHelper { @Inject(method = "renderMountHealth", at = @At("HEAD"), cancellable = true) private void skyblocker$renderMountHealth(MatrixStack matrices, CallbackInfo ci) { - if (Utils.isOnSkyblock && 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 8de390cc..64a1a4fe 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 abstract class InventoryScreenMixin { ) ) RecipeBookWidget skyblocker$constructor() { - if (Utils.isOnSkyblock && 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 b9ddc156..26bafc14 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/ItemRendererMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/ItemRendererMixin.java @@ -27,7 +27,7 @@ public abstract class ItemRendererMixin { @Inject(method = "renderGuiItemOverlay(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/font/TextRenderer;Lnet/minecraft/item/ItemStack;IILjava/lang/String;)V", at = @At("HEAD")) public void skyblocker$renderItemBar(MatrixStack matrices, TextRenderer renderer, ItemStack stack, int x, int y, @Nullable String countLabel, CallbackInfo ci) { - if (Utils.isOnSkyblock && 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 c28a7096..505de202 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 skyblocker$onGetOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context, CallbackInfoReturnable<VoxelShape> cir) { - if (Utils.isOnSkyblock) { + 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 24e27c08..0c1977fe 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/MinecraftClientMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/MinecraftClientMixin.java @@ -13,14 +13,13 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(MinecraftClient.class) public abstract class MinecraftClientMixin { - @Shadow @Nullable public ClientPlayerEntity player; @Inject(method = "handleInputEvents", at = @At("HEAD")) public void skyblocker$handleInputEvents(CallbackInfo ci) { - if (Utils.isOnSkyblock) { + if (Utils.isOnSkyblock()) { HotbarSlotLock.handleInputEvents(player); } } diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/ScreenMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/ScreenMixin.java index 14aa8868..9389b792 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/ScreenMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/ScreenMixin.java @@ -1,28 +1,24 @@ package me.xmrvizzy.skyblocker.mixin; -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 me.xmrvizzy.skyblocker.config.SkyblockerConfig; import me.xmrvizzy.skyblocker.utils.Utils; - import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.item.ItemStack; 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; @Mixin(Screen.class) public abstract class ScreenMixin { - @Inject(at = @At("HEAD"), method = "renderTooltip(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/item/ItemStack;II)V", cancellable = true) public void skyblocker$renderTooltip(MatrixStack matrices, ItemStack itemStack, int x, int y, CallbackInfo ci) { Text stackName = itemStack.getName(); String strName = stackName.getString(); - if (Utils.isOnSkyblock && SkyblockerConfig.get().general.hideEmptyTooltips && strName.equals(" ")) { + if (Utils.isOnSkyblock() && SkyblockerConfig.get().general.hideEmptyTooltips && strName.equals(" ")) { ci.cancel(); } } - } diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/BackpackPreview.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/BackpackPreview.java index a6dfe31d..4820bc0f 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/BackpackPreview.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/BackpackPreview.java @@ -51,7 +51,7 @@ public class BackpackPreview extends DrawableHelper { public static void tick() { Utils.sbChecker(); // force update isOnSkyblock to prevent crash on disconnect - if (Utils.isOnSkyblock) { + if (Utils.isOnSkyblock()) { // save all dirty storages saveStorage(); // update save dir based on uuid and sb profile diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/DungeonBlaze.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/DungeonBlaze.java index 4554372b..219f4258 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/DungeonBlaze.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/DungeonBlaze.java @@ -21,7 +21,7 @@ public class DungeonBlaze { public static void update() { ClientWorld world = MinecraftClient.getInstance().world; - if (world == null || !Utils.isInDungeons) return; + if (world == null || !Utils.isInDungeons()) return; if(!renderHooked){ WorldRenderEvents.END.register(DungeonBlaze::blazeRenderer); 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 42fcc36a..fdc39c42 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/Reparty.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/Reparty.java @@ -27,7 +27,7 @@ public class Reparty extends ChatPatternListener { super("^(?:You are not currently in a party\\.|Party (?:Membe|Moderato)rs(?: \\(([0-9]+)\\)|:( .*)))$"); this.repartying = false; ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> dispatcher.register(ClientCommandManager.literal("rp").executes(context -> { - if (!Utils.isOnSkyblock || this.repartying || client.player == null) return 0; + if (!Utils.isOnSkyblock() || this.repartying || client.player == null) return 0; this.repartying = true; client.player.networkHandler.sendCommand("p list"); return 0; diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/PriceInfoTooltip.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/PriceInfoTooltip.java index d9263f9a..04f2b596 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/PriceInfoTooltip.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/PriceInfoTooltip.java @@ -45,7 +45,7 @@ public class PriceInfoTooltip { private static final Map<String, String> apiAddresses; public static void onInjectTooltip(ItemStack stack, TooltipContext context, List<Text> lines) { - if (!Utils.isOnSkyblock || client.player == null) return; + if (!Utils.isOnSkyblock() || client.player == null) return; String name = getInternalNameFromNBT(stack); if (name == null) return; @@ -295,7 +295,7 @@ public class PriceInfoTooltip { public static int minute = -1; public static void init() { skyblocker.scheduler.scheduleCyclic(() -> { - if (!Utils.isOnSkyblock && 0 < minute++) { + if (!Utils.isOnSkyblock() && 0 < minute++) { nullMsgSend = false; return; } 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 305720d0..d05e5cb8 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/WikiLookup.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/WikiLookup.java @@ -42,7 +42,7 @@ public class WikiLookup { } public static void openWiki(Slot slot) { - if (Utils.isOnSkyblock) { + if (Utils.isOnSkyblock()) { id = getSkyblockId(slot); try { String wikiLink = ItemRegistry.getWikiLink(id); diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav/QuickNav.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav/QuickNav.java index 8ab49754..1d58435e 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav/QuickNav.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav/QuickNav.java @@ -19,7 +19,7 @@ public class QuickNav { public static void init() { ScreenEvents.AFTER_INIT.register((client, screen, scaledWidth, scaledHeight) -> { - if (Utils.isOnSkyblock && SkyblockerConfig.get().quickNav.enableQuickNav && screen instanceof HandledScreen<?>) { + if (Utils.isOnSkyblock() && SkyblockerConfig.get().quickNav.enableQuickNav && screen instanceof HandledScreen<?>) { String screenTitle = screen.getTitle().getString().trim(); List<QuickNavButton> buttons = QuickNav.init(screenTitle); for (QuickNavButton button : buttons) Screens.getButtons(screen).add(button); diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/Scheduler.java b/src/main/java/me/xmrvizzy/skyblocker/utils/Scheduler.java index 16e5b023..efba4995 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/utils/Scheduler.java +++ b/src/main/java/me/xmrvizzy/skyblocker/utils/Scheduler.java @@ -1,27 +1,46 @@ package me.xmrvizzy.skyblocker.utils; +import me.xmrvizzy.skyblocker.SkyblockerMod; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.PriorityQueue; +/** + * A scheduler for running tasks at a later time. Tasks will be run synchronously on the main client thread. Use the instance stored in {@link SkyblockerMod#scheduler}. Do not instantiate this class. + */ public class Scheduler { private static final Logger LOGGER = LoggerFactory.getLogger(Scheduler.class); private int currentTick; private final PriorityQueue<ScheduledTask> tasks; + /** + * Do not instantiate this class. Use {@link SkyblockerMod#scheduler} instead. + */ + @SuppressWarnings("DeprecatedIsStillUsed") + @Deprecated public Scheduler() { currentTick = 0; tasks = new PriorityQueue<>(); } + /** + * Schedules a task to run after a delay. + * @param task the task to run + * @param delay the delay in ticks + */ public void schedule(Runnable task, int delay) { if (delay < 0) LOGGER.warn("Scheduled a task with negative delay"); - ScheduledTask tmp = new ScheduledTask(currentTick + delay, task); + ScheduledTask tmp = new ScheduledTask(task, currentTick + delay); tasks.add(tmp); } + /** + * Schedules a task to run every period ticks. + * @param task the task to run + * @param period the period in ticks + */ public void scheduleCyclic(Runnable task, int period) { if (period <= 0) LOGGER.error("Attempted to schedule a cyclic task with period lower than 1"); @@ -38,23 +57,25 @@ public class Scheduler { } } - private class CyclicTask implements Runnable { - private final Runnable inner; - private final int period; - - public CyclicTask(Runnable task, int period) { - this.inner = task; - this.period = period; - } - + /** + * A task that runs every period ticks. More specifically, this task reschedules itself to run again after period ticks every time it runs. + * @param inner the task to run + * @param period the period in ticks + */ + private record CyclicTask(Runnable inner, int period) implements Runnable { @Override public void run() { - schedule(this, period); + SkyblockerMod.getInstance().scheduler.schedule(this, period); inner.run(); } } - private record ScheduledTask(int schedule, Runnable inner) implements Comparable<ScheduledTask>, Runnable { + /** + * A task that runs at a specific tick, relative to {@link #currentTick}. + * @param inner the task to run + * @param schedule the tick to run at + */ + private record ScheduledTask(Runnable inner, int schedule) implements Comparable<ScheduledTask>, Runnable { @Override public int compareTo(ScheduledTask o) { return schedule - o.schedule; diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java b/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java index 532de0dd..028386ab 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java +++ b/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java @@ -14,10 +14,25 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; +/** + * Utility variables and methods for retrieving Skyblock related information. + */ public class Utils { - public static boolean isOnSkyblock = false; - public static boolean isInDungeons = false; - public static boolean isInjected = false; + private static boolean isOnSkyblock = false; + private static boolean isInDungeons = false; + private static boolean isInjected = false; + + public static boolean isOnSkyblock() { + return isOnSkyblock; + } + + public static boolean isInDungeons() { + return isInDungeons; + } + + public static boolean isInjected() { + return isInjected; + } public static void sbChecker() { MinecraftClient client = MinecraftClient.getInstance(); |