blob: 07148d5c5e0cc5a65c7cb9f743c9f9d2c5194abf (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
package moe.nea.firmament.gui.config.storage
import com.google.gson.JsonElement
import com.google.gson.JsonObject
import moe.nea.firmament.events.FirmamentEvent
import moe.nea.firmament.events.FirmamentEventBus
data class ConfigFixEvent(
val storageClass: ConfigStorageClass,
val toVersion: Int,
var data: JsonObject,
) : FirmamentEvent() {
companion object : FirmamentEventBus<ConfigFixEvent>() {
}
fun on(
toVersion: Int,
storageClass: ConfigStorageClass,
block: ConfigEditor.() -> Unit
) {
require(toVersion <= FirmamentConfigLoader.currentConfigVersion)
if (this.toVersion == toVersion && this.storageClass == storageClass) {
block(ConfigEditor(listOf(object : JsonPointer {
override fun get(): JsonObject {
return data
}
override fun set(value: JsonElement) {
data = value as JsonObject
}
override fun toString(): String {
return "ConfigRoot($storageClass)"
}
})))
}
}
}
|