/// <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; }
public static bool ReadConfig() { string filepath = Path.Combine(TShock.SavePath, "LotteryConfig.json"); try { if (File.Exists(filepath)) { using (var stream = new FileStream(filepath, FileMode.Open, FileAccess.Read, FileShare.Read)) { using (var sr = new StreamReader(stream)) { var configString = sr.ReadToEnd(); config = JsonConvert.DeserializeObject<Config>(configString); } stream.Close(); } return true; } else { Log.ConsoleError("Lottery config not found. Creating new one..."); CreateConfig(); return false; } } catch (Exception ex) { Log.ConsoleError(ex.Message); } return false; }
private void CreateConfig() { string filepath = Path.Combine(TShock.SavePath, "CawAIO.json"); try { using (var stream = new FileStream(filepath, FileMode.Create, FileAccess.Write, FileShare.Write)) { using (var sr = new StreamWriter(stream)) { config = new Config(); var configString = JsonConvert.SerializeObject(config, Formatting.Indented); sr.Write(configString); } stream.Close(); } } catch (Exception ex) { Log.ConsoleError(ex.Message); } }
public static Config NewSampleConfiguration() { Config newConfig = new Config(); return newConfig; }