Example #1
0
 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);
         }
     });
 }
Example #2
0
        ////////////////

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