feat(ConfigSystem/compatibility): deserialize int primitive as int range (#5945)

This commit is contained in:
Izuna
2025-03-29 11:27:27 +01:00
committed by GitHub
parent ef57d65f67
commit 8fc6762928

View File

@@ -34,8 +34,20 @@ object IntRangeAdapter : JsonSerializer<IntRange>, JsonDeserializer<IntRange> {
}
override fun deserialize(json: JsonElement, typeOfT: Type?, context: JsonDeserializationContext?): IntRange {
val obj = json.asJsonObject
if (json.isJsonPrimitive) {
val primitive = json.asJsonPrimitive
if (!primitive.isNumber) {
throw JsonParseException("Expected number, got ${primitive.asString}")
}
return IntRange(primitive.asInt, primitive.asInt)
}
if (!json.isJsonObject) {
throw JsonParseException("Expected object, got ${json.javaClass.name}")
}
val obj = json.asJsonObject
return obj["from"].asInt..obj["to"].asInt
}