From 5d520a5a3cf6bcf546e3621ba52fd32bc0b884b5 Mon Sep 17 00:00:00 2001 From: johni0702 Date: Sat, 24 Dec 2016 01:24:55 +0100 Subject: [PATCH] Fix deserialization of chroma key color (fixes #43) --- .../com/replaymod/render/gui/GuiRenderSettings.java | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/replaymod/render/gui/GuiRenderSettings.java b/src/main/java/com/replaymod/render/gui/GuiRenderSettings.java index 98ca109c..a51189af 100644 --- a/src/main/java/com/replaymod/render/gui/GuiRenderSettings.java +++ b/src/main/java/com/replaymod/render/gui/GuiRenderSettings.java @@ -32,13 +32,14 @@ import net.minecraft.crash.CrashReport; import net.minecraft.util.ReportedException; import net.minecraftforge.common.config.Configuration; import net.minecraftforge.common.config.Property; +import org.lwjgl.util.Color; import org.lwjgl.util.Dimension; +import org.lwjgl.util.ReadableColor; import org.lwjgl.util.ReadableDimension; import javax.annotation.Nullable; import java.io.File; import java.io.IOException; -import java.lang.reflect.Type; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Map; @@ -266,12 +267,10 @@ public class GuiRenderSettings extends GuiScreen implements Closeable { this.timeline = timeline; String json = getConfigProperty(ReplayModRender.instance.getConfiguration()).getString(); - RenderSettings settings = new GsonBuilder().registerTypeAdapter(RenderSettings.class, new InstanceCreator() { - @Override - public RenderSettings createInstance(Type type) { - return getDefaultRenderSettings(); - } - }).create().fromJson(json, RenderSettings.class); + RenderSettings settings = new GsonBuilder() + .registerTypeAdapter(RenderSettings.class, (InstanceCreator) type -> getDefaultRenderSettings()) + .registerTypeAdapter(ReadableColor.class, new Gson().getAdapter(Color.class)) + .create().fromJson(json, RenderSettings.class); load(settings); }