From cd091f1b1c5ac5e150addf7e51af783ae2341cae Mon Sep 17 00:00:00 2001 From: "Josiah (Gaming32) Glosson" Date: Mon, 20 May 2024 12:26:28 -0500 Subject: [PATCH] Various code improvements --- .../io/github/gaming32/additiveinstaller/PackInstaller.kt | 4 ++-- .../io/github/gaming32/additiveinstaller/generalUtil.kt | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/kotlin/io/github/gaming32/additiveinstaller/PackInstaller.kt b/src/main/kotlin/io/github/gaming32/additiveinstaller/PackInstaller.kt index 72778f1..b35bd06 100644 --- a/src/main/kotlin/io/github/gaming32/additiveinstaller/PackInstaller.kt +++ b/src/main/kotlin/io/github/gaming32/additiveinstaller/PackInstaller.kt @@ -42,7 +42,7 @@ class PackInstaller( private val modsDir = DOT_MINECRAFT / packVersion.launcherFolderPath @OptIn(ExperimentalPathApi::class) - private fun writeVersionDir(clientJson: JsonObject) { + private fun writeVersionDir(clientJson: JsonObject) { progressHandler.newTask(I18N.getString("creating.version.folder")) val versionDir = VERSIONS / packVersion.launcherVersionId versionDir.deleteRecursively() @@ -154,7 +154,7 @@ class PackInstaller( } else { Pair(destination, destination / path) } - if (!dest.startsWith(destRoot)) { + if (!dest.normalize().startsWith(destRoot)) { throw IllegalArgumentException("Path doesn't start with mods dir?") } dest.parent.createDirectories() diff --git a/src/main/kotlin/io/github/gaming32/additiveinstaller/generalUtil.kt b/src/main/kotlin/io/github/gaming32/additiveinstaller/generalUtil.kt index 9e5c3b0..dc6545d 100644 --- a/src/main/kotlin/io/github/gaming32/additiveinstaller/generalUtil.kt +++ b/src/main/kotlin/io/github/gaming32/additiveinstaller/generalUtil.kt @@ -1,5 +1,6 @@ package io.github.gaming32.additiveinstaller +import com.google.gson.FormattingStyle import com.google.gson.JsonElement import com.google.gson.JsonObject import com.google.gson.JsonParser @@ -72,7 +73,9 @@ fun requestCriticalJson(url: String) = try { fun String.capitalize() = replaceFirstChar { if (it.isLowerCase()) it.titlecase(Locale.ROOT) else it.toString() } -fun JsonElement.writeTo(writer: Writer) = Streams.write(this, JsonWriter(writer).apply { setIndent(" ") }) +fun JsonElement.writeTo(writer: Writer) = Streams.write(this, JsonWriter(writer).apply { + formattingStyle = FormattingStyle.PRETTY +}) fun String.hexToByteArray(): ByteArray { require((length and 1) == 0) { "$this has an odd number of chars" }