mirror of
https://github.com/Suwayomi/Tachidesk.git
synced 2025-12-11 07:12:06 +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
|
// Ignore errors during registration
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} catch (e: IllegalStateException) {
|
||||||
|
throw e
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
// Registration failed, but we tried
|
// Registration failed, but we tried
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package suwayomi.tachidesk.server.settings
|
|||||||
|
|
||||||
import com.typesafe.config.ConfigValue
|
import com.typesafe.config.ConfigValue
|
||||||
import com.typesafe.config.parser.ConfigDocument
|
import com.typesafe.config.parser.ConfigDocument
|
||||||
|
import kotlin.collections.find
|
||||||
import kotlin.reflect.KClass
|
import kotlin.reflect.KClass
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -78,6 +79,9 @@ object SettingsRegistry {
|
|||||||
private val settings = mutableMapOf<String, SettingMetadata>()
|
private val settings = mutableMapOf<String, SettingMetadata>()
|
||||||
|
|
||||||
fun register(metadata: 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
|
settings[metadata.name] = metadata
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user