diff options
| author | Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> | 2024-09-21 21:10:27 -0400 |
|---|---|---|
| committer | Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> | 2024-09-21 21:10:27 -0400 |
| commit | a503b7d90787fa2450d4b0005a9f851de3434ac6 (patch) | |
| tree | a875296522458b5899d561c330bb9ec9bd04727d /src | |
| parent | 04afe1aa4d5e7cd236a7c295aed7bb1bda15f2e9 (diff) | |
| download | Skyblocker-a503b7d90787fa2450d4b0005a9f851de3434ac6.tar.gz Skyblocker-a503b7d90787fa2450d4b0005a9f851de3434ac6.tar.bz2 Skyblocker-a503b7d90787fa2450d4b0005a9f851de3434ac6.zip | |
Refactor format time
Diffstat (limited to 'src')
6 files changed, 36 insertions, 46 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/chocolatefactory/ChocolateFactorySolver.java b/src/main/java/de/hysky/skyblocker/skyblock/chocolatefactory/ChocolateFactorySolver.java index 087d1663..da0f66c7 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/chocolatefactory/ChocolateFactorySolver.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/chocolatefactory/ChocolateFactorySolver.java @@ -6,6 +6,7 @@ import de.hysky.skyblocker.skyblock.item.tooltip.adders.LineSmoothener; import de.hysky.skyblocker.utils.ItemUtils; import de.hysky.skyblocker.utils.RegexUtils; import de.hysky.skyblocker.utils.RomanNumerals; +import de.hysky.skyblocker.utils.SkyblockTime; import de.hysky.skyblocker.utils.container.SimpleContainerSolver; import de.hysky.skyblocker.utils.container.SlotTextAdder; import de.hysky.skyblocker.utils.container.TooltipAdder; @@ -364,26 +365,7 @@ public class ChocolateFactorySolver extends SimpleContainerSolver implements Too } private MutableText formatTime(double seconds) { - seconds = Math.ceil(seconds); - if (seconds <= 0) return Text.literal("Now").formatted(Formatting.GREEN); - - StringBuilder builder = new StringBuilder(); - if (seconds >= 86400) { - builder.append((int) (seconds / 86400)).append("d "); - seconds %= 86400; - } - if (seconds >= 3600) { - builder.append((int) (seconds / 3600)).append("h "); - seconds %= 3600; - } - if (seconds >= 60) { - builder.append((int) (seconds / 60)).append("m "); - seconds %= 60; - } - if (seconds >= 1) { - builder.append((int) seconds).append("s"); - } - return Text.literal(builder.toString()).formatted(Formatting.GOLD); + return SkyblockTime.formatTime(seconds).formatted(Formatting.GOLD); } @Override diff --git a/src/main/java/de/hysky/skyblocker/skyblock/events/EventToast.java b/src/main/java/de/hysky/skyblocker/skyblock/events/EventToast.java index 48ea05c4..16bd5272 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/events/EventToast.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/events/EventToast.java @@ -1,7 +1,7 @@ package de.hysky.skyblocker.skyblock.events; import de.hysky.skyblocker.SkyblockerMod; -import de.hysky.skyblocker.utils.Utils; +import de.hysky.skyblocker.utils.SkyblockTime; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.DrawContext; @@ -71,7 +71,7 @@ public class EventToast implements Toast { started = timeTillEvent < 0; if (started) return; - Text time = Utils.getDurationText(timeTillEvent); + Text time = SkyblockTime.formatTime(timeTillEvent); TextRenderer textRenderer = MinecraftClient.getInstance().textRenderer; context.drawText(textRenderer, time, x, y, Colors.LIGHT_YELLOW, false); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/UpcomingEventsTab.java b/src/main/java/de/hysky/skyblocker/skyblock/itemlist/UpcomingEventsTab.java index 9552ae87..5b46f568 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/UpcomingEventsTab.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/itemlist/UpcomingEventsTab.java @@ -3,7 +3,7 @@ package de.hysky.skyblocker.skyblock.itemlist; import de.hysky.skyblocker.mixins.accessors.DrawContextInvoker; import de.hysky.skyblocker.skyblock.events.EventNotifications; import de.hysky.skyblocker.skyblock.tabhud.widget.JacobsContestWidget; -import de.hysky.skyblocker.utils.Utils; +import de.hysky.skyblocker.utils.SkyblockTime; import de.hysky.skyblocker.utils.scheduler.MessageScheduler; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; @@ -105,10 +105,10 @@ public class UpcomingEventsTab extends ItemListWidget.TabContainerWidget { if (events.isEmpty()) { context.drawText(textRenderer, Text.literal(" ").append(Text.translatable("skyblocker.events.tab.noMore")), x, y + textRenderer.fontHeight, Colors.GRAY, false); } else if (events.peekFirst().start() > time) { - MutableText formatted = Text.literal(" ").append(Text.translatable("skyblocker.events.tab.startsIn", Utils.getDurationText((int) (events.peekFirst().start() - time)))).formatted(Formatting.YELLOW); + MutableText formatted = Text.literal(" ").append(Text.translatable("skyblocker.events.tab.startsIn", SkyblockTime.formatTime((int) (events.peekFirst().start() - time)))).formatted(Formatting.YELLOW); context.drawText(textRenderer, formatted, x, y + textRenderer.fontHeight, -1, true); } else { - MutableText formatted = Text.literal(" ").append(Text.translatable( "skyblocker.events.tab.endsIn", Utils.getDurationText((int) (events.peekFirst().start() + events.peekFirst().duration() - time)))).formatted(Formatting.GREEN); + MutableText formatted = Text.literal(" ").append(Text.translatable( "skyblocker.events.tab.endsIn", SkyblockTime.formatTime((int) (events.peekFirst().start() + events.peekFirst().duration() - time)))).formatted(Formatting.GREEN); context.drawText(textRenderer, formatted, x, y + textRenderer.fontHeight, -1, true); } diff --git a/src/main/java/de/hysky/skyblocker/utils/SkyblockTime.java b/src/main/java/de/hysky/skyblocker/utils/SkyblockTime.java index 3f6025f0..3c9a51fd 100644 --- a/src/main/java/de/hysky/skyblocker/utils/SkyblockTime.java +++ b/src/main/java/de/hysky/skyblocker/utils/SkyblockTime.java @@ -4,6 +4,9 @@ import de.hysky.skyblocker.annotations.Init; import de.hysky.skyblocker.utils.scheduler.Scheduler; import net.fabricmc.fabric.api.event.Event; import net.fabricmc.fabric.api.event.EventFactory; +import net.minecraft.text.MutableText; +import net.minecraft.text.Text; +import net.minecraft.util.Formatting; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -122,6 +125,29 @@ public class SkyblockTime { LOGGER.info("[Skyblocker Time] Skyblock time updated to Year {}, Season {}, Month {}, Day {}, Hour {}", year, season, month, day, hour); } + public static MutableText formatTime(double seconds) { + seconds = Math.ceil(seconds); + if (seconds <= 0) return Text.literal("Now").formatted(Formatting.GREEN); + + StringBuilder builder = new StringBuilder(); + if (seconds >= 86400) { + builder.append((int) (seconds / 86400)).append("d "); + seconds %= 86400; + } + if (seconds >= 3600) { + builder.append((int) (seconds / 3600)).append("h "); + seconds %= 3600; + } + if (seconds >= 60) { + builder.append((int) (seconds / 60)).append("m "); + seconds %= 60; + } + if (seconds >= 1) { + builder.append((int) seconds).append("s"); + } + return Text.literal(builder.toString()); + } + public enum Season { SPRING, SUMMER, FALL, WINTER } diff --git a/src/main/java/de/hysky/skyblocker/utils/Utils.java b/src/main/java/de/hysky/skyblocker/utils/Utils.java index aa795d68..53be6f87 100644 --- a/src/main/java/de/hysky/skyblocker/utils/Utils.java +++ b/src/main/java/de/hysky/skyblocker/utils/Utils.java @@ -28,7 +28,6 @@ import net.minecraft.client.MinecraftClient; import net.minecraft.client.network.ClientPlayerEntity; import net.minecraft.client.network.PlayerListEntry; import net.minecraft.scoreboard.*; -import net.minecraft.text.MutableText; import net.minecraft.text.Text; import net.minecraft.util.Formatting; import net.minecraft.util.Util; @@ -353,24 +352,7 @@ public class Utils { } } - // TODO: Combine with `ChocolateFactorySolver.formatTime` and move into `SkyblockTime`. - public static Text getDurationText(int timeInSeconds) { - int seconds = timeInSeconds % 60; - int minutes = (timeInSeconds / 60) % 60; - int hours = (timeInSeconds / 3600); - - MutableText time = Text.empty(); - if (hours > 0) { - time.append(hours + "h").append(" "); - } - if (hours > 0 || minutes > 0) { - time.append(minutes + "m").append(" "); - } - time.append(seconds + "s"); - return time; - } - - private static void updateFromPlayerList(MinecraftClient client) { + private static void updateFromPlayerList(MinecraftClient client) { if (client.getNetworkHandler() == null) { return; } diff --git a/src/main/java/de/hysky/skyblocker/utils/config/DurationController.java b/src/main/java/de/hysky/skyblocker/utils/config/DurationController.java index 09edcf3c..00046475 100644 --- a/src/main/java/de/hysky/skyblocker/utils/config/DurationController.java +++ b/src/main/java/de/hysky/skyblocker/utils/config/DurationController.java @@ -1,6 +1,6 @@ package de.hysky.skyblocker.utils.config; -import de.hysky.skyblocker.utils.Utils; +import de.hysky.skyblocker.utils.SkyblockTime; import dev.isxander.yacl3.api.Option; import dev.isxander.yacl3.api.utils.Dimension; import dev.isxander.yacl3.gui.AbstractWidget; @@ -18,7 +18,7 @@ public record DurationController(Option<Integer> option) implements IStringContr @Override public String getString() { - return Utils.getDurationText(option.pendingValue()).getString(); + return SkyblockTime.formatTime(option.pendingValue()).getString(); } |
