diff options
author | Jesse Plamondon-Willard <github@jplamondonw.com> | 2016-12-23 11:20:06 -0500 |
---|---|---|
committer | Jesse Plamondon-Willard <github@jplamondonw.com> | 2016-12-23 11:20:06 -0500 |
commit | 1fdc0c0b3586bd02119a8d55baf103acf63e86d5 (patch) | |
tree | f3e52968d46cf9a226ebfa0833adf1be065e12e6 /src/StardewModdingAPI/Program.cs | |
parent | c7a08d08db3305a7cfd3a6438beda48b0791eaac (diff) | |
download | SMAPI-1fdc0c0b3586bd02119a8d55baf103acf63e86d5.tar.gz SMAPI-1fdc0c0b3586bd02119a8d55baf103acf63e86d5.tar.bz2 SMAPI-1fdc0c0b3586bd02119a8d55baf103acf63e86d5.zip |
catch errors when reading metadata file just in case (#192)
Diffstat (limited to 'src/StardewModdingAPI/Program.cs')
-rw-r--r-- | src/StardewModdingAPI/Program.cs | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/StardewModdingAPI/Program.cs b/src/StardewModdingAPI/Program.cs index 0c232b1d..a48fa716 100644 --- a/src/StardewModdingAPI/Program.cs +++ b/src/StardewModdingAPI/Program.cs @@ -316,9 +316,18 @@ namespace StardewModdingAPI AppDomain.CurrentDomain.AssemblyResolve += (sender, e) => modAssemblyLoader.ResolveAssembly(e.Name); // get known incompatible mods - IDictionary<string, IncompatibleMod> incompatibleMods = File.Exists(Constants.ApiModMetadataPath) - ? JsonConvert.DeserializeObject<IncompatibleMod[]>(File.ReadAllText(Constants.ApiModMetadataPath)).ToDictionary(p => p.ID, p => p) - : new Dictionary<string, IncompatibleMod>(0); + IDictionary<string, IncompatibleMod> incompatibleMods; + try + { + incompatibleMods = File.Exists(Constants.ApiModMetadataPath) + ? JsonConvert.DeserializeObject<IncompatibleMod[]>(File.ReadAllText(Constants.ApiModMetadataPath)).ToDictionary(p => p.ID, p => p) + : new Dictionary<string, IncompatibleMod>(0); + } + catch (Exception ex) + { + incompatibleMods = new Dictionary<string, IncompatibleMod>(); + Program.Monitor.Log($"Couldn't read metadata file at {Constants.ApiModMetadataPath}. SMAPI will still run, but some features may be disabled.\n{ex}", LogLevel.Warn); + } // load mods foreach (string directory in Directory.GetDirectories(Program.ModPath)) |