diff options
author | nea <romangraef@gmail.com> | 2022-12-31 19:40:50 +0100 |
---|---|---|
committer | nea <romangraef@gmail.com> | 2023-01-11 22:09:21 +0100 |
commit | 5190017bc8f7bb1177da239842e4b3a18a888d8c (patch) | |
tree | 0486fdc881517ad5da5cf4a24ab24532b6ca7435 | |
parent | 0134c83fbc02147794e3b7134cff6f9b6dc446f6 (diff) | |
download | NotEnoughUpdates-5190017bc8f7bb1177da239842e4b3a18a888d8c.tar.gz NotEnoughUpdates-5190017bc8f7bb1177da239842e4b3a18a888d8c.tar.bz2 NotEnoughUpdates-5190017bc8f7bb1177da239842e4b3a18a888d8c.zip |
EnforcedConfigValues: Allow filtering for mod version
-rw-r--r-- | src/main/kotlin/io/github/moulberry/notenoughupdates/miscfeatures/EnforcedConfigValues.kt | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/src/main/kotlin/io/github/moulberry/notenoughupdates/miscfeatures/EnforcedConfigValues.kt b/src/main/kotlin/io/github/moulberry/notenoughupdates/miscfeatures/EnforcedConfigValues.kt index 50c45832..d5a1260e 100644 --- a/src/main/kotlin/io/github/moulberry/notenoughupdates/miscfeatures/EnforcedConfigValues.kt +++ b/src/main/kotlin/io/github/moulberry/notenoughupdates/miscfeatures/EnforcedConfigValues.kt @@ -43,18 +43,27 @@ object EnforcedConfigValues { var enforcedValues: List<EnforcedValue> = listOf() var notificationPSA: List<String>? = null var chatPSA: List<String>? = null + lateinit var affectedVersions: List<Int> } - var enforcedValues = EnforcedValueData() + var enforcedValues: List<EnforcedValueData> = listOf() @SubscribeEvent fun onRepoReload(event: RepositoryReloadEvent) { - val fixedValues = event.repositoryRoot.resolve("constants/enforced_values.json") + val fixedValues = event.repositoryRoot.resolve("enforced_values") enforcedValues = if (fixedValues.exists()) { - NotEnoughUpdates.INSTANCE.manager.gson.fromJson(fixedValues.readText()) + fixedValues.listFiles() + .filter { + it != null && it.isFile && it.canRead() + } + .map { + NotEnoughUpdates.INSTANCE.manager.gson.fromJson<EnforcedValueData>(it.readText()) + }.filter { + NotEnoughUpdates.VERSION_ID in it.affectedVersions + } } else { - EnforcedValueData() + listOf() } if (!event.isFirstLoad) sendPSAs() @@ -76,20 +85,21 @@ object EnforcedConfigValues { } fun sendPSAs() { - val notification = enforcedValues.notificationPSA - if (notification != null) { + val notification = enforcedValues.flatMap { it.notificationPSA ?: emptyList() } + if (notification.isNotEmpty()) { NotificationHandler.displayNotification(notification, true) } - val chat = enforcedValues.chatPSA - if (chat != null) { - for (line in chat) + val chat = enforcedValues.flatMap { it.chatPSA ?: emptyList() } + if (chat.isNotEmpty()) { + for (line in chat) { Utils.addChatMessage(line) + } } } fun enforceOntoConfig(config: Any) { - for (enforcedValue in enforcedValues.enforcedValues) { + for (enforcedValue in enforcedValues.flatMap { it.enforcedValues }) { val shimmy = Shimmy.makeShimmy(config, enforcedValue.path.split(".")) if (shimmy == null) { println("Could not create shimmy for path ${enforcedValue.path}") @@ -104,7 +114,7 @@ object EnforcedConfigValues { } fun isBlockedFromEditing(optionPath: String): Boolean { - return enforcedValues.enforcedValues.any { it.path == optionPath } + return enforcedValues.flatMap { it.enforcedValues }.any { it.path == optionPath } } |