From 032f32626ed8a7950e7eb268406b6f769cd97d8f Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Wed, 22 May 2024 18:57:42 +0700 Subject: [PATCH] Make RGBAColorTypeAdapter accept hex strings as input --- .../kstarbound/json/factory/RGBAColorTypeAdapter.kt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/json/factory/RGBAColorTypeAdapter.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/json/factory/RGBAColorTypeAdapter.kt index 4a02a8e1..c395af91 100644 --- a/src/main/kotlin/ru/dbotthepony/kstarbound/json/factory/RGBAColorTypeAdapter.kt +++ b/src/main/kotlin/ru/dbotthepony/kstarbound/json/factory/RGBAColorTypeAdapter.kt @@ -1,5 +1,6 @@ package ru.dbotthepony.kstarbound.json.factory +import com.google.gson.JsonSyntaxException import com.google.gson.TypeAdapter import com.google.gson.stream.JsonReader import com.google.gson.stream.JsonToken @@ -29,6 +30,12 @@ object RGBAColorTypeAdapter : TypeAdapter() { if (`in`.consumeNull()) return null + if (`in`.peek() == JsonToken.STRING) { + val str = `in`.nextString() + val color = RGBAColor.fromHexStringRGB(str) ?: throw JsonSyntaxException("Not a valid hex color: $str") + return color + } + `in`.beginArray() val red = `in`.nextInt()