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);
     }
 }
Beispiel #6
0
 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
 }
Beispiel #7
0
        // 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();
 }
Beispiel #9
0
 public ModRegistry(IConfiguration configuration)
 {
     _configuration = configuration;
     Mirrors        = ModConfigurationReader.GetMirrorsFromIni(_configuration);
 }