Skip to content

Commit 13114d2

Browse files
committed
Added saving and loading chat configuration.
1 parent 41950d9 commit 13114d2

File tree

2 files changed

+43
-0
lines changed

2 files changed

+43
-0
lines changed

src/main/kotlin/com/mairwunnx/projectessentials/chat/EntryPoint.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import net.minecraftforge.common.MinecraftForge
1111
import net.minecraftforge.event.ServerChatEvent
1212
import net.minecraftforge.eventbus.api.SubscribeEvent
1313
import net.minecraftforge.fml.common.Mod
14+
import net.minecraftforge.fml.event.server.FMLServerStoppingEvent
1415
import org.apache.logging.log4j.LogManager
1516

1617
@Suppress("unused")
@@ -25,12 +26,20 @@ class EntryPoint : EssBase() {
2526
validateForgeVersion()
2627
logger.debug("Register event bus for $modName mod ...")
2728
MinecraftForge.EVENT_BUS.register(this)
29+
ChatModelBase.loadData()
2830
}
2931

3032
companion object {
3133
lateinit var modInstance: EntryPoint
3234
}
3335

36+
@Suppress("UNUSED_PARAMETER")
37+
@SubscribeEvent
38+
fun onServerStopping(it: FMLServerStoppingEvent) {
39+
logger.info("Shutting down $modName mod ...")
40+
ChatModelBase.saveData()
41+
}
42+
3443
@SubscribeEvent
3544
fun onChatMessage(event: ServerChatEvent) {
3645
if (!PermissionsAPI.hasPermission(event.username, "ess.chat")) {

src/main/kotlin/com/mairwunnx/projectessentials/chat/models/ChatModelBase.kt

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,38 @@ object ChatModelBase {
2222
useArrayPolymorphism = false
2323
)
2424
)
25+
26+
fun loadData() {
27+
logger.info("Loading chat configuration")
28+
if (!File(warpsConfig).exists()) {
29+
logger.warn("Chat configuration file not exist! creating it now!")
30+
createConfigDirs(MOD_CONFIG_FOLDER)
31+
val defaultConfig = json.stringify(
32+
ChatModel.serializer(),
33+
chatModel
34+
)
35+
File(warpsConfig).writeText(defaultConfig)
36+
}
37+
val warpsConfigRaw = File(warpsConfig).readText()
38+
chatModel = Json.parse(ChatModel.serializer(), warpsConfigRaw)
39+
logger.info("Chat configuration loading done")
40+
}
41+
42+
fun saveData() {
43+
logger.info("Saving chat configuration to file")
44+
createConfigDirs(MOD_CONFIG_FOLDER)
45+
val spawnConfig = json.stringify(
46+
ChatModel.serializer(),
47+
chatModel
48+
)
49+
File(warpsConfig).writeText(spawnConfig)
50+
logger.info("Saving chat configuration done")
51+
}
52+
53+
@Suppress("SameParameterValue")
54+
private fun createConfigDirs(path: String) {
55+
logger.info("Creating config directory for chat configuration")
56+
val configDirectory = File(path)
57+
if (!configDirectory.exists()) configDirectory.mkdirs()
58+
}
2559
}

0 commit comments

Comments
 (0)