Skip to content

Commit dc82360

Browse files
committed
[publish] build: 1.8.9 release
1 parent c45d992 commit dc82360

2 files changed

Lines changed: 26 additions & 8 deletions

File tree

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ plugins {
66

77
allprojects {
88
group = "org.sayandev"
9-
version = "1.8.8.48"
9+
version = "1.8.9"
1010
description = "A modular Kotlin library for Minecraft: JE"
1111

1212
plugins.apply("maven-publish")

stickynote-core/src/main/kotlin/org/sayandev/stickynote/core/configuration/Config.kt

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import org.spongepowered.configurate.CommentedConfigurationNode
44
import org.spongepowered.configurate.ConfigurationOptions
55
import org.spongepowered.configurate.kotlin.objectMapperFactory
66
import org.spongepowered.configurate.serialize.TypeSerializerCollection
7+
import org.spongepowered.configurate.util.MapFactories
78
import org.spongepowered.configurate.yaml.NodeStyle
89
import org.spongepowered.configurate.yaml.YamlConfigurationLoader
910
import java.io.File
@@ -16,6 +17,10 @@ abstract class Config(
1617
@Transient val serializers: TypeSerializerCollection = generateOptions(null).serializers()
1718
) {
1819

20+
init {
21+
register(this)
22+
}
23+
1924
@Transient val file = File(directory, name)
2025

2126
constructor(directory: File, name: String, serializers: TypeSerializerCollection?) : this(
@@ -27,13 +32,13 @@ abstract class Config(
2732
constructor(directory: File, name: String) : this(directory, name, null)
2833
constructor(directoryPath: Path, name: String) : this(directoryPath.toFile(), name, null)
2934

30-
@Transient var yaml = builder.build()
35+
@Transient var yaml = builder.defaultOptions(generateOptions(serializers)).build()
3136
@Transient var config = yaml.load(generateOptions(serializers))
3237

3338
open fun save() {
3439
createFile()
3540

36-
updateSerializers()
41+
update()
3742
config.set(this)
3843
yaml.save(config)
3944
}
@@ -47,12 +52,22 @@ abstract class Config(
4752
return false
4853
}
4954

50-
open fun updateSerializers() {
55+
open fun update() {
5156
yaml = builder.defaultOptions(generateOptions(serializers)).build()
5257
config = yaml.load(generateOptions(serializers))
5358
}
5459

5560
companion object {
61+
val registeredConfigurations = mutableMapOf<String, Config>()
62+
63+
fun register(config: Config) {
64+
registeredConfigurations[config.name] = config
65+
}
66+
67+
fun unregister(config: Config) {
68+
registeredConfigurations.remove(config.name)
69+
}
70+
5671
@JvmStatic
5772
fun generateOptions(serializers: TypeSerializerCollection?): ConfigurationOptions {
5873
return ConfigurationOptions.defaults()
@@ -71,9 +86,7 @@ abstract class Config(
7186
fun getConfigBuilder(file: File, serializers: TypeSerializerCollection?): YamlConfigurationLoader.Builder {
7287
val yaml = YamlConfigurationLoader.builder()
7388
.nodeStyle(NodeStyle.BLOCK)
74-
.defaultOptions { defaultOptions ->
75-
generateOptions(serializers)
76-
}
89+
.defaultOptions(generateOptions(serializers))
7790
.commentsEnabled(true)
7891
.file(file)
7992
return yaml
@@ -82,7 +95,12 @@ abstract class Config(
8295
@JvmStatic
8396
inline fun <reified T> fromConfig(file: File, serializers: TypeSerializerCollection?): T? {
8497
if (!file.exists()) return null
85-
return getConfigBuilder(file, serializers).build().load().get(T::class.java)
98+
val yaml = getConfigBuilder(file, serializers).build()
99+
val config = yaml.load()
100+
val result = config.get(T::class.java)
101+
config.set(result)
102+
yaml.save(config)
103+
return result
86104
}
87105

88106
@JvmStatic

0 commit comments

Comments
 (0)