Advertisement
ImaBrokeDude

3e23r3tq324t34r23qrfq32

Oct 24th, 2017
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.79 KB | None | 0 0
  1.     public class PackOpsSettingsManager
  2.     {
  3.         public static PackOpsSettingsManager Instance;
  4.  
  5.         private readonly string _packOpsJson =
  6.             $"{Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)}\\Hyddwn Launcher\\packops.json";
  7.  
  8.         private PluginContext _pluginContext;
  9.  
  10.         private PackOpsSettingsManager(PluginContext pluginCOntext)
  11.         {
  12.             if (!Directory.Exists(Path.GetDirectoryName(_packOpsJson)))
  13.                 Directory.CreateDirectory(Path.GetDirectoryName(_packOpsJson));
  14.  
  15.             PackOpsSettings = LoadPackOpsSettings();
  16.             PackOpsSettings.PropertyChanged += SaveOnChanged;
  17.         }
  18.  
  19.         public PackOpsSettings PackOpsSettings { get; protected set; }
  20.  
  21.         public static void Initialize(PluginContext pluginContext)
  22.         {
  23.             if (Instance == null)
  24.                 Instance = new PackOpsSettingsManager(pluginContext);
  25.         }
  26.  
  27.         private void SaveOnChanged(object sender, PropertyChangedEventArgs e)
  28.         {
  29.             SavePackOpsSettings();
  30.         }
  31.  
  32.         public void SavePackOpsSettings()
  33.         {
  34.             try
  35.             {
  36.                 var json = JsonConvert.SerializeObject(PackOpsSettings, Formatting.Indented);
  37.                 if (File.Exists(_packOpsJson))
  38.                     File.Delete(_packOpsJson);
  39.  
  40.                 File.WriteAllText(_packOpsJson, json);
  41.             }
  42.             catch (Exception ex)
  43.             {
  44.                 _pluginContext.LogString($"Unable to save PackOps settings. {ex.Message}", true);
  45.             }
  46.         }
  47.  
  48.         public PackOpsSettings LoadPackOpsSettings()
  49.         {
  50.             try
  51.             {
  52.                 var fs = new FileStream(_packOpsJson, FileMode.Open);
  53.                 var sr = new StreamReader(fs);
  54.  
  55.                 var result = JsonConvert.DeserializeObject<PackOpsSettings>(sr.ReadToEnd());
  56.  
  57.                 sr.Dispose();
  58.                 fs.Dispose();
  59.  
  60.                 return result;
  61.             }
  62.             catch (Exception)
  63.             {
  64.                 return new PackOpsSettings();
  65.             }
  66.         }
  67.  
  68.         public void Reset()
  69.         {
  70.             PackOpsSettings = new PackOpsSettings();
  71.             SavePackOpsSettings();
  72.         }
  73.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement