Guard against broken render settings file
This commit is contained in:
@@ -6,6 +6,7 @@ import com.google.common.util.concurrent.Futures;
|
|||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import com.google.gson.GsonBuilder;
|
import com.google.gson.GsonBuilder;
|
||||||
import com.google.gson.InstanceCreator;
|
import com.google.gson.InstanceCreator;
|
||||||
|
import com.google.gson.JsonSyntaxException;
|
||||||
import com.replaymod.render.RenderSettings;
|
import com.replaymod.render.RenderSettings;
|
||||||
import com.replaymod.render.ReplayModRender;
|
import com.replaymod.render.ReplayModRender;
|
||||||
import com.replaymod.render.VideoWriter;
|
import com.replaymod.render.VideoWriter;
|
||||||
@@ -329,10 +330,19 @@ public class GuiRenderSettings extends GuiScreen implements Closeable {
|
|||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
LOGGER.error("Reading render settings:", e);
|
LOGGER.error("Reading render settings:", e);
|
||||||
}
|
}
|
||||||
RenderSettings settings = new GsonBuilder()
|
RenderSettings settings = null;
|
||||||
.registerTypeAdapter(RenderSettings.class, (InstanceCreator<RenderSettings>) type -> getDefaultRenderSettings())
|
try {
|
||||||
.registerTypeAdapter(ReadableColor.class, new Gson().getAdapter(Color.class))
|
settings = new GsonBuilder()
|
||||||
.create().fromJson(json, RenderSettings.class);
|
.registerTypeAdapter(RenderSettings.class, (InstanceCreator<RenderSettings>) type -> getDefaultRenderSettings())
|
||||||
|
.registerTypeAdapter(ReadableColor.class, new Gson().getAdapter(Color.class))
|
||||||
|
.create().fromJson(json, RenderSettings.class);
|
||||||
|
} catch (JsonSyntaxException e) {
|
||||||
|
LOGGER.error("Parsing render settings:", e);
|
||||||
|
LOGGER.error("Raw JSON: {}", json);
|
||||||
|
}
|
||||||
|
if (settings == null) {
|
||||||
|
settings = getDefaultRenderSettings();
|
||||||
|
}
|
||||||
load(settings);
|
load(settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user