11package com.mairwunnx.projectessentials.projectessentialshome.storage
22
3+ import com.mairwunnx.projectessentials.core.helpers.MOD_CONFIG_FOLDER
4+ import com.mairwunnx.projectessentials.core.helpers.jsonInstance
35import com.mairwunnx.projectessentials.projectessentialshome.models.HomeModel
4- import com.mairwunnx.projectessentialscore.helpers.MOD_CONFIG_FOLDER
5- import kotlinx.serialization.UnstableDefault
6- import kotlinx.serialization.json.Json
7- import kotlinx.serialization.json.JsonConfiguration
86import org.apache.logging.log4j.LogManager
97import java.io.File
108import java.io.FileNotFoundException
119import kotlin.system.measureTimeMillis
1210
13- @UseExperimental(UnstableDefault ::class )
1411object StorageBase {
1512 private val logger = LogManager .getLogger()
1613 private val userHomeData = hashMapOf<String , HomeModel >()
@@ -32,66 +29,48 @@ object StorageBase {
3229 }
3330
3431 fun loadUserData () {
35- logger.info(" - loading user home data configuration ... " )
32+ logger.info(" Loading user home data configuration" )
3633
37- createConfigDirs (userDataFolder)
34+ File (userDataFolder).mkdirs( )
3835 val users = File (userDataFolder).list()?.filter {
3936 if (File (it).isFile) return @filter false
4037 return @filter true
4138 }
4239
4340 val elapsedTime = measureTimeMillis {
4441 users?.forEach {
45- logger.debug(" - processing $it user home data ..." )
4642 val userId = it
4743 try {
4844 val userDataRaw = File (
4945 userDataFolder + File .separator + it + File .separator + " home.json"
5046 ).readText()
51- val userHomeClass = Json .parse(HomeModel .serializer(), userDataRaw)
47+ val userHomeClass = jsonInstance.parse(
48+ HomeModel .serializer(), userDataRaw
49+ )
5250 userHomeData[userId] = userHomeClass
5351 } catch (_: FileNotFoundException ) {
54- logger.info(" - loading home data for $it skipped! not found!" )
52+ logger.info(" Loading home data for $it skipped! not found!" )
5553 }
5654 }
5755 }
5856 logger.info(" Loading user home data done configurations with ${elapsedTime} ms" )
5957 }
6058
6159 fun saveUserData () {
62- createConfigDirs (userDataFolder)
60+ File (userDataFolder).mkdirs( )
6361 userHomeData.keys.forEach {
64- logger.debug(" - processing $it user home data ..." )
65-
6662 val userId = it
6763 val userDataClass = userHomeData[userId]!!
6864 val dataFolder = userDataFolder + File .separator + userId
6965 val dataPath = dataFolder + File .separator + " home.json"
7066
71- createConfigDirs(dataFolder)
72- logger.debug(" - setup json configuration for parsing ..." )
73- val json = Json (
74- JsonConfiguration (
75- encodeDefaults = true ,
76- strictMode = true ,
77- unquoted = false ,
78- allowStructuredMapKeys = true ,
79- prettyPrint = true ,
80- useArrayPolymorphism = false
81- )
82- )
83- val userDataRaw = json.stringify(HomeModel .serializer(), userDataClass)
67+ File (dataFolder).mkdirs()
68+ val userDataRaw = jsonInstance.stringify(HomeModel .serializer(), userDataClass)
8469 try {
8570 File (dataPath).writeText(userDataRaw)
8671 } catch (ex: SecurityException ) {
8772 logger.error(" An error occurred while saving home configuration" , ex)
8873 }
8974 }
9075 }
91-
92- private fun createConfigDirs (path : String ) {
93- logger.info(" - creating config directory for user home data ($path )" )
94- val configDirectory = File (path)
95- if (! configDirectory.exists()) configDirectory.mkdirs()
96- }
9776}
0 commit comments