diff --git a/src/main/scala/li/cil/oc/Settings.scala b/src/main/scala/li/cil/oc/Settings.scala index 9a13b0a27..0dc664dac 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._ @@ -211,10 +212,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) @@ -230,8 +243,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 618321ef1..8089ab617 100644 --- a/src/main/scala/li/cil/oc/common/SaveHandler.scala +++ b/src/main/scala/li/cil/oc/common/SaveHandler.scala @@ -4,7 +4,7 @@ import cpw.mods.fml.common.eventhandler.SubscribeEvent 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.world.{ChunkDataEvent, WorldEvent} import scala.collection.mutable