diff options
| author | Krakenied <krakenied1@gmail.com> | 2025-07-24 17:44:24 +0200 |
|---|---|---|
| committer | Krakenied <46192742+Krakenied@users.noreply.github.com> | 2025-07-29 00:06:46 +0200 |
| commit | 6980e1e014f4050b5a2c9c72298f3d1effd2760f (patch) | |
| tree | 9d5fc579eac44e3c14944763bf7cc86f160ca4a3 /bukkit/src/main/java/com/leonardobishop | |
| parent | 2f0d66226faf07fda9f08e6b2a01ce9af8402f51 (diff) | |
Add {days} support to time format
Refactor FormatUtils, use JSpecify annotations
Diffstat (limited to 'bukkit/src/main/java/com/leonardobishop')
| -rw-r--r-- | bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/FormatUtils.java | 51 |
1 files changed, 36 insertions, 15 deletions
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/FormatUtils.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/FormatUtils.java index dd66abc9..27558a24 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/FormatUtils.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/FormatUtils.java @@ -2,24 +2,25 @@ package com.leonardobishop.quests.bukkit.util; import com.leonardobishop.quests.bukkit.BukkitQuestsPlugin; import com.leonardobishop.quests.common.config.QuestsConfig; -import org.jetbrains.annotations.NotNull; +import org.jspecify.annotations.NullMarked; import java.text.DecimalFormat; import java.text.DecimalFormatSymbols; import java.util.Locale; import java.util.logging.Level; +@NullMarked public final class FormatUtils { private static DecimalFormat floatingFormat = new DecimalFormat("#,##0.00", DecimalFormatSymbols.getInstance(Locale.US)); private static DecimalFormat integralFormat = new DecimalFormat("#,##0", DecimalFormatSymbols.getInstance(Locale.US)); - public static void setNumberFormats(final @NotNull BukkitQuestsPlugin plugin) { + public static void setNumberFormats(final BukkitQuestsPlugin plugin) { floatingFormat = parseFormat(plugin, "floating", floatingFormat); integralFormat = parseFormat(plugin, "integral", integralFormat); } - private static @NotNull DecimalFormat parseFormat(final @NotNull BukkitQuestsPlugin plugin, final @NotNull String path, final @NotNull DecimalFormat def) { + private static DecimalFormat parseFormat(final BukkitQuestsPlugin plugin, final String path, final DecimalFormat def) { final QuestsConfig config = plugin.getQuestsConfig(); final String formatString = config.getString("number-formats." + path + ".format", def.toPattern()); @@ -35,25 +36,45 @@ public final class FormatUtils { } } - public static @NotNull String floating(final @NotNull Number floating) { + public static String floating(final Number floating) { return floatingFormat.format(floating); } - public static @NotNull String integral(final @NotNull Number integral) { + public static String integral(final Number integral) { return integralFormat.format(integral); } - public static @NotNull String time(final long totalSeconds) { - final long hours = totalSeconds / 3600; + // Probably can be somehow cleaned + public static String time(long seconds) { + String messageString = Messages.TIME_FORMAT.getMessageLegacyColor(); - final long remainingSeconds = totalSeconds % 3600; - final long minutes = remainingSeconds / 60; - final long seconds = remainingSeconds % 60; + final boolean useDays = messageString.contains("{days}"); + if (useDays) { + final long days = seconds / 86400; + seconds = seconds % 86400; + messageString = messageString.replace("{days}", String.format("%02d", days)); + } + + final boolean useHours = messageString.contains("{hours}"); + if (useHours) { + final long hours = seconds / 3600; + seconds = seconds % 3600; + messageString = messageString.replace("{hours}", String.format("%02d", hours)); + } + + final boolean useMinutes = messageString.contains("{minutes}"); + if (useMinutes) { + final long minutes = seconds / 60; + seconds = seconds % 60; + messageString = messageString.replace("{minutes}", String.format("%02d", minutes)); + } + + final boolean useSeconds = messageString.contains("{seconds}"); + if (useSeconds) { + messageString = messageString.replace("{seconds}", String.format("%02d", seconds)); + } - // {hours}h {minutes}m {seconds}s - return Messages.TIME_FORMAT.getMessageLegacyColor() - .replace("{hours}", String.format("%02d", hours)) - .replace("{minutes}", String.format("%02d", minutes)) - .replace("{seconds}", String.format("%02d", seconds)); + // ({days}d) {hours}h {minutes}m {seconds}s + return messageString; } } |
