public FavoritesVRMenu(QMNestedButton parent, EthosVRButton config) : base(parent, config.X, config.Y, config.Name, config.Tooltip, GeneralUtils.GetColor(config.ColorScheme.Colors[0]), GeneralUtils.GetColor(config.ColorScheme.Colors[1]), GeneralUtils.GetColor(config.ColorScheme.Colors[2]), GeneralUtils.GetColor(config.ColorScheme.Colors[3])) { new QMSingleButton(this, 0, 0, "Next", delegate { //to-do }, "Go to the next page", Color.red, Color.white); new QMSingleButton(this, 0, 1, "Back", delegate { //to-do }, "Go back to the previous page", Color.red, Color.white); new QMSingleButton(this, 5, 0, "Add\nCurrent Avatar", delegate { var currentAvatar = GeneralWrappers.GetPlayerManager().GetCurrentPlayer().GetAPIAvatar(); Configuration.GetConfig().ExtendedFavoritedAvatars.Add(new FavoritedAvatar(currentAvatar.name, currentAvatar.id, currentAvatar.authorName, currentAvatar.authorId)); Configuration.SaveConfiguration(); GeneralWrappers.GetVRCUiPopupManager().AlertPopup("<color=cyan>Success!</color>", "<color=green>Successfully added your current Avatar to extended favorites</color>"); }, "Adds your current avatar to the extended favorites list", Color.red, Color.white); new QMSingleButton(this, 5, 1, "Remove\nCurrent Avatar", delegate { var currentAvatar = GeneralUtils.GetExtendedFavorite(GeneralWrappers.GetPlayerManager().GetCurrentPlayer().GetAPIAvatar().id); Configuration.GetConfig().ExtendedFavoritedAvatars.Remove(currentAvatar); Configuration.SaveConfiguration(); GeneralWrappers.GetVRCUiPopupManager().AlertPopup("<color=cyan>Success!</color>", "<color=green>Successfully removed your current Avatar from extended favorites</color>"); }, "Removes your current avatar from the extended favorites list", Color.red, Color.white); new QMToggleButton(this, 5, -1, "Delete\nMode", delegate { DeleteMode = true; }, "Normal\nMode", delegate { DeleteMode = false; }, "Enable/Disable Delete Mode, with this on, you can remove avatars from this list by just clicking their respective buttons", Color.red, Color.white); foreach (var avatar in Configuration.GetConfig().ExtendedFavoritedAvatars) { if (X == 4) { if (Y != 2) { new QMSingleButton(this, X, Y, avatar.Name, delegate { if (DeleteMode) { Configuration.GetConfig().ExtendedFavoritedAvatars.Remove(avatar); Configuration.SaveConfiguration(); GeneralWrappers.GetVRCUiPopupManager().AlertPopup("<color=cyan>Success!</color>", "<color=green>Successfully removed this Avatar from extended favorites</color>"); } else { new ApiAvatar() { id = avatar.ID }.Get(new Action <ApiContainer>(x => { PAviSaved.avatar.field_Internal_ApiAvatar_0 = x.Model.Cast <ApiAvatar>(); // can fix better later. PAviSaved.ChangeToSelectedAvatar(); }), null, null, false); } }, $"by {avatar.Author}\nSwitch into this avatar.", Color.red, Color.white); Y++; } } else { new QMSingleButton(this, X, Y, avatar.Name, delegate { if (DeleteMode) { Configuration.GetConfig().ExtendedFavoritedAvatars.Remove(avatar); Configuration.SaveConfiguration(); GeneralWrappers.GetVRCUiPopupManager().AlertPopup("<color=cyan>Success!</color>", "<color=green>Successfully removed this Avatar from extended favorites</color>"); } else { new ApiAvatar() { id = avatar.ID }.Get(new Action <ApiContainer>(x => { PAviSaved.avatar.field_Internal_ApiAvatar_0 = x.Model.Cast <ApiAvatar>(); // can fix better later. PAviSaved.ChangeToSelectedAvatar(); }), null, null, false); } }, $"by {avatar.Author}\nSwitch into this avatar.", Color.red, Color.white); X++; } } }
public ProtectionsVRMenu(QMNestedButton parent, EthosVRButton config) : base(parent, config.X, config.Y, config.Name, config.Tooltip, GeneralUtils.GetColor(config.ColorScheme.Colors[0]), GeneralUtils.GetColor(config.ColorScheme.Colors[1]), GeneralUtils.GetColor(config.ColorScheme.Colors[2]), GeneralUtils.GetColor(config.ColorScheme.Colors[3])) { new QMToggleButton(this, 1, 0, "Enable\nAnti Kick", delegate { Configuration.GetConfig().AntiKick = true; Configuration.SaveConfiguration(); }, "Disable\nAnti Kick", delegate { Configuration.GetConfig().AntiKick = false; Configuration.SaveConfiguration(); }, "Harvest the infinite power of this world and decide whether people can kick you from the instance or not.", Color.red, Color.white).setToggleState(Configuration.GetConfig().AntiKick); new QMToggleButton(this, 2, 0, "Enable\nAnti Block", delegate { Configuration.GetConfig().AntiBlock = true; Configuration.SaveConfiguration(); }, "Disable\nAnti Block", delegate { Configuration.GetConfig().AntiBlock = false; Configuration.SaveConfiguration(); }, "Decide whether you want to see people who you've blocked and/or people who have blocked you.", Color.red, Color.white).setToggleState(Configuration.GetConfig().AntiBlock); new QMToggleButton(this, 3, 0, "Enable\nPortal Safety", delegate { Configuration.GetConfig().PortalSafety = true; Configuration.SaveConfiguration(); }, "Disable\nPortal Safety", delegate { Configuration.GetConfig().PortalSafety = false; Configuration.SaveConfiguration(); }, "This feature enables/disables safety for portals, when enabled it asks you if you want to enter any portal, saves you from ip logging portals, etc.", Color.red, Color.white).setToggleState(Configuration.GetConfig().PortalSafety); new QMToggleButton(this, 4, 0, "Enable\nVideo Player Safety", delegate { Configuration.GetConfig().VideoPlayerSafety = true; Configuration.SaveConfiguration(); }, "Disable\nVideo Player Safety", delegate { Configuration.GetConfig().VideoPlayerSafety = false; Configuration.SaveConfiguration(); }, "This feature, when enabled, protects you from certain urls people try play via video players", Color.red, Color.white).setToggleState(Configuration.GetConfig().VideoPlayerSafety); new QMToggleButton(this, 1, 1, "Enable\nModeration Logger", delegate { Configuration.GetConfig().LogModerations = true; Configuration.SaveConfiguration(); }, "Disable\nModeration Logger", delegate { Configuration.GetConfig().LogModerations = false; Configuration.SaveConfiguration(); }, "This feature, when enabled, logs all actions of Moderation against you and other players.", Color.red, Color.white).setToggleState(Configuration.GetConfig().LogModerations); new QMToggleButton(this, 1, 2, "Enable\nAnti Public Ban", delegate { Configuration.GetConfig().AntiPublicBan = true; Configuration.SaveConfiguration(); }, "Disable\nAnti Public Ban", delegate { Configuration.GetConfig().AntiPublicBan = false; Configuration.SaveConfiguration(); }, "This feature, when enabled, prevents any moderator from publicly banning you in an instance, basically preventing them from sending you home lol", Color.red, Color.white).setToggleState(Configuration.GetConfig().AntiPublicBan); new QMToggleButton(this, 2, 1, "Enable\nAnti World Triggers", delegate { Configuration.GetConfig().AntiWorldTriggers = true; Configuration.SaveConfiguration(); }, "Disable\nAnti World Triggers", delegate { Configuration.GetConfig().AntiWorldTriggers = false; Configuration.SaveConfiguration(); }, "This feature, when enabled, prevents other people from using world triggers to enable/disable mirrors and do other malicious stuff.", Color.red, Color.white).setToggleState(Configuration.GetConfig().AntiWorldTriggers); new QMToggleButton(this, 2, 2, "Auto\nDelete Non Friends\nPortals", delegate { GeneralUtils.AutoDeleteNonFriendsPortals = true; }, "Don't Auto\nDelete Non Friends\nPortals", delegate { GeneralUtils.AutoDeleteNonFriendsPortals = false; }, "This feature, when enabled, auto deletes portals dropped by non friends.", Color.red, Color.white).setToggleState(GeneralUtils.AutoDeleteNonFriendsPortals); new QMToggleButton(this, 3, 1, "Auto\nDelete Portals", delegate { GeneralUtils.AutoDeleteEveryonesPortals = true; }, "Don't\nAuto Delete Portals", delegate { GeneralUtils.AutoDeleteEveryonesPortals = false; }, "This feature, when enabled, auto deletes portals dropped by everyone.", Color.red, Color.white).setToggleState(GeneralUtils.AutoDeleteEveryonesPortals); new QMToggleButton(this, 3, 2, "Auto\nDelete Pickups", delegate { GeneralUtils.AutoDeleteEveryonesPortals = true; }, "Don't\nAuto Delete Pickups", delegate { GeneralUtils.AutoDeleteEveryonesPortals = false; }, "This feature, when enabled, automatically locally deletes all pickups in the world. (This should prevent Love's shitty Desync V5 bullshit)", Color.red, Color.white).setToggleState(GeneralUtils.AutoDeleteAllPickups); }
public UtilsVRMenu(QMNestedButton parent, EthosVRButton config) : base(parent, config.X, config.Y, config.Name, config.Tooltip, GeneralUtils.GetColor(config.ColorScheme.Colors[0]), GeneralUtils.GetColor(config.ColorScheme.Colors[1]), GeneralUtils.GetColor(config.ColorScheme.Colors[2]), GeneralUtils.GetColor(config.ColorScheme.Colors[3])) { new QMToggleButton(this, 1, 0, "Enable\nESP", delegate { GeneralUtils.ESP = true; GameObject[] array = GameObject.FindGameObjectsWithTag("Player"); for (int i = 0; i < array.Length; i++) { if (array[i].transform.Find("SelectRegion")) { array[i].transform.Find("SelectRegion").GetComponent <Renderer>().material.color = Color.green; array[i].transform.Find("SelectRegion").GetComponent <Renderer>().sharedMaterial.color = Color.red; GeneralWrappers.GetHighlightsFX().EnableOutline(array[i].transform.Find("SelectRegion").GetComponent <Renderer>(), GeneralUtils.ESP); } } foreach (VRCSDK2.VRC_Interactable vrc_Interactable in Resources.FindObjectsOfTypeAll <VRCSDK2.VRC_Interactable>()) { GeneralWrappers.GetHighlightsFX().EnableOutline(vrc_Interactable.GetComponentInChildren <Renderer>(), GeneralUtils.ESP); } foreach (VRCSDK2.VRC_Pickup vrc_Pickup in Resources.FindObjectsOfTypeAll <VRCSDK2.VRC_Pickup>()) { GeneralWrappers.GetHighlightsFX().EnableOutline(vrc_Pickup.GetComponentInChildren <Renderer>(), GeneralUtils.ESP); } foreach (PortalInternal portalInternal in Resources.FindObjectsOfTypeAll <PortalInternal>()) { GeneralWrappers.GetHighlightsFX().EnableOutline(portalInternal.GetComponentInChildren <Renderer>(), GeneralUtils.ESP); } }, "Disable\nESP", delegate { GeneralUtils.ESP = false; GameObject[] array = GameObject.FindGameObjectsWithTag("Player"); for (int i = 0; i < array.Length; i++) { if (array[i].transform.Find("SelectRegion")) { array[i].transform.Find("SelectRegion").GetComponent <Renderer>().material.color = Color.green; array[i].transform.Find("SelectRegion").GetComponent <Renderer>().sharedMaterial.color = Color.red; GeneralWrappers.GetHighlightsFX().EnableOutline(array[i].transform.Find("SelectRegion").GetComponent <Renderer>(), GeneralUtils.ESP); } } foreach (VRCSDK2.VRC_Interactable vrc_Interactable in Resources.FindObjectsOfTypeAll <VRCSDK2.VRC_Interactable>()) { GeneralWrappers.GetHighlightsFX().EnableOutline(vrc_Interactable.GetComponentInChildren <Renderer>(), GeneralUtils.ESP); } foreach (VRCSDK2.VRC_Pickup vrc_Pickup in Resources.FindObjectsOfTypeAll <VRCSDK2.VRC_Pickup>()) { GeneralWrappers.GetHighlightsFX().EnableOutline(vrc_Pickup.GetComponentInChildren <Renderer>(), GeneralUtils.ESP); } foreach (PortalInternal portalInternal in Resources.FindObjectsOfTypeAll <PortalInternal>()) { GeneralWrappers.GetHighlightsFX().EnableOutline(portalInternal.GetComponentInChildren <Renderer>(), GeneralUtils.ESP); } }, "Decide whether you want the upper game, get an advantage, and see all players anywhere within the world.", Color.red, Color.white).setToggleState(GeneralUtils.ESP); new QMSingleButton(this, 2, 0, "Avatar\nBy\nID", delegate { ConsoleUtil.Info("Enter Avatar ID: "); string ID = Console.ReadLine(); VRC.Core.API.SendRequest($"avatars/{ID}", VRC.Core.BestHTTP.HTTPMethods.Get, new ApiModelContainer <ApiAvatar>(), null, true, true, 3600f, 2, null); new PageAvatar { avatar = new SimpleAvatarPedestal { field_Internal_ApiAvatar_0 = new ApiAvatar { id = ID } } }.ChangeToSelectedAvatar(); GeneralWrappers.GetVRCUiPopupManager().AlertPopup("<color=cyan>Success!</color>", "<color=green>Successfully cloned that avatar by It's Avatar ID.</color>"); }, "Sets your current avatar using an avatar ID.", Color.red, Color.white); new QMSingleButton(this, 3, 0, "Join\nBy\nID", delegate { ConsoleUtil.Info("Enter Instance ID: "); string ID = Console.ReadLine(); Networking.GoToRoom(ID); }, "Joins an instance by It's ID.", Color.red, Color.white); new QMSingleButton(this, 4, 0, "Copy\nRoom\nID", delegate { Clipboard.SetText($"{RoomManagerBase.field_Internal_Static_ApiWorld_0.id}:{RoomManagerBase.field_Internal_Static_ApiWorld_0.instanceId}"); }, "Copies the current instance's ID.", Color.red, Color.white); new QMToggleButton(this, 1, 1, "Can't Hear\non Non Friends", delegate { GeneralUtils.CantHearOnNonFriends = true; foreach (var player in GeneralWrappers.GetPlayerManager().GetAllPlayers()) { if (!APIUser.IsFriendsWith(player.GetAPIUser().id)) { player.GetVRCPlayer().field_Internal_Boolean_3 = false; } } }, "Can Hear\non Non Friends", delegate { GeneralUtils.CantHearOnNonFriends = false; foreach (var player in GeneralWrappers.GetPlayerManager().GetAllPlayers()) { if (!APIUser.IsFriendsWith(player.GetAPIUser().id)) { player.GetVRCPlayer().field_Internal_Boolean_3 = true; } } }, "Decide whether you want your friends to only hear you in game or not.", Color.red, Color.white).setToggleState(GeneralUtils.CantHearOnNonFriends); //new QMToggleButton(this, 2, 1, "Invisible\nOn", delegate //{ // GeneralUtils.Invisible = true; //}, "Invisible\nOff", delegate //{ // GeneralUtils.Invisible = false; //}, "Decide whether you want people to see you in game.", Color.red, Color.white).setToggleState(GeneralUtils.Invisible); }
public KeybindVRMenu(QMNestedButton parent, EthosVRButton config) : base(parent, config.X, config.Y, config.Name, config.Tooltip, GeneralUtils.GetColor(config.ColorScheme.Colors[0]), GeneralUtils.GetColor(config.ColorScheme.Colors[1]), GeneralUtils.GetColor(config.ColorScheme.Colors[2]), GeneralUtils.GetColor(config.ColorScheme.Colors[3])) { }
public FunVRMenu(QMNestedButton parent, EthosVRButton config) : base(parent, config.X, config.Y, config.Name, config.Tooltip, GeneralUtils.GetColor(config.ColorScheme.Colors[0]), GeneralUtils.GetColor(config.ColorScheme.Colors[1]), GeneralUtils.GetColor(config.ColorScheme.Colors[2]), GeneralUtils.GetColor(config.ColorScheme.Colors[3])) { new QMToggleButton(this, 1, 0, "Enable\nWorld Triggers", delegate { GeneralUtils.WorldTriggers = true; }, "Disable\nWorld Triggers", delegate { GeneralUtils.WorldTriggers = false; }, "Decide whether you want other people to see your interactions with \"local\" triggers.", Color.red, Color.white).setToggleState(GeneralUtils.WorldTriggers); new QMToggleButton(this, 2, 0, "Enable\nForce Clone", delegate { GeneralUtils.ForceClone = true; }, "Disable\nForce Clone", delegate { GeneralUtils.ForceClone = false; }, "(EXPERIMENTAL) Enable/Disable Force Clone, when this is enabled, any avatar can be cloned apart from private ones.", Color.red, Color.white).setToggleState(GeneralUtils.ForceClone); new QMSingleButton(this, 3, 0, "Interact with\nAll Triggers", delegate { foreach (VRC_Trigger trigger in Resources.FindObjectsOfTypeAll <VRC_Trigger>()) { if (!trigger.name.Contains("Avatar") && !trigger.name.Contains("Chair")) { trigger.Interact(); } } }, "Interact with all triggers in the world.", Color.red, Color.white); new QMSingleButton(this, 4, 0, "Interact with\nAll Mirrors", delegate { foreach (VRC_Trigger trigger in Resources.FindObjectsOfTypeAll <VRC_Trigger>()) { if (trigger.name.Contains("Mirror")) { trigger.Interact(); } } }, "Interact with all mirrors in the world.", Color.red, Color.white); new SelfControlVRMenu(this); new QMSingleButton(this, 1, 2, "Play\nVideo on Player", delegate { var videoPlayers = Resources.FindObjectsOfTypeAll <VRCSDK2.VRC_SyncVideoPlayer>(); if (videoPlayers.Count() > 0) { Networking.RPC(RPC.Destination.Owner, videoPlayers[0].gameObject, "Play", new Il2CppSystem.Object[0]); } }, "Plays the current video on the video player", Color.red, Color.white); new QMSingleButton(this, 0, 0, "Pause\nVideo on Player", delegate { var videoPlayers = Resources.FindObjectsOfTypeAll <VRCSDK2.VRC_SyncVideoPlayer>(); if (videoPlayers.Count() > 0) { Networking.RPC(RPC.Destination.Owner, videoPlayers[0].gameObject, "Pause", new Il2CppSystem.Object[0]); } }, "Stops the current video on the video player", Color.red, Color.white); new QMSingleButton(this, 2, 1, "Stop\nVideo on Player", delegate { var videoPlayers = Resources.FindObjectsOfTypeAll <VRCSDK2.VRC_SyncVideoPlayer>(); if (videoPlayers.Count() > 0) { Networking.RPC(RPC.Destination.Owner, videoPlayers[0].gameObject, "Stop", new Il2CppSystem.Object[0]); } }, "Pauses the current video on the video player", Color.red, Color.white); new QMSingleButton(this, 2, 2, "Next\nVideo on Player", delegate { var videoPlayers = Resources.FindObjectsOfTypeAll <VRCSDK2.VRC_SyncVideoPlayer>(); if (videoPlayers.Count() > 0) { Networking.RPC(RPC.Destination.Owner, videoPlayers[0].gameObject, "Next", new Il2CppSystem.Object[0]); } }, "Skips the current video on the video player", Color.red, Color.white); new QMSingleButton(this, 0, 1, "Previous\nVideo on Player", delegate { var videoPlayers = Resources.FindObjectsOfTypeAll <VRCSDK2.VRC_SyncVideoPlayer>(); if (videoPlayers.Count() > 0) { Networking.RPC(RPC.Destination.Owner, videoPlayers[0].gameObject, "Previous", new Il2CppSystem.Object[0]); } }, "Rewinds the current video on the video player", Color.red, Color.white); new QMSingleButton(this, 3, 1, "Clear\nVideos on Player", delegate { var videoPlayers = Resources.FindObjectsOfTypeAll <VRCSDK2.VRC_SyncVideoPlayer>(); if (videoPlayers.Count() > 0) { Networking.RPC(RPC.Destination.Owner, videoPlayers[0].gameObject, "Clear", new Il2CppSystem.Object[0]); } }, "Clears the video in queue on the video player", Color.red, Color.white); new QMSingleButton(this, 3, 2, "Speed up\nVideo on Player", delegate { var videoPlayers = Resources.FindObjectsOfTypeAll <VRCSDK2.VRC_SyncVideoPlayer>(); if (videoPlayers.Count() > 0) { Networking.RPC(RPC.Destination.Owner, videoPlayers[0].gameObject, "SpeedUp", new Il2CppSystem.Object[0]); } }, "Speeds up the current video on the video player", Color.red, Color.white); new QMSingleButton(this, 4, 2, "Slow down\nVideo on Player", delegate { var videoPlayers = Resources.FindObjectsOfTypeAll <VRCSDK2.VRC_SyncVideoPlayer>(); if (videoPlayers.Count() > 0) { Networking.RPC(RPC.Destination.Owner, videoPlayers[0].gameObject, "SpeedDown", new Il2CppSystem.Object[0]); } }, "Slows down the current video on the video player", Color.red, Color.white); new QMSingleButton(this, 4, 1, "Add\nVideo to Player", delegate { ConsoleUtil.Info("Enter URL: "); string url = Console.ReadLine(); var videoPlayers = Resources.FindObjectsOfTypeAll <VRCSDK2.VRC_SyncVideoPlayer>(); if (videoPlayers.Count() > 0) { Networking.RPC(RPC.Destination.Owner, videoPlayers[0].gameObject, "AddURL", new Il2CppSystem.Object[] { (Il2CppSystem.String)url }); } }, "Adds a video to the queue on the video player", Color.red, Color.white); }
public VRUtilsMenu(QMNestedButton parent, EthosVRButton config) : base(parent, config.X, config.Y, config.Name, config.Tooltip, GeneralUtils.GetColor(config.ColorScheme.Colors[0]), GeneralUtils.GetColor(config.ColorScheme.Colors[1]), GeneralUtils.GetColor(config.ColorScheme.Colors[2]), GeneralUtils.GetColor(config.ColorScheme.Colors[3])) { new AudioVRMenu(this); new ProgramVRMenu(this); }