Exemple #1
0
        public static IEnumerator PopulateList()
        {
            CustomAvatarFavorites.LoadedAvatars = new Il2CppSystem.Collections.Generic.List <ApiAvatar>();
            Task <string> request = HTTPRequest.get(BetterEmmVRC.BetterEmmVRC.NetworkLib.baseURL + "/api/avatar");

            while (!request.IsCompleted && !request.IsFaulted)
            {
                yield return(new WaitForEndOfFrame());
            }
            if (!request.IsFaulted)
            {
                Avatar[] array = Decoder.Decode(request.Result).Make <Avatar[]>();
                if (array != null)
                {
                    foreach (Avatar avatar in array)
                    {
                        CustomAvatarFavorites.LoadedAvatars.Add(avatar.apiAvatar());
                    }
                    CustomAvatarFavorites.avText.GetComponentInChildren <Text>().text = "(" + CustomAvatarFavorites.LoadedAvatars.Count.ToString() + ") BetterEmmVRC Favorites";
                }
            }
            else
            {
                CustomAvatarFavorites.error       = true;
                CustomAvatarFavorites.errorWarned = true;
            }
            yield break;
        }
Exemple #2
0
        public static IEnumerator UnfavoriteAvatar(ApiAvatar avtr)
        {
            if (CustomAvatarFavorites.LoadedAvatars.Contains(avtr))
            {
                CustomAvatarFavorites.LoadedAvatars.Remove(avtr);
            }
            Task <string> request = HTTPRequest.delete(BetterEmmVRC.BetterEmmVRC.NetworkLib.baseURL + "/api/avatar", new Avatar(avtr));

            while (!request.IsCompleted && !request.IsFaulted)
            {
                yield return(new WaitForEndOfFrame());
            }
            if (!request.IsFaulted)
            {
                if (!CustomAvatarFavorites.Searching)
                {
                    CustomAvatarFavorites.avText.GetComponentInChildren <Text>().text = "(" + CustomAvatarFavorites.LoadedAvatars.Count.ToString() + ") BetterEmmVRC Favorites";
                    MelonCoroutines.Start(CustomAvatarFavorites.RefreshMenu(0.1f));
                }
            }
            else
            {
                AggregateException exception = request.Exception;
                VRCUiPopupManager.field_Private_Static_VRCUiPopupManager_0.ShowStandardPopup("emmVRC", "Error occured while updating avatar list.", "Dismiss", delegate()
                {
                    VRCUiPopupManager.field_Private_Static_VRCUiPopupManager_0.HideCurrentPopup();
                }, null);
            }
            yield break;
        }
Exemple #3
0
        public static IEnumerator SearchAvatars(string query)
        {
            Helpers.Log("Starting Search For: " + query + "..");
            if (BetterEmmVRC.BetterEmmVRC.NetworkLib.authToken == null)
            {
                yield return(new WaitForEndOfFrame());
            }
            CustomAvatarFavorites.SearchedAvatars.Clear();
            string url = BetterEmmVRC.BetterEmmVRC.NetworkLib.baseURL + "/api/avatar/search";

            System.Collections.Generic.Dictionary <string, string> dictionary = new System.Collections.Generic.Dictionary <string, string>();
            dictionary["query"] = query;
            Helpers.Log("Making Request..");
            Task <string> request = HTTPRequest.post(url, dictionary);

            while (!request.IsCompleted && !request.IsFaulted)
            {
                yield return(new WaitForEndOfFrame());
            }
            if (!request.IsFaulted)
            {
                Helpers.Log("Success!");
                Avatar[] array = Decoder.Decode(request.Result).Make <Avatar[]>();
                if (array != null)
                {
                    foreach (Avatar avatar in array)
                    {
                        CustomAvatarFavorites.SearchedAvatars.Add(avatar.apiAvatar());
                    }
                }
                CustomAvatarFavorites.avText.GetComponentInChildren <Text>().text = "(" + CustomAvatarFavorites.SearchedAvatars.Count.ToString() + ") Result(s): " + query;
            }
            else
            {
                string             str       = "Asynchronous net post failed: ";
                AggregateException exception = request.Exception;
                MelonLogger.LogError(str + ((exception != null) ? exception.ToString() : null));
                VRCUiPopupManager.field_Private_Static_VRCUiPopupManager_0.ShowStandardPopup("emmVRC", "Your search could not be processed.", "Dismiss", delegate()
                {
                    VRCUiPopupManager.field_Private_Static_VRCUiPopupManager_0.HideCurrentPopup();
                }, null);
            }
            CustomAvatarFavorites.SearchAvatarList.scrollRect.movementType = ScrollRect.MovementType.Unrestricted;
            CustomAvatarFavorites.SearchAvatarList.RenderElement(CustomAvatarFavorites.SearchedAvatars);
            CustomAvatarFavorites.SearchAvatarList.scrollRect.movementType = ScrollRect.MovementType.Elastic;
            if (CustomAvatarFavorites.SearchAvatarList.expandButton.gameObject.transform.Find("ToggleIcon").GetComponentInChildren <Image>().sprite == CustomAvatarFavorites.SearchAvatarList.expandSprite)
            {
                CustomAvatarFavorites.SearchAvatarList.ToggleExtend();
            }
            CustomAvatarFavorites.Searching = true;
            yield break;
        }