aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorKevin <92656833+kevinthegreat1@users.noreply.github.com>2025-03-02 23:27:52 -0500
committerGitHub <noreply@github.com>2025-03-03 12:27:52 +0800
commit07276f1378c6f98fbb0882a6d6f59dc685723351 (patch)
tree96bea8b9da7b21f54c6600f4dc40f40c3fa3a577 /src/main/java
parent38f2c51a116c87ca7ba6a6ffc5bd821770b57630 (diff)
downloadSkyblocker-07276f1378c6f98fbb0882a6d6f59dc685723351.tar.gz
Skyblocker-07276f1378c6f98fbb0882a6d6f59dc685723351.tar.bz2
Skyblocker-07276f1378c6f98fbb0882a6d6f59dc685723351.zip
Migrate to formatters (#1185)
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/accessories/newyearcakes/NewYearCakesHelper.java7
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/calculators/CalculatorCommand.java9
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/calculators/SignCalculator.java7
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/chocolatefactory/ChocolateFactorySolver.java26
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dwarven/profittrackers/PowderMiningTracker.java5
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/end/EndHudWidget.java19
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/EssenceShopAdder.java3
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/EvolvingItemAdder.java6
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/YourEssenceAdder.java9
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/BitsHelper.java11
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/EssenceShopPrice.java7
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/StackingEnchantProgressTooltip.java8
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/profileviewer/collections/GenericCategory.java9
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/profileviewer/dungeons/DungeonClassWidget.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/profileviewer/inventory/Pet.java6
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/profileviewer/skills/SkillWidget.java5
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/profileviewer/slayers/SlayerWidget.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/profileviewer/utils/ProfileViewerUtils.java6
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/slayers/hud/SlayerHudWidget.java7
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/PowderWidget.java11
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/Formatters.java41
21 files changed, 85 insertions, 125 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/accessories/newyearcakes/NewYearCakesHelper.java b/src/main/java/de/hysky/skyblocker/skyblock/accessories/newyearcakes/NewYearCakesHelper.java
index 4b3dbda8..253477b5 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/accessories/newyearcakes/NewYearCakesHelper.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/accessories/newyearcakes/NewYearCakesHelper.java
@@ -1,6 +1,7 @@
package de.hysky.skyblocker.skyblock.accessories.newyearcakes;
import de.hysky.skyblocker.config.SkyblockerConfigManager;
+import de.hysky.skyblocker.utils.Formatters;
import de.hysky.skyblocker.utils.Utils;
import de.hysky.skyblocker.utils.render.gui.ColorHighlight;
import de.hysky.skyblocker.utils.container.SimpleContainerSolver;
@@ -13,7 +14,6 @@ import net.minecraft.text.Text;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.text.NumberFormat;
import java.text.ParseException;
import java.util.*;
import java.util.regex.Matcher;
@@ -23,8 +23,7 @@ public class NewYearCakesHelper extends SimpleContainerSolver {
private static final Logger LOGGER = LoggerFactory.getLogger(NewYearCakesHelper.class);
private static final Pattern NEW_YEAR_CAKE = Pattern.compile("New Year Cake \\(Year (?<year>\\d+)\\)");
private static final Pattern NEW_YEAR_CAKE_PURCHASE = Pattern.compile("You purchased New Year Cake \\(Year (?<year>\\d+)\\) for .+ coins!");
- private static final NumberFormat NUMBER_FORMAT = NumberFormat.getInstance(Locale.US);
- public static final NewYearCakesHelper INSTANCE = new NewYearCakesHelper();
+ public static final NewYearCakesHelper INSTANCE = new NewYearCakesHelper();
private final Map<String, IntSet> cakes = new HashMap<>();
private NewYearCakesHelper() {
@@ -40,7 +39,7 @@ public class NewYearCakesHelper extends SimpleContainerSolver {
Matcher matcher = pattern.matcher(name);
if (matcher.matches()) {
try {
- return NUMBER_FORMAT.parse(matcher.group("year")).intValue();
+ return Formatters.INTEGER_NUMBERS.parse(matcher.group("year")).intValue();
} catch (ParseException e) {
LOGGER.info("Failed to parse year from New Year Cake: " + name, e);
}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/calculators/CalculatorCommand.java b/src/main/java/de/hysky/skyblocker/skyblock/calculators/CalculatorCommand.java
index 2aa4ddf9..065016cc 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/calculators/CalculatorCommand.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/calculators/CalculatorCommand.java
@@ -7,6 +7,7 @@ import de.hysky.skyblocker.SkyblockerMod;
import de.hysky.skyblocker.annotations.Init;
import de.hysky.skyblocker.utils.Calculator;
import de.hysky.skyblocker.utils.Constants;
+import de.hysky.skyblocker.utils.Formatters;
import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback;
import net.fabricmc.fabric.api.client.command.v2.FabricClientCommandSource;
import net.minecraft.client.MinecraftClient;
@@ -15,18 +16,14 @@ import net.minecraft.text.MutableText;
import net.minecraft.text.Text;
import net.minecraft.util.Formatting;
-import java.text.NumberFormat;
-import java.util.Locale;
-
import static com.mojang.brigadier.arguments.StringArgumentType.getString;
import static net.fabricmc.fabric.api.client.command.v2.ClientCommandManager.argument;
import static net.fabricmc.fabric.api.client.command.v2.ClientCommandManager.literal;
public class CalculatorCommand {
private static final MinecraftClient CLIENT = MinecraftClient.getInstance();
- private static final NumberFormat FORMATTER = NumberFormat.getInstance(Locale.US);
- @Init
+ @Init
public static void init() {
ClientCommandRegistrationCallback.EVENT.register(CalculatorCommand::calculate);
}
@@ -44,7 +41,7 @@ public class CalculatorCommand {
private static int doCalculation(String calculation) {
MutableText text = Constants.PREFIX.get();
try {
- text.append(Text.literal(FORMATTER.format(Calculator.calculate(calculation))).formatted(Formatting.GREEN));
+ text.append(Text.literal(Formatters.DOUBLE_NUMBERS.format(Calculator.calculate(calculation))).formatted(Formatting.GREEN));
} catch (UnsupportedOperationException e) {
text.append(Text.translatable("skyblocker.config.uiAndVisuals.inputCalculator.invalidEquation").formatted(Formatting.RED));
}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/calculators/SignCalculator.java b/src/main/java/de/hysky/skyblocker/skyblock/calculators/SignCalculator.java
index 0b52fde5..4a43dbff 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/calculators/SignCalculator.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/calculators/SignCalculator.java
@@ -2,18 +2,15 @@ package de.hysky.skyblocker.skyblock.calculators;
import de.hysky.skyblocker.config.SkyblockerConfigManager;
import de.hysky.skyblocker.utils.Calculator;
+import de.hysky.skyblocker.utils.Formatters;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.text.Text;
import net.minecraft.util.Formatting;
import org.jetbrains.annotations.VisibleForTesting;
-import java.text.NumberFormat;
-import java.util.Locale;
-
public class SignCalculator {
private static final MinecraftClient CLIENT = MinecraftClient.getInstance();
- private static final NumberFormat FORMATTER = NumberFormat.getInstance(Locale.US);
private static String lastInput;
private static double output;
@@ -65,7 +62,7 @@ public class SignCalculator {
if (output == -1) {
text = Text.translatable("skyblocker.config.uiAndVisuals.inputCalculator.invalidEquation").formatted(Formatting.RED);
} else {
- text = Text.literal(input + " = " + FORMATTER.format(output)).formatted(Formatting.GREEN);
+ text = Text.literal(input + " = " + Formatters.DOUBLE_NUMBERS.format(output)).formatted(Formatting.GREEN);
}
context.drawCenteredTextWithShadow(CLIENT.textRenderer, text, renderX, renderY, 0xFFFFFFFF);
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 9bc45670..0dbf1923 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/chocolatefactory/ChocolateFactorySolver.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/chocolatefactory/ChocolateFactorySolver.java
@@ -3,10 +3,7 @@ package de.hysky.skyblocker.skyblock.chocolatefactory;
import de.hysky.skyblocker.config.SkyblockerConfigManager;
import de.hysky.skyblocker.skyblock.item.slottext.SlotText;
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.*;
import de.hysky.skyblocker.utils.container.SimpleContainerSolver;
import de.hysky.skyblocker.utils.container.SlotTextAdder;
import de.hysky.skyblocker.utils.container.TooltipAdder;
@@ -28,7 +25,6 @@ import org.apache.commons.lang3.math.NumberUtils;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
-import java.text.NumberFormat;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -46,7 +42,6 @@ public class ChocolateFactorySolver extends SimpleContainerSolver implements Too
private static final Pattern PRESTIGE_REQUIREMENT_PATTERN = Pattern.compile("Chocolate this Prestige: ([\\d,]+) +Requires (\\S+) Chocolate this Prestige!");
private static final Pattern TIME_TOWER_STATUS_PATTERN = Pattern.compile("Status: (ACTIVE|INACTIVE)");
private static final Pattern TIME_TOWER_MULTIPLIER_PATTERN = Pattern.compile("by \\+([\\d.]+)x for \\dh\\.");
- private static final NumberFormat DECIMAL_FORMAT = NumberFormat.getInstance(Locale.US);
//Slots, for ease of maintenance rather than using magic numbers everywhere.
private static final byte RABBITS_START = 28;
@@ -75,11 +70,6 @@ public class ChocolateFactorySolver extends SimpleContainerSolver implements Too
private static StraySound ding = StraySound.NONE;
private static int dingTick = 0;
- static {
- DECIMAL_FORMAT.setMinimumFractionDigits(0);
- DECIMAL_FORMAT.setMaximumFractionDigits(1);
- }
-
public static final ChocolateFactorySolver INSTANCE = new ChocolateFactorySolver();
private ChocolateFactorySolver() {
@@ -308,7 +298,7 @@ public class ChocolateFactorySolver extends SimpleContainerSolver implements Too
if (requiredUntilNextPrestige > 0 && !canPrestige) {
lines.add(Text.empty()
.append(Text.literal("Chocolate until next prestige: ").formatted(Formatting.GRAY))
- .append(Text.literal(DECIMAL_FORMAT.format(requiredUntilNextPrestige)).formatted(Formatting.GOLD)));
+ .append(Text.literal(Formatters.FLOAT_NUMBERS.format(requiredUntilNextPrestige)).formatted(Formatting.GOLD)));
}
lines.add(Text.empty() //Keep this outside of the `if` to match the format of the upgrade tooltips, that say "Time until upgrade: Now" when it's possible
.append(Text.literal("Time until next prestige: ").formatted(Formatting.GRAY))
@@ -321,18 +311,18 @@ public class ChocolateFactorySolver extends SimpleContainerSolver implements Too
lines.add(Text.literal("Current stats:").formatted(Formatting.GRAY));
lines.add(Text.empty()
.append(Text.literal(" CPS increase: ").formatted(Formatting.GRAY))
- .append(Text.literal(DECIMAL_FORMAT.format(totalCps / totalCpsMultiplier * timeTowerMultiplier)).formatted(Formatting.GOLD)));
+ .append(Text.literal(Formatters.FLOAT_NUMBERS.format(totalCps / totalCpsMultiplier * timeTowerMultiplier)).formatted(Formatting.GOLD)));
lines.add(Text.empty()
.append(Text.literal(" CPS when active: ").formatted(Formatting.GRAY))
- .append(Text.literal(DECIMAL_FORMAT.format(isTimeTowerActive ? totalCps : totalCps / totalCpsMultiplier * (timeTowerMultiplier + totalCpsMultiplier))).formatted(Formatting.GOLD)));
+ .append(Text.literal(Formatters.FLOAT_NUMBERS.format(isTimeTowerActive ? totalCps : totalCps / totalCpsMultiplier * (timeTowerMultiplier + totalCpsMultiplier))).formatted(Formatting.GOLD)));
if (!isTimeTowerMaxed) {
lines.add(Text.literal("Stats after upgrade:").formatted(Formatting.GRAY));
lines.add(Text.empty()
.append(Text.literal(" CPS increase: ").formatted(Formatting.GRAY))
- .append(Text.literal(DECIMAL_FORMAT.format(totalCps / (totalCpsMultiplier) * (timeTowerMultiplier + 0.1))).formatted(Formatting.GOLD)));
+ .append(Text.literal(Formatters.FLOAT_NUMBERS.format(totalCps / (totalCpsMultiplier) * (timeTowerMultiplier + 0.1))).formatted(Formatting.GOLD)));
lines.add(Text.empty()
.append(Text.literal(" CPS when active: ").formatted(Formatting.GRAY))
- .append(Text.literal(DECIMAL_FORMAT.format(isTimeTowerActive ? totalCps / totalCpsMultiplier * (totalCpsMultiplier + 0.1) : totalCps / totalCpsMultiplier * (timeTowerMultiplier + 0.1 + totalCpsMultiplier))).formatted(Formatting.GOLD)));
+ .append(Text.literal(Formatters.FLOAT_NUMBERS.format(isTimeTowerActive ? totalCps / totalCpsMultiplier * (totalCpsMultiplier + 0.1) : totalCps / totalCpsMultiplier * (timeTowerMultiplier + 0.1 + totalCpsMultiplier))).formatted(Formatting.GOLD)));
}
return true;
}
@@ -343,11 +333,11 @@ public class ChocolateFactorySolver extends SimpleContainerSolver implements Too
if (rabbit.slot == slot) {
lines.add(Text.empty()
.append(Text.literal("CPS Increase: ").formatted(Formatting.GRAY))
- .append(Text.literal(DECIMAL_FORMAT.format(rabbit.cpsIncrease)).formatted(Formatting.GOLD)));
+ .append(Text.literal(Formatters.FLOAT_NUMBERS.format(rabbit.cpsIncrease)).formatted(Formatting.GOLD)));
lines.add(Text.empty()
.append(Text.literal("Cost per CPS: ").formatted(Formatting.GRAY))
- .append(Text.literal(DECIMAL_FORMAT.format(rabbit.cost / rabbit.cpsIncrease)).formatted(Formatting.GOLD)));
+ .append(Text.literal(Formatters.FLOAT_NUMBERS.format(rabbit.cost / rabbit.cpsIncrease)).formatted(Formatting.GOLD)));
if (rabbit.slot == bestUpgrade) {
if (rabbit.cost <= totalChocolate) {
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/profittrackers/PowderMiningTracker.java b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/profittrackers/PowderMiningTracker.java
index 8b49ee5c..4a41d9e7 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/profittrackers/PowderMiningTracker.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/profittrackers/PowderMiningTracker.java
@@ -31,6 +31,7 @@ import org.jetbrains.annotations.Unmodifiable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.nio.file.Path;
import java.text.NumberFormat;
import java.util.Comparator;
import java.util.List;
@@ -326,9 +327,9 @@ public final class PowderMiningTracker extends AbstractProfitTracker {
var set = INSTANCE.shownRewards.object2IntEntrySet();
for (Entry<Text> entry : set) {
context.drawTextWithShadow(MinecraftClient.getInstance().textRenderer, entry.getKey(), 5, y, 0xFFFFFF);
- context.drawTextWithShadow(MinecraftClient.getInstance().textRenderer, Text.of(NumberFormat.getInstance().format(entry.getIntValue())), 10 + MinecraftClient.getInstance().textRenderer.getWidth(entry.getKey()), y, 0xFFFFFF);
+ context.drawTextWithShadow(MinecraftClient.getInstance().textRenderer, Text.of(Formatters.INTEGER_NUMBERS.format(entry.getIntValue())), 10 + MinecraftClient.getInstance().textRenderer.getWidth(entry.getKey()), y, 0xFFFFFF);
y += 10;
}
- context.drawTextWithShadow(MinecraftClient.getInstance().textRenderer, Text.translatable("skyblocker.powderTracker.profit", NumberFormat.getInstance().format(INSTANCE.profit)).formatted(Formatting.GOLD), 5, y + 10, 0xFFFFFF);
+ context.drawTextWithShadow(MinecraftClient.getInstance().textRenderer, Text.translatable("skyblocker.powderTracker.profit", Formatters.DOUBLE_NUMBERS.format(INSTANCE.profit)).formatted(Formatting.GOLD), 5, y + 10, 0xFFFFFF);
}
}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/end/EndHudWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/end/EndHudWidget.java
index 7cc24769..8767d580 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/end/EndHudWidget.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/end/EndHudWidget.java
@@ -6,6 +6,7 @@ import de.hysky.skyblocker.config.SkyblockerConfigManager;
import de.hysky.skyblocker.skyblock.tabhud.widget.ComponentBasedWidget;
import de.hysky.skyblocker.skyblock.tabhud.widget.component.IcoTextComponent;
import de.hysky.skyblocker.skyblock.tabhud.widget.component.PlainTextComponent;
+import de.hysky.skyblocker.utils.Formatters;
import de.hysky.skyblocker.utils.Location;
import net.minecraft.component.DataComponentTypes;
import net.minecraft.component.type.ProfileComponent;
@@ -14,9 +15,8 @@ import net.minecraft.item.Items;
import net.minecraft.text.MutableText;
import net.minecraft.text.Text;
import net.minecraft.util.Formatting;
+import net.minecraft.util.Util;
-import java.text.NumberFormat;
-import java.util.Locale;
import java.util.Optional;
import java.util.Set;
@@ -26,17 +26,8 @@ public class EndHudWidget extends ComponentBasedWidget {
private static EndHudWidget instance = null;
- private static final NumberFormat DECIMAL_FORMAT = NumberFormat.getInstance(Locale.US);
- private static final ItemStack ENDERMAN_HEAD = new ItemStack(Items.PLAYER_HEAD);
- private static final ItemStack POPPY = new ItemStack(Items.POPPY);
-
- static {
- DECIMAL_FORMAT.setMinimumFractionDigits(0);
- DECIMAL_FORMAT.setMaximumFractionDigits(2);
-
- ENDERMAN_HEAD.set(DataComponentTypes.PROFILE, new ProfileComponent(Optional.of("MHF_Enderman"), Optional.empty(), new PropertyMap()));
- POPPY.set(DataComponentTypes.ENCHANTMENT_GLINT_OVERRIDE, true);
- }
+ private static final ItemStack ENDERMAN_HEAD = Util.make(new ItemStack(Items.PLAYER_HEAD), stack -> stack.set(DataComponentTypes.PROFILE, new ProfileComponent(Optional.of("MHF_Enderman"), Optional.empty(), new PropertyMap())));
+ private static final ItemStack POPPY = Util.make(new ItemStack(Items.POPPY), stack -> stack.set(DataComponentTypes.ENCHANTMENT_GLINT_OVERRIDE, true));
public EndHudWidget() {
super(TITLE, Formatting.DARK_PURPLE.getColorValue(), "hud_end");
@@ -72,7 +63,7 @@ public class EndHudWidget extends ComponentBasedWidget {
addComponent(new IcoTextComponent(ENDERMAN_HEAD, Text.literal("Zealots").formatted(Formatting.BOLD)));
addComponent(new PlainTextComponent(Text.translatable("skyblocker.end.hud.zealotsSinceLastEye", endStats.zealotsSinceLastEye())));
addComponent(new PlainTextComponent(Text.translatable("skyblocker.end.hud.zealotsTotalKills", endStats.totalZealotKills())));
- String avg = endStats.eyes() == 0 ? "???" : DECIMAL_FORMAT.format((float) endStats.totalZealotKills() / endStats.eyes());
+ String avg = endStats.eyes() == 0 ? "???" : Formatters.DOUBLE_NUMBERS.format((float) endStats.totalZealotKills() / endStats.eyes());
addComponent(new PlainTextComponent(Text.translatable("skyblocker.end.hud.avgKillsPerEye", avg)));
}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/EssenceShopAdder.java b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/EssenceShopAdder.java
index 03f37479..3ac2d026 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/EssenceShopAdder.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/EssenceShopAdder.java
@@ -2,6 +2,7 @@ package de.hysky.skyblocker.skyblock.item.slottext.adders;
import de.hysky.skyblocker.skyblock.item.slottext.SimpleSlotTextAdder;
import de.hysky.skyblocker.skyblock.item.slottext.SlotText;
+import de.hysky.skyblocker.utils.Formatters;
import de.hysky.skyblocker.utils.ItemUtils;
import de.hysky.skyblocker.utils.RomanNumerals;
import net.minecraft.item.ItemStack;
@@ -46,6 +47,6 @@ public class EssenceShopAdder extends SimpleSlotTextAdder {
String essenceAmount = essenceAmountMatcher.group("essence").replace(",", "");
if (!essenceAmount.matches("-?\\d+")) return List.of();
- return SlotText.bottomRightList(Text.literal(YourEssenceAdder.COMPACT_NUMBER_FORMATTER.format(Integer.parseInt(essenceAmount))).withColor(SlotText.CREAM));
+ return SlotText.bottomRightList(Text.literal(Formatters.SHORT_FLOAT_NUMBERS.format(Integer.parseInt(essenceAmount))).withColor(SlotText.CREAM));
}
}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/EvolvingItemAdder.java b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/EvolvingItemAdder.java
index e36b19a0..6bb7b14c 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/EvolvingItemAdder.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/EvolvingItemAdder.java
@@ -2,6 +2,7 @@ package de.hysky.skyblocker.skyblock.item.slottext.adders;
import de.hysky.skyblocker.skyblock.item.slottext.SimpleSlotTextAdder;
import de.hysky.skyblocker.skyblock.item.slottext.SlotText;
+import de.hysky.skyblocker.utils.Formatters;
import de.hysky.skyblocker.utils.ItemUtils;
import de.hysky.skyblocker.utils.RegexUtils;
import net.minecraft.item.ItemStack;
@@ -10,9 +11,7 @@ import net.minecraft.text.Text;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
-import java.text.NumberFormat;
import java.util.List;
-import java.util.Locale;
import java.util.OptionalDouble;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -20,7 +19,6 @@ import java.util.regex.Pattern;
// Evolving items are those that get upgraded after holding them in your inventory for a certain amount of time.
public class EvolvingItemAdder extends SimpleSlotTextAdder {
private static final Pattern BONUS_PATTERN = Pattern.compile("\\+?([\\d.]+)");
- private static final NumberFormat NUMBER_FORMAT = NumberFormat.getInstance(Locale.US);
public EvolvingItemAdder() {
super();
@@ -56,7 +54,7 @@ public class EvolvingItemAdder extends SimpleSlotTextAdder {
Text bonus = siblings.get(1);
Matcher matcher = BONUS_PATTERN.matcher(bonus.getString());
OptionalDouble result = RegexUtils.findDoubleFromMatcher(matcher);
- if (result.isPresent()) return SlotText.bottomLeftList(Text.literal(NUMBER_FORMAT.format(result.getAsDouble())).setStyle(bonus.getStyle()));
+ if (result.isPresent()) return SlotText.bottomLeftList(Text.literal(Formatters.DOUBLE_NUMBERS.format(result.getAsDouble())).setStyle(bonus.getStyle()));
}
}
return List.of();
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/YourEssenceAdder.java b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/YourEssenceAdder.java
index 4e0ca4e1..8e7f3518 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/YourEssenceAdder.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/YourEssenceAdder.java
@@ -2,6 +2,7 @@ package de.hysky.skyblocker.skyblock.item.slottext.adders;
import de.hysky.skyblocker.skyblock.item.slottext.SimpleSlotTextAdder;
import de.hysky.skyblocker.skyblock.item.slottext.SlotText;
+import de.hysky.skyblocker.utils.Formatters;
import de.hysky.skyblocker.utils.ItemUtils;
import net.minecraft.item.ItemStack;
import net.minecraft.screen.slot.Slot;
@@ -9,9 +10,7 @@ import net.minecraft.text.Text;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
-import java.text.NumberFormat;
import java.util.List;
-import java.util.Locale;
import java.util.Optional;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -19,11 +18,7 @@ import java.util.regex.Pattern;
public class YourEssenceAdder extends SimpleSlotTextAdder {
private static final Pattern YOUR_ESSENCE = Pattern.compile("You currently own (?<essence>[\\d,]+)");
private static final Pattern ESSENCE_GUIDE = Pattern.compile("Your \\w+ Essence: (?<essence>[\\d,]+)");
- public static final NumberFormat COMPACT_NUMBER_FORMATTER = NumberFormat.getCompactNumberInstance(Locale.CANADA, NumberFormat.Style.SHORT);
- static {
- COMPACT_NUMBER_FORMATTER.setMinimumFractionDigits(1);
- }
private static final ConfigInformation CONFIG_INFORMATION = new ConfigInformation(
"your_essence",
"skyblocker.config.uiAndVisuals.slotText.yourEssence");
@@ -38,7 +33,7 @@ public class YourEssenceAdder extends SimpleSlotTextAdder {
return essenceAmountMatcher(ItemUtils.getLore(stack)).<List<SlotText>>map(essenceAmountMatcher -> {
String essenceAmount = essenceAmountMatcher.group("essence").replace(",", "");
if (!essenceAmount.matches("-?\\d+")) return List.of();
- return SlotText.bottomRightList(Text.literal(COMPACT_NUMBER_FORMATTER.format(Integer.parseInt(essenceAmount))).withColor(SlotText.CREAM));
+ return SlotText.bottomRightList(Text.literal(Formatters.SHORT_FLOAT_NUMBERS.format(Integer.parseInt(essenceAmount))).withColor(SlotText.CREAM));
}).orElse(List.of());
}
return List.of();
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/BitsHelper.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/BitsHelper.java
index d3de1cc8..16935dfb 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/BitsHelper.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/BitsHelper.java
@@ -3,6 +3,7 @@ package de.hysky.skyblocker.skyblock.item.tooltip.adders;
import com.mojang.logging.LogUtils;
import de.hysky.skyblocker.config.SkyblockerConfigManager;
import de.hysky.skyblocker.skyblock.itemlist.ItemRepository;
+import de.hysky.skyblocker.utils.Formatters;
import de.hysky.skyblocker.utils.ItemUtils;
import de.hysky.skyblocker.utils.container.SimpleContainerSolver;
import de.hysky.skyblocker.utils.container.TooltipAdder;
@@ -22,7 +23,6 @@ import org.intellij.lang.annotations.Language;
import org.jetbrains.annotations.Nullable;
import org.slf4j.Logger;
-import java.text.NumberFormat;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -33,7 +33,6 @@ public class BitsHelper extends SimpleContainerSolver implements TooltipAdder {
private static final Pattern CATEGORY_PATTERN = Pattern.compile("Click to browse!");
@Language("RegExp")
private static final String TITLE_PATTERN = ".*(?:Community Shop|Bits Shop).*";
- private static final NumberFormat DECIMAL_FORMAT = NumberFormat.getInstance(Locale.US);
private static final String LOGS_PREFIX = "[Skyblocker Bits Helper] ";
//region Constants
@@ -214,22 +213,22 @@ public class BitsHelper extends SimpleContainerSolver implements TooltipAdder {
if (itemID.isEmpty()) { // a bit dirty, but basically if itemID is empty then it is normal item and NOT category
lines.add(Text.empty()
.append(Text.literal("Bits Cost: ").formatted(Formatting.AQUA))
- .append(Text.literal(DECIMAL_FORMAT.format(coinsPerBit) + " Coins per bit").formatted(Formatting.DARK_AQUA)));
+ .append(Text.literal(Formatters.INTEGER_NUMBERS.format(coinsPerBit) + " Coins per bit").formatted(Formatting.DARK_AQUA)));
} else if (foundItemStack != null && isGreen) {
lines.add(Text.empty()
.append(Text.literal("Bits Cost: ").formatted(Formatting.AQUA))
- .append(Text.literal(DECIMAL_FORMAT.format(coinsPerBit) + " Coins per bit").formatted(Formatting.DARK_AQUA)));
+ .append(Text.literal(Formatters.INTEGER_NUMBERS.format(coinsPerBit) + " Coins per bit").formatted(Formatting.DARK_AQUA)));
lines.add(Text.literal("From " + foundItemStack.getName().getString()).formatted(Formatting.GREEN));
} else if (foundItemStack != null) {
lines.add(Text.empty()
.append(Text.literal("Bits Cost: ").formatted(Formatting.AQUA))
- .append(Text.literal(DECIMAL_FORMAT.format(coinsPerBit) + " Coins per bit").formatted(Formatting.DARK_AQUA)));
+ .append(Text.literal(Formatters.INTEGER_NUMBERS.format(coinsPerBit) + " Coins per bit").formatted(Formatting.DARK_AQUA)));
lines.add(Text.literal("From " + foundItemStack.getName().getString()).formatted(Formatting.DARK_AQUA));
} else { // if below so it won't clog logs with that cursed enchanted book
if (!stack.getName().getString().equals("Stacking Enchants")) LOGGER.warn(LOGS_PREFIX + "ItemStack not found for {}", itemID);
lines.add(Text.empty()
.append(Text.literal("Bits Cost: ").formatted(Formatting.AQUA))
- .append(Text.literal(DECIMAL_FORMAT.format(coinsPerBit) + " Coins per bit").formatted(Formatting.DARK_AQUA)));
+ .append(Text.literal(Formatters.INTEGER_NUMBERS.format(coinsPerBit) + " Coins per bit").formatted(Formatting.DARK_AQUA)));
lines.add(Text.literal("From " + itemID).formatted(Formatting.DARK_AQUA));
}
}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/EssenceShopPrice.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/EssenceShopPrice.java
index e4a85ec1..283bd231 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/EssenceShopPrice.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/EssenceShopPrice.java
@@ -3,6 +3,7 @@ package de.hysky.skyblocker.skyblock.item.tooltip.adders;
import de.hysky.skyblocker.config.SkyblockerConfigManager;
import de.hysky.skyblocker.skyblock.item.tooltip.SimpleTooltipAdder;
import de.hysky.skyblocker.utils.BazaarProduct;
+import de.hysky.skyblocker.utils.Formatters;
import de.hysky.skyblocker.utils.ItemUtils;
import de.hysky.skyblocker.utils.RegexUtils;
import it.unimi.dsi.fastutil.objects.Object2LongArrayMap;
@@ -13,7 +14,6 @@ import net.minecraft.text.Text;
import net.minecraft.util.Formatting;
import org.jetbrains.annotations.Nullable;
-import java.text.NumberFormat;
import java.util.List;
import java.util.Locale;
import java.util.OptionalDouble;
@@ -23,7 +23,6 @@ import java.util.regex.Pattern;
public class EssenceShopPrice extends SimpleTooltipAdder {
private static final Pattern ESSENCE_PATTERN = Pattern.compile("Cost (?<amount>[\\d,]+) (?<type>[A-Za-z]+) Essence");
- private static final NumberFormat DECIMAL_FORMAT = NumberFormat.getInstance(Locale.US);
private static final String[] ESSENCE_TYPES = {"WITHER", "SPIDER", "UNDEAD", "DRAGON", "GOLD", "DIAMOND", "ICE", "CRIMSON"};
private static final Object2LongArrayMap<String> ESSENCE_PRICES = new Object2LongArrayMap<>(ESSENCE_TYPES, new long[8]);
@@ -59,9 +58,9 @@ public class EssenceShopPrice extends SimpleTooltipAdder {
lines.add(Text.empty()
.append(Text.literal("Essence Cost: ").formatted(Formatting.AQUA))
- .append(Text.literal(DECIMAL_FORMAT.format(priceData * cost.getAsLong()) + " coins").formatted(Formatting.DARK_AQUA))
+ .append(Text.literal(Formatters.INTEGER_NUMBERS.format(priceData * cost.getAsLong()) + " coins").formatted(Formatting.DARK_AQUA))
.append(Text.literal(" (").formatted(Formatting.GRAY))
- .append(Text.literal(DECIMAL_FORMAT.format(priceData) + " each").formatted(Formatting.GRAY))
+ .append(Text.literal(Formatters.INTEGER_NUMBERS.format(priceData) + " each").formatted(Formatting.GRAY))
.append(Text.literal(")").formatted(Formatting.GRAY))
);
}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/StackingEnchantProgressTooltip.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/StackingEnchantProgressTooltip.java
index 1dabafe8..d3701ac4 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/StackingEnchantProgressTooltip.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/StackingEnchantProgressTooltip.java
@@ -1,10 +1,9 @@
package de.hysky.skyblocker.skyblock.item.tooltip.adders;
-import java.text.NumberFormat;
import java.util.List;
-import java.util.Locale;
import java.util.Set;
+import de.hysky.skyblocker.utils.Formatters;
import org.jetbrains.annotations.Nullable;
import de.hysky.skyblocker.config.SkyblockerConfigManager;
@@ -25,7 +24,6 @@ public class StackingEnchantProgressTooltip extends SimpleTooltipAdder {
private static final StackingEnchantInfo CHAMPION_INFO = new StackingEnchantInfo("Champion", "champion_combat_xp", "Combat XP", 0, 50_000, 100_000, 250_000, 500_000, 1_000_000, 1_500_000, 2_000_000, 2_500_000, 3_000_000);
private static final StackingEnchantInfo HECATOMB_INFO = new StackingEnchantInfo("Hecatomb", "hecatomb_s_runs", "S runs", 0, 2, 5, 10, 20, 30, 40, 60, 80, 100);
private static final StackingEnchantInfo TOXOPHILITE_INFO = new StackingEnchantInfo("Toxophilite", "toxophilite_combat_xp", "Combat XP", 0, 50_000, 100_000, 250_000, 500_000, 1_000_000, 1_500_000, 2_000_000, 2_500_000, 3_000_000);
- private static final NumberFormat FORMAT = NumberFormat.getInstance(Locale.ENGLISH);
public StackingEnchantProgressTooltip(int priority) {
super(priority);
@@ -65,9 +63,9 @@ public class StackingEnchantProgressTooltip extends SimpleTooltipAdder {
.appe