From a43521c5796757718be6486be649fbb4c04f2877 Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Fri, 4 Oct 2024 17:07:27 +0700 Subject: [PATCH] Fix negative numbers being displayed wrong --- .../ru/dbotthepony/mc/otm/core/util/Formatting.kt | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/core/util/Formatting.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/core/util/Formatting.kt index d5c4d3865..f5bec4d00 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/core/util/Formatting.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/core/util/Formatting.kt @@ -117,9 +117,19 @@ fun BigInteger.formatSiComponent(suffix: Any = "", decimalPlaces: Int = 3, forma private val never = BooleanSupplier { false } private fun reformat(numbers: String): String { - if (numbers.length <= 4) + @Suppress("NAME_SHADOWING") + var numbers = numbers + + if (numbers.isEmpty() || numbers.length <= 4) return numbers + val negative = numbers[0] == '-' + + if (negative && numbers.length == 5) + return numbers + else if (negative) + numbers = numbers.substring(1) + val result = CharArrayList((numbers.length * 1.6).roundToInt()) var dot = numbers.lastIndexOf('.') @@ -145,6 +155,9 @@ private fun reformat(numbers: String): String { result.add(numbers[i]) } + if (negative) + result.add('-') + return String(CharArray(result.size) { result.getChar(result.size - it - 1) })