aboutsummaryrefslogtreecommitdiffstats
path: root/bukkit/src/main/java/com
diff options
context:
space:
mode:
authorKrakenied <krakenied1@gmail.com>2025-07-24 17:44:24 +0200
committerKrakenied <46192742+Krakenied@users.noreply.github.com>2025-07-29 00:06:46 +0200
commit6980e1e014f4050b5a2c9c72298f3d1effd2760f (patch)
tree9d5fc579eac44e3c14944763bf7cc86f160ca4a3 /bukkit/src/main/java/com
parent2f0d66226faf07fda9f08e6b2a01ce9af8402f51 (diff)
Add {days} support to time format
Refactor FormatUtils, use JSpecify annotations
Diffstat (limited to 'bukkit/src/main/java/com')
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/FormatUtils.java51
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;
}
}