/// <summary> /// Loads a configuration file and deserializes it from JSON /// </summary> public static Config FromFile(string Path) { Config config = null; if (!System.IO.Directory.Exists(Config.BaseDirectory)) { try { System.IO.Directory.CreateDirectory(Config.BaseDirectory); } catch { TShock.Log.ConsoleError("seconomy configuration: Cannot create base directory: {0}", Config.BaseDirectory); return null; } } try { string fileText = System.IO.File.ReadAllText(Path); config = JsonConvert.DeserializeObject<Config>(fileText); config.path = Path; } catch (Exception ex) { if (ex is System.IO.FileNotFoundException || ex is System.IO.DirectoryNotFoundException) { TShock.Log.ConsoleError("seconomy configuration: Cannot find file or directory. Creating new one."); config = new Config(Path); config.SaveConfiguration(); } else if (ex is System.Security.SecurityException) { TShock.Log.ConsoleError("seconomy configuration: Access denied reading file " + Path); } else { TShock.Log.ConsoleError("seconomy configuration: error " + ex.ToString()); } } return config; }
/// <summary> /// Loads a configuration file and deserializes it from JSON /// </summary> public static Config FromFile(string Path) { Config config = null; if (!System.IO.Directory.Exists(Config.BaseDirectory)) { try { System.IO.Directory.CreateDirectory(Config.BaseDirectory); } catch { TShock.Log.ConsoleError("seconomy configuration: Cannot create base directory: {0}", Config.BaseDirectory); return(null); } } try { string fileText = System.IO.File.ReadAllText(Path); config = JsonConvert.DeserializeObject <Config>(fileText); config.path = Path; } catch (Exception ex) { if (ex is System.IO.FileNotFoundException || ex is System.IO.DirectoryNotFoundException) { TShock.Log.ConsoleError("seconomy configuration: Cannot find file or directory. Creating new one."); config = new Config(Path); config.SaveConfiguration(); } else if (ex is System.Security.SecurityException) { TShock.Log.ConsoleError("seconomy configuration: Access denied reading file " + Path); } else { TShock.Log.ConsoleError("seconomy configuration: error " + ex.ToString()); } } return(config); }