diff options
Diffstat (limited to 'src/main/kotlin/util/FirmFormatters.kt')
-rw-r--r-- | src/main/kotlin/util/FirmFormatters.kt | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/main/kotlin/util/FirmFormatters.kt b/src/main/kotlin/util/FirmFormatters.kt index 61644db..92fb9e5 100644 --- a/src/main/kotlin/util/FirmFormatters.kt +++ b/src/main/kotlin/util/FirmFormatters.kt @@ -1,9 +1,17 @@ package moe.nea.firmament.util import com.google.common.math.IntMath.pow +import java.nio.file.Path +import kotlin.io.path.exists +import kotlin.io.path.fileSize +import kotlin.io.path.isDirectory +import kotlin.io.path.isReadable +import kotlin.io.path.isRegularFile +import kotlin.io.path.listDirectoryEntries import kotlin.math.absoluteValue import kotlin.time.Duration import kotlin.time.Duration.Companion.seconds +import net.minecraft.text.Text object FirmFormatters { fun formatCommas(int: Int, segments: Int = 3): String = formatCommas(int.toLong(), segments) @@ -62,4 +70,33 @@ object FirmFormatters { return sb.toString() } + fun debugPath(path: Path): Text { + if (!path.exists()) { + return tr("firmament.path.missing", "$path (missing)").red() + } + if (!path.isReadable()) { + return tr("firmament.path.unreadable", "$path (unreadable)").red() + } + if (path.isRegularFile()) { + return tr("firmament.path.regular", + "$path (exists ${formatFileSize(path.fileSize())})").lime() + } + if (path.isDirectory()) { + return tr("firmament.path.directory", "$path (${path.listDirectoryEntries().size} entries)").darkGreen() + } + return tr("firmament.path.unknown", "$path (unknown)").purple() + } + + fun formatFileSize(fileSizeInBytes: Long): String { + return "${fileSizeInBytes / 1024} KiB" + } + + fun formatBool( + boolean: Boolean, + trueIsGood: Boolean = true, + ): Text { + val text = Text.literal(boolean.toString()) + return if (boolean == trueIsGood) text.lime() else text.red() + } + } |