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."); }
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."); }