using Newtonsoft.Json; using Newtonsoft.Json.Converters; namespace ModpackUpdater; public class ModpackConfig { public bool Maintenance { get; set; } public string Name { get; set; } public string UpdateUrl { get; set; } public string InstallUrl { get; set; } public string UnleashApiUrl { get; set; } public string UnleashInstanceId { get; set; } public bool PreferDirectLinks { get; set; } public string MinecraftVersion { get; set; } [JsonConverter(typeof(StringEnumConverter))] public ModLoader ModLoader { get; set; } [JsonIgnore] public string ConfigUrl { get; private set; } public static ModpackConfig LoadFromUrl(string url) { var result = new HttpClient().GetStringAsync(url).Result; var config = JsonConvert.DeserializeObject(result); config.ConfigUrl = url; return config; } }