internal void UpdateKnownRTW2VersionsFromMirrors(IList <string> mirrors) { var allKnownVersions = new List <Rtw2Version>(Rtw2Versions); foreach (var mirror in mirrors) { Log.Debug($"Retrieving version information from {mirror} if available"); var mirrorKnownVersions = new List <Rtw2Version>(); var versionsUrl = Path.Combine(mirror, "rtw2_versions.ini"); using (var client = new WebClient()) { try { var response = client.DownloadString(versionsUrl); mirrorKnownVersions.AddRange(ModConfigurationReader.Rtw2VersionsFromString(response)); } catch (Exception e) { Log.Error($"Didn't find a RTW2 version listing at {versionsUrl}", e); } } foreach (var version in mirrorKnownVersions) { if (!allKnownVersions.Any(existing => version.Checksum == existing.Checksum)) { allKnownVersions.Add(version); } } } Rtw2Versions.AddRange(allKnownVersions); UpdateCache(); }
public static Dictionary <string, string> GetLatestRtw2Patch() { // TODO mirrors var url = "https://raw.githubusercontent.com/Aurora-Modders/AuroraRegistry/master/aurora_files.ini"; using (var client = new WebClient()) { var str = client.DownloadString(url); return(ModConfigurationReader.FromKeyValueString(str)); } }
internal void UpdateKnownVersionsFromCache() { try { var rawFileContents = File.ReadAllText(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "aurora_versions.ini")); AuroraVersions = ModConfigurationReader.AuroraVersionsFromString(rawFileContents).ToList(); } catch (Exception e) { Log.Error($"Failed to parse version data from {_configuration["aurora_known_versions_relative_filepath"]}", e); } }
internal void UpdateKnownVersionsFromCache() { Log.Debug($"Loading RTW2 versions from {Path.Combine(Program.Rtw2ExecutableDirectory, "rtw2_versions.ini")}"); try { var rawFileContents = File.ReadAllText(Path.Combine(Program.Rtw2ExecutableDirectory, "rtw2_versions.ini")); Rtw2Versions.AddRange(ModConfigurationReader.Rtw2VersionsFromString(rawFileContents).ToList()); } catch (Exception e) { Log.Error($"Failed to parse version data", e); } }
internal void UpdateKnownVersionsFromCache() { Log.Debug($"Loading Aurora versions from {Path.Combine(Program.AuroraLoaderExecutableDirectory, "aurora_versions.ini")}"); try { var rawFileContents = File.ReadAllText(Path.Combine(Program.AuroraLoaderExecutableDirectory, "aurora_versions.ini")); AuroraVersions.AddRange(ModConfigurationReader.AuroraVersionsFromString(rawFileContents).ToList()); } catch (Exception e) { Log.Error($"Failed to parse version data from {_configuration["aurora_known_versions_relative_filepath"]}", e); } }
public void UpdateKnownAuroraVersions() { using (var client = new WebClient()) { try { var response = client.DownloadString(VersionsUrl); KnownAuroraVersions = ModConfigurationReader.AuroraVersionsFromString(response).ToList(); } catch (Exception e) { Log.Error($"Failed to download Aurora version listing from {VersionsUrl}", e); } } // TODO update the locally cached file }
// Mods installed locally are identified by their mod.ini or mod.json file // This is known as their 'mod configuration' file. public void Update() { var mods = new List <ModConfiguration>(); // Load the mod configuration for AuroraLoader itself if (File.Exists(Path.Combine(Program.AuroraLoaderExecutableDirectory, "mod.ini"))) { var auroraLoader = ModConfigurationReader.ModConfigurationFromIni(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "mod.ini")); var auroraLoaderModDirectory = Path.Combine(ModDirectory, auroraLoader.Name, auroraLoader.Version.ToString()); if (!Directory.Exists(Path.Combine(ModDirectory, auroraLoader.Name, auroraLoader.Version.ToString()))) { Directory.CreateDirectory(auroraLoaderModDirectory); File.Copy(Path.Combine(Program.AuroraLoaderExecutableDirectory, "mod.ini"), Path.Combine(auroraLoaderModDirectory, "mod.ini"), true); File.Copy(Path.Combine(Program.AuroraLoaderExecutableDirectory, "AuroraLoader.exe"), Path.Combine(auroraLoaderModDirectory, "AuroraLoader.Exe"), true); } } foreach (var file in Directory.EnumerateFiles(ModDirectory, "mod.ini", SearchOption.AllDirectories)) { try { var newMod = ModConfigurationReader.ModConfigurationFromIni(file); mods.Add(newMod); } catch (Exception e) { Log.Error($"Failed to parse mod data from {file}", e); } } // TODO JSON mod configurations not yet supported //foreach (var file in Directory.EnumerateFiles(ModDirectory, "mod.json", SearchOption.AllDirectories)) //{ // try // { // var jsonString = File.ReadAllText(file); // mods.Add(JsonSerializer.Deserialize<ModConfiguration>(jsonString)); // } // catch (Exception e) // { // Log.Error($"Failed to parse mod data from {file}", e); // } //} ModInstallations = mods; }
public ModRegistry() { Mirrors = ModConfigurationReader.GetMirrorsFromIni(); }
public ModRegistry(IConfiguration configuration) { _configuration = configuration; Mirrors = ModConfigurationReader.GetMirrorsFromIni(_configuration); }