Exemple #1
0
        private static void CheckForWorldDatabaseUpdate()
        {
            log.Info($"Automatic World Database Update started...");
            try
            {
                var worldDb        = new Database.WorldDatabase();
                var currentVersion = worldDb.GetVersion();
                log.Info($"Current World Database version: Base - {currentVersion.BaseVersion} | Patch - {currentVersion.PatchVersion}");

                var url     = "https://api.github.com/repos/ACEmulator/ACE-World-16PY-Patches/releases";
                var request = (HttpWebRequest)WebRequest.Create(url);
                request.UserAgent = "ACE.Server";

                var response = request.GetResponse();
                var reader   = new StreamReader(response.GetResponseStream(), System.Text.Encoding.UTF8);
                var html     = reader.ReadToEnd();
                reader.Close();
                response.Close();

                dynamic json       = JsonConvert.DeserializeObject(html);
                string  tag        = json[0].tag_name;
                string  dbURL      = json[0].assets[0].browser_download_url;
                string  dbFileName = json[0].assets[0].name;

                if (currentVersion.PatchVersion != tag)
                {
                    var patchVersionSplit = currentVersion.PatchVersion.Split(".");
                    var tagSplit          = tag.Split(".");

                    int.TryParse(patchVersionSplit[0], out var patchMajor);
                    int.TryParse(patchVersionSplit[1], out var patchMinor);
                    int.TryParse(patchVersionSplit[2], out var patchBuild);

                    int.TryParse(tagSplit[0], out var tagMajor);
                    int.TryParse(tagSplit[1], out var tagMinor);
                    int.TryParse(tagSplit[2], out var tagBuild);

                    if (tagMajor > patchMajor || tagMinor > patchMinor || (tagBuild > patchBuild && patchBuild != 0))
                    {
                        log.Info($"Latest patch version is {tag} -- Update Required!");
                        UpdateToLatestWorldDatabase(dbURL, dbFileName);
                        var newVersion = worldDb.GetVersion();
                        log.Info($"Updated World Database version: Base - {newVersion.BaseVersion} | Patch - {newVersion.PatchVersion}");
                    }
                    else
                    {
                        log.Info($"Latest patch version is {tag} -- No Update Required!");
                    }
                }
                else
                {
                    log.Info($"Latest patch version is {tag} -- No Update Required!");
                }
            }
            catch (Exception ex)
            {
                log.Info($"Unable to continue with Automatic World Database Update due to the following error: {ex}");
            }
            log.Info($"Automatic World Database Update complete.");
        }
Exemple #2
0
        private static void CheckForWorldDatabaseUpdate()
        {
            log.Info($"Automatic World Database Update started...");
            var worldDb        = new Database.WorldDatabase();
            var currentVersion = worldDb.GetVersion();

            log.Info($"Current World Database version: Base - {currentVersion.BaseVersion} | Patch - {currentVersion.PatchVersion}");

            var url     = "https://api.github.com/repos/ACEmulator/ACE-World-16PY-Patches/releases";
            var request = (HttpWebRequest)WebRequest.Create(url);

            request.UserAgent = "ACE.Server";

            var response = request.GetResponse();
            var reader   = new StreamReader(response.GetResponseStream(), System.Text.Encoding.UTF8);
            var html     = reader.ReadToEnd();

            reader.Close();
            response.Close();

            dynamic json       = JsonConvert.DeserializeObject(html);
            string  tag        = json[0].tag_name;
            string  dbURL      = json[0].assets[0].browser_download_url;
            string  dbFileName = json[0].assets[0].name;

            if (currentVersion.PatchVersion != tag)
            {
                log.Info($"Latest patch version is {tag} -- Update Required!");
                UpdateToLatestWorldDatabase(dbURL, dbFileName);
                var newVersion = worldDb.GetVersion();
                log.Info($"Updated World Database version: Base - {newVersion.BaseVersion} | Patch - {newVersion.PatchVersion}");
            }
            else
            {
                log.Info($"Latest patch version is {tag} -- No Update Required!");
            }

            log.Info($"Automatic World Database Update complete.");
        }