mirror of
https://github.com/Suwayomi/Tachidesk.git
synced 2025-12-10 06:42:07 +01:00
Settings generator: Validate that protoNumber is unique (#1735)
This makes specifying an already-used number a compile time error
This commit is contained in:
@@ -45,6 +45,8 @@ object SettingsGenerator {
|
||||
// Ignore errors during registration
|
||||
}
|
||||
}
|
||||
} catch (e: IllegalStateException) {
|
||||
throw e
|
||||
} catch (e: Exception) {
|
||||
// Registration failed, but we tried
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package suwayomi.tachidesk.server.settings
|
||||
|
||||
import com.typesafe.config.ConfigValue
|
||||
import com.typesafe.config.parser.ConfigDocument
|
||||
import kotlin.collections.find
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
/**
|
||||
@@ -78,6 +79,9 @@ object SettingsRegistry {
|
||||
private val settings = mutableMapOf<String, SettingMetadata>()
|
||||
|
||||
fun register(metadata: SettingMetadata) {
|
||||
settings.values.find { it.protoNumber == metadata.protoNumber }?.let {
|
||||
throw IllegalStateException("Setting ${metadata.name} uses protoNumber ${it.protoNumber} already used by ${it.name}")
|
||||
}
|
||||
settings[metadata.name] = metadata
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user