PlombirLauncher/src/LauncherGUI/ConfigManager.cs

75 lines
1.7 KiB
C#
Raw Normal View History

using System;
using System.IO;
using Tommy;
namespace PlombirLauncher;
public class ConfigManager
{
public static void BuildDefault()
{
TomlTable toml = new TomlTable
{
["title"] = "Launcher tweaks file!",
["runtime-path"] = new TomlString
{
Value = "./runtime",
Comment = "Path to folder that will hold all minecraft versions"
},
["last-version-launched"] = new TomlString
{
Value = "1.20.1",
Comment = "Saving last launched version to use it after launch"
},
["nickname"] = "slugcat"
};
using(StreamWriter writer = File.CreateText("tweaks.toml"))
{
toml.WriteTo(writer);
// Remember to flush the data if needed!
writer.Flush();
}
}
public static dynamic? ReadConfig(string key)
{
if (!File.Exists("tweaks.toml"))
{
BuildDefault();
}
using(StreamReader reader = File.OpenText("tweaks.toml"))
{
TomlTable table = TOML.Parse(reader);
return table[key];
}
}
public static void WriteInConfig(string key, dynamic value)
{
if (!File.Exists("tweaks.toml"))
{
BuildDefault();
}
TomlTable table;
using(StreamReader reader = File.OpenText("tweaks.toml"))
{
table = TOML.Parse(reader);
table[key] = value;
}
using(StreamWriter writer = File.CreateText("tweaks.toml"))
{
table.WriteTo(writer);
// Remember to flush the data if needed!
writer.Flush();
}
}
}