private void LoadUserInfoScreen() { // Refresh Button VRCEUiButton btnRefresh = new VRCEUiButton("refresh", new Vector2(0f, 0f), "Refresh"); btnRefresh.OnClick += () => { if (string.IsNullOrEmpty(PageUserInfo.userIdOfLastUserPageInfoViewed)) { return; } string id = PageUserInfo.userIdOfLastUserPageInfoViewed; ApiCache.Invalidate <APIUser>(id); APIUser.FetchUser(id, user => { PageUserInfo pageUserInfo = VRCEUi.UserInfoScreen.GetComponent <PageUserInfo>(); if (pageUserInfo != null) { pageUserInfo.SetupUserInfo(user); } }, error => VRCModLogger.LogError($"Failed to fetch user of id {id}: {error}")); }; VRCMenuUtilsAPI.AddUserInfoButton(btnRefresh); }
private IEnumerator Setup() { // Wait for load yield return(VRCMenuUtilsAPI.WaitForInit()); VRCMenuUtilsAPI.AddQuickMenuButton("headlight", "Toggle Headlight", "Enables/Disables a headlight on your avatar", ToggleHeadlight); }
private IEnumerator Setup() { yield return(VRCMenuUtilsAPI.WaitForInit()); VRCMenuUtilsAPI.AddQuickMenuButton("Teleport", "Teleport", "Teleports u to a player by name", new Action(this.TELEPORT)); VRCMenuUtilsAPI.AddQuickMenuButton("SaveCurrent\nPosition", "Save\nCurrent\nPos", "Store ur current world position", new Action(this.SavePosition)); VRCMenuUtilsAPI.AddQuickMenuButton("Tp-To\nStoredPosition", "Tp-To\nStoredPos", "Teleports u to stored world position", new Action(this.TPToStoredPos)); yield break; }
private IEnumerator Setup() { // Wait for load yield return(VRCMenuUtilsAPI.WaitForInit()); // Run UI loaders LoadSocialScreen(); LoadUserInfoScreen(); }
private IEnumerator Setup() { // Wait for load yield return(VRCMenuUtilsAPI.WaitForInit()); // Add wait for page shown VRCMenuUtilsAPI.OnPageShown += VRCMenuUtilsAPI_OnPageShown; // Wait for worlds while (_worldsList == null) { yield return(null); } // Wait for favourite and recent while (_worldsList.Find("Playlist1") == null || _worldsList.Find("Recent") == null) { yield return(null); } // Grab favourites and recent Transform[] favourites = new Transform[] { _worldsList.Find("Playlist1"), _worldsList.Find("Playlist2"), _worldsList.Find("Playlist3"), _worldsList.Find("Playlist4") }; Transform recent = _worldsList.Find("Recent"); // Grab the positions foreach (Transform favourite in favourites) { _worldsPositions.Add(favourite, favourite.GetSiblingIndex()); } _worldsPositions.Add(recent, recent.GetSiblingIndex()); // Change positions ChangePositions(); // Set watchers _config.WatchForUpdate("FavouriteWorldsAtTop", () => ChangePositions()); _config.WatchForUpdate("RecentWorldsAtTop", () => ChangePositions()); VRCMenuUtilsAPI.OnPageShown -= VRCMenuUtilsAPI_OnPageShown; VRCModLogger.Log("Worlds UI positions setup!"); }
private static bool Enter(PortalInternal __instance, MethodInfo __originalMethod) { if (portalInternal == __instance) { return(true); } VRCMenuUtilsAPI.Alert("Enter Portal", "Do you really want to enter the portal?", "No", () => { VRCMenuUtilsAPI.HideCurrentPopup(); }, "Yes", () => { portalInternal = __instance; VRCMenuUtilsAPI.HideCurrentPopup(); __originalMethod.Invoke(__instance, new object[0]); }); return(false); }
public IEnumerator Setup() { yield return(VRCMenuUtilsAPI.WaitForInit()); var DropPortalButton = new VRCEUiButton("Portal", Vector2.zero, "Drop Portal"); DropPortalButton.OnClick += () => { //VRCMenuUtilsAPI.GetPage(VRCEUi.UserInfoScreen.name).GetComponentInChildren<PageUserInfo>().user; APIUser usr = VRCEUi.UserInfoScreen.GetComponentInChildren <PageUserInfo>().user; if (usr.id == APIUser.CurrentUser.id) { VRCMenuUtilsAPI.VRCUiPopupManager.ShowAlert("Error", "You cannot drop a portal to yourself!"); return; } else if (string.IsNullOrEmpty(usr.location)) { VRCMenuUtilsAPI.VRCUiPopupManager.ShowAlert("Error", usr.displayName + " has no valid location!"); return; } else if (usr.location.ToLower() == "private") { VRCMenuUtilsAPI.VRCUiPopupManager.ShowAlert("Error", usr.displayName + " is in a private world!"); return; } else if (usr.location.ToLower() == "offline") { VRCMenuUtilsAPI.VRCUiPopupManager.ShowAlert("Error", usr.displayName + " is offline!"); return; } string id = usr.location; string[] instance = id.Split(':'); if (instance.Length == 2) { DropPortalToWorld(instance[0], instance[1]); } else { DropPortalToWorld(id); } }; VRCMenuUtilsAPI.AddUserInfoButton(DropPortalButton); }