From 2e92183abb3960c3e0000e26e92a3546169ef6d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Mon, 17 Mar 2014 13:31:26 +0100 Subject: [PATCH] fixed config not being created (only updated) --- src/main/scala/li/cil/oc/Settings.scala | 22 ++++++++++++++----- .../scala/li/cil/oc/common/SaveHandler.scala | 2 +- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/main/scala/li/cil/oc/Settings.scala b/src/main/scala/li/cil/oc/Settings.scala index d2c453546..3760982af 100644 --- a/src/main/scala/li/cil/oc/Settings.scala +++ b/src/main/scala/li/cil/oc/Settings.scala @@ -3,6 +3,7 @@ package li.cil.oc import com.typesafe.config.{ConfigRenderOptions, Config, ConfigFactory} import cpw.mods.fml.common.{ModAPIManager, Loader} import java.io._ +import java.util.logging.Level import li.cil.oc.util.PackedColor import org.apache.commons.lang3.StringEscapeUtils import scala.collection.convert.WrapAsScala._ @@ -220,10 +221,22 @@ object Settings { in.close() ConfigFactory.parseString(config) } + val config = + try { + val plain = Source.fromFile(file).mkString.replace("\r\n", "\n") + val config = ConfigFactory.parseString(plain).withFallback(defaults) + settings = new Settings(config.getConfig("opencomputers")) + config + } + catch { + case e: Throwable => + if (file.exists()) { + OpenComputers.log.log(Level.WARNING, "Failed loading config, using defaults.", e) + } + settings = new Settings(defaults.getConfig("opencomputers")) + defaults + } try { - val config = ConfigFactory.parseString(Source.fromFile(file).mkString.replace("\r\n", "\n")).withFallback(defaults) - settings = new Settings(config.getConfig("opencomputers")) - val renderSettings = ConfigRenderOptions.defaults.setJson(false).setOriginComments(false) val nl = sys.props("line.separator") val nle = StringEscapeUtils.escapeJava(nl) @@ -239,8 +252,7 @@ object Settings { } catch { case e: Throwable => - OpenComputers.log.warning("Failed loading config, using defaults. The reason was: " + e.getMessage) - settings = new Settings(defaults.getConfig("opencomputers")) + OpenComputers.log.log(Level.WARNING, "Failed saving config.", e) } } } \ No newline at end of file diff --git a/src/main/scala/li/cil/oc/common/SaveHandler.scala b/src/main/scala/li/cil/oc/common/SaveHandler.scala index cce5925a5..cfda336a9 100644 --- a/src/main/scala/li/cil/oc/common/SaveHandler.scala +++ b/src/main/scala/li/cil/oc/common/SaveHandler.scala @@ -3,7 +3,7 @@ package li.cil.oc.common import java.io import java.util.logging.Level import li.cil.oc.{OpenComputers, Settings} -import net.minecraft.world.{World, ChunkCoordIntPair} +import net.minecraft.world.ChunkCoordIntPair import net.minecraftforge.common.DimensionManager import net.minecraftforge.event.ForgeSubscribe import net.minecraftforge.event.world.{ChunkDataEvent, WorldEvent}