public static void GetLatestKnownVersion(Mod mod, Action <Version> on_success, Action <Version> on_fail = null) { ModVersionGet.GetLatestKnownVersionAsync(mod, on_success, delegate(Exception _) { if (on_fail != null) { on_fail(mod.Version); } }); }
//////////////// public static void GetLatestKnownVersionAsync(Mod mod, Action <Version> on_success, Action <Exception> on_fail) { Action check = delegate() { var mymod = HamstarHelpersMod.Instance; try { if (mymod.ModVersionGet.ModVersions.ContainsKey(mod.Name)) { on_success(mymod.ModVersionGet.ModVersions[mod.Name]); } else { var ke = new KeyNotFoundException("GetLatestKnownVersion - Unrecognized mod " + mod.Name + " (not found on mod browser)"); on_fail(ke); } } catch (Exception e) { on_fail(e); } }; ThreadPool.QueueUserWorkItem(_ => { lock (ModVersionGet.MyLock) { var mymod = HamstarHelpersMod.Instance; if (mymod.ModVersionGet.ModVersions == null) { ModVersionGet.RetrieveLatestKnownVersionsAsync((versions, found) => { if (found) { mymod.ModVersionGet.ModVersions = versions; } check(); }); } else { check(); } } }); //string username = ModMetaDataManager.GetGithubUserName( mod ); //string projname = ModMetaDataManager.GetGithubProjectName( mod ); //string url = "https://api.github.com/repos/" + username + "/" + projname + "/releases"; }