diff options
| author | Kevin <92656833+kevinthegreat1@users.noreply.github.com> | 2025-03-02 23:27:52 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-03-03 12:27:52 +0800 |
| commit | 07276f1378c6f98fbb0882a6d6f59dc685723351 (patch) | |
| tree | 96bea8b9da7b21f54c6600f4dc40f40c3fa3a577 /src/main/java | |
| parent | 38f2c51a116c87ca7ba6a6ffc5bd821770b57630 (diff) | |
| download | Skyblocker-07276f1378c6f98fbb0882a6d6f59dc685723351.tar.gz Skyblocker-07276f1378c6f98fbb0882a6d6f59dc685723351.tar.bz2 Skyblocker-07276f1378c6f98fbb0882a6d6f59dc685723351.zip | |
Migrate to formatters (#1185)
Diffstat (limited to 'src/main/java')
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 |
