diff options
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker/utils')
3 files changed, 36 insertions, 21 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/Events.java b/src/main/java/me/xmrvizzy/skyblocker/utils/Events.java index e3aa4da4..9c488f34 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/utils/Events.java +++ b/src/main/java/me/xmrvizzy/skyblocker/utils/Events.java @@ -1,7 +1,6 @@ package me.xmrvizzy.skyblocker.utils; import me.xmrvizzy.skyblocker.SkyblockerMod; -import me.xmrvizzy.skyblocker.config.SkyblockerConfig; import net.minecraft.client.MinecraftClient; import net.minecraft.text.*; import org.slf4j.Logger; @@ -9,11 +8,11 @@ import org.slf4j.LoggerFactory; public class Events { public static MinecraftClient client = MinecraftClient.getInstance(); - public static Logger logger = LoggerFactory.getLogger(SkyblockerMod.NAMESPACE); + public static Logger LOGGER = LoggerFactory.getLogger(SkyblockerMod.NAMESPACE); public static void onSkyblockJoin(){ Utils.isOnSkyblock = true; - logger.info("Joined Skyblock"); + LOGGER.info("[Skyblocker] Joined Skyblock"); if (UpdateChecker.shouldUpdate()){ TranslatableText linkMessage = new TranslatableText("skyblocker.update.update_message"); TranslatableText linkMessageEnding = new TranslatableText("skyblocker.update.update_message_end"); @@ -21,12 +20,14 @@ public class Events { TranslatableText hoverText = new TranslatableText("skyblocker.update.hover_text"); linkMessage.append(link.styled(style -> style.withClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, "https://modrinth.com/mod/skyblocker-liap/versions")).withHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, hoverText)))).append(linkMessageEnding); - client.player.sendMessage(linkMessage, false); + if (client.player != null) { + client.player.sendMessage(linkMessage, false); + } } } public static void onSkyblockDisconnect(){ - logger.info("Disconnected from Skyblock"); + LOGGER.info("[Skyblocker] Disconnected from Skyblock"); SkyblockerMod.getInstance().discordRPCManager.stop(); Utils.isOnSkyblock = false; Utils.isInDungeons = false; diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/Scheduler.java b/src/main/java/me/xmrvizzy/skyblocker/utils/Scheduler.java index 0fdf4892..16e5b023 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/utils/Scheduler.java +++ b/src/main/java/me/xmrvizzy/skyblocker/utils/Scheduler.java @@ -1,8 +1,12 @@ package me.xmrvizzy.skyblocker.utils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import java.util.PriorityQueue; public class Scheduler { + private static final Logger LOGGER = LoggerFactory.getLogger(Scheduler.class); private int currentTick; private final PriorityQueue<ScheduledTask> tasks; @@ -12,21 +16,25 @@ public class Scheduler { } public void schedule(Runnable task, int delay) { - assert delay > 0; + if (delay < 0) + LOGGER.warn("Scheduled a task with negative delay"); ScheduledTask tmp = new ScheduledTask(currentTick + delay, task); tasks.add(tmp); } public void scheduleCyclic(Runnable task, int period) { - new CyclicTask(task, period).run(); + if (period <= 0) + LOGGER.error("Attempted to schedule a cyclic task with period lower than 1"); + else + new CyclicTask(task, period).run(); } public void tick() { currentTick += 1; ScheduledTask task; while ((task = tasks.peek()) != null && task.schedule <= currentTick) { - task.run(); tasks.poll(); + task.run(); } } diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java b/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java index 21c30ada..5894c9df 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java +++ b/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java @@ -3,6 +3,7 @@ package me.xmrvizzy.skyblocker.utils; import me.xmrvizzy.skyblocker.skyblock.item.PriceInfoTooltip; import net.fabricmc.fabric.api.client.item.v1.ItemTooltipCallback; import net.minecraft.client.MinecraftClient; +import net.minecraft.client.network.ClientPlayerEntity; import net.minecraft.scoreboard.Scoreboard; import net.minecraft.scoreboard.ScoreboardObjective; import net.minecraft.scoreboard.ScoreboardPlayerScore; @@ -45,12 +46,13 @@ public class Utils { String location = null; List<String> sidebarLines = getSidebar(); try { - assert sidebarLines != null; - for (String sidebarLine : sidebarLines) { - if (sidebarLine.contains("⏣")) location = sidebarLine; + if( sidebarLines != null) { + for (String sidebarLine : sidebarLines) { + if (sidebarLine.contains("⏣")) location = sidebarLine; + } + if (location == null) location = "Unknown"; + location = location.replace('⏣', ' ').strip(); } - if (location == null) location = "Unknown"; - location = location.replace('⏣', ' ').strip(); } catch (IndexOutOfBoundsException e) { e.printStackTrace(); } @@ -63,10 +65,12 @@ public class Utils { List<String> sidebarLines = getSidebar(); try { - assert sidebarLines != null; - for (String sidebarLine : sidebarLines) { - if (sidebarLine.contains("Piggy:")) purseString = sidebarLine; - if (sidebarLine.contains("Purse:")) purseString = sidebarLine; + + if (sidebarLines != null) { + for (String sidebarLine : sidebarLines) { + if (sidebarLine.contains("Piggy:")) purseString = sidebarLine; + if (sidebarLine.contains("Purse:")) purseString = sidebarLine; + } } if (purseString != null) purse = Double.parseDouble(purseString.replaceAll("[^0-9.]", "").strip()); else purse = 0; @@ -82,9 +86,10 @@ public class Utils { String bitsString = null; List<String> sidebarLines = getSidebar(); try { - assert sidebarLines != null; - for (String sidebarLine : sidebarLines) { - if (sidebarLine.contains("Bits")) bitsString = sidebarLine; + if (sidebarLines != null) { + for (String sidebarLine : sidebarLines) { + if (sidebarLine.contains("Bits")) bitsString = sidebarLine; + } } if (bitsString != null) { bits = Integer.parseInt(bitsString.replaceAll("[^0-9.]", "").strip()); @@ -98,7 +103,8 @@ public class Utils { public static List<String> getSidebar() { try { - assert MinecraftClient.getInstance().player != null; + ClientPlayerEntity client = MinecraftClient.getInstance().player; + if (client == null) return Collections.emptyList(); Scoreboard scoreboard = MinecraftClient.getInstance().player.getScoreboard(); ScoreboardObjective objective = scoreboard.getObjectiveForSlot(1); List<String> lines = new ArrayList<>(); |