From 428056ff805839e04443dcff3badd021eb4abe01 Mon Sep 17 00:00:00 2001 From: nea Date: Fri, 9 Jun 2023 18:08:38 +0200 Subject: Add support for other mods using /locraw --- .../moe/nea/firmament/util/data/ProfileSpecificDataHolder.kt | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'src/main/kotlin/moe/nea/firmament/util/data') diff --git a/src/main/kotlin/moe/nea/firmament/util/data/ProfileSpecificDataHolder.kt b/src/main/kotlin/moe/nea/firmament/util/data/ProfileSpecificDataHolder.kt index 7111344..06523c3 100644 --- a/src/main/kotlin/moe/nea/firmament/util/data/ProfileSpecificDataHolder.kt +++ b/src/main/kotlin/moe/nea/firmament/util/data/ProfileSpecificDataHolder.kt @@ -19,6 +19,7 @@ package moe.nea.firmament.util.data import java.nio.file.Path +import java.util.UUID import kotlinx.serialization.KSerializer import kotlin.io.path.createDirectories import kotlin.io.path.deleteExisting @@ -37,10 +38,10 @@ abstract class ProfileSpecificDataHolder( private val configDefault: () -> S ) : IDataHolder { - var allConfigs: MutableMap + var allConfigs: MutableMap override val data: S? - get() = SBData.profileCuteName?.let { + get() = SBData.profileId?.let { allConfigs.computeIfAbsent(it) { configDefault() } } @@ -52,7 +53,7 @@ abstract class ProfileSpecificDataHolder( private val configDirectory: Path get() = Firmament.CONFIG_DIR.resolve("profiles").resolve(configName) - private fun readValues(): MutableMap { + private fun readValues(): MutableMap { if (!configDirectory.exists()) { configDirectory.createDirectories() } @@ -61,7 +62,7 @@ abstract class ProfileSpecificDataHolder( .filter { it.extension == "json" } .mapNotNull { try { - it.nameWithoutExtension to Firmament.json.decodeFromString(dataSerializer, it.readText()) + UUID.fromString(it.nameWithoutExtension) to Firmament.json.decodeFromString(dataSerializer, it.readText()) } catch (e: Exception) { /* Expecting IOException and SerializationException, but Kotlin doesn't allow multi catches*/ IDataHolder.badLoads.add(configName) Firmament.logger.error( @@ -79,7 +80,7 @@ abstract class ProfileSpecificDataHolder( } val c = allConfigs configDirectory.listDirectoryEntries().forEach { - if (it.nameWithoutExtension !in c) { + if (it.nameWithoutExtension !in c.mapKeys { it.toString() }) { it.deleteExisting() } } -- cgit