// Token: 0x060061C9 RID: 25033 RVA: 0x00227FC8 File Offset: 0x002263C8 protected override void SetPickerContentFromApiModel(VRCUiContentButton content, object am) { ApiWorld.WorldInstance wi = (ApiWorld.WorldInstance)am; string detail = (wi.count <= 0) ? string.Empty : wi.count.ToString(); ApiWorld.WorldInstance.AccessType accessType = wi.GetAccessType(); ApiWorld.WorldInstance.AccessDetail accessDetail = ApiWorld.WorldInstance.GetAccessDetail(accessType); Action action = null; if (accessType == ApiWorld.WorldInstance.AccessType.PrivatePopCounter) { content.EnableDetail(0, false); content.SetDetailShouldShowImage(1, false); content.EnableDetail(2, false); content.EnableDetail(4, true); content.SetDetailText(5, detail); } else { content.EnableDetail(0, true); content.SetDetailText(0, detail); content.SetDetailShouldShowImage(1, true); if (wi.count >= this.world.capacity) { } content.EnableDetail(2, true); content.SetDetailText(3, "#" + wi.idOnly + " " + accessDetail.shortName); content.EnableDetail(4, false); action = delegate { this.ShowWorldInstanceDetails(this.world, wi); }; } content.Initialize(this.world.thumbnailImageUrl, this.world.name, action, this.world.id); }
// Token: 0x06005937 RID: 22839 RVA: 0x001EF820 File Offset: 0x001EDC20 private void FetchWorldFromId(Action <ApiWorld, ApiWorld.WorldInstance> onSuccess = null) { if (string.IsNullOrEmpty(this.RoomId)) { return; } ApiWorld.Fetch(this.RoomId, delegate(ApiWorld world) { if (this.isShutdown) { Debug.Log(this.name + " was shutdown, ignoring query."); return; } if (world == null) { Debug.LogError(this.name + " received a null query response."); return; } ApiWorld.WorldInstance arg = this.ConfigurePortal(world); if (onSuccess != null) { onSuccess(world, arg); } }, delegate(string msg) { this.isValidWorld = false; Debug.LogWarning(msg); }); }
// Token: 0x060061C8 RID: 25032 RVA: 0x00227E20 File Offset: 0x00226220 protected override void FetchAndRenderElements(int page) { if (this.world != null) { int num = 0; List <ApiWorld.WorldInstance> list = new List <ApiWorld.WorldInstance>(); PageWorldInfo info = base.gameObject.GetComponentInParent <PageWorldInfo>(); List <ApiWorld.WorldInstance> collection = new List <ApiWorld.WorldInstance>(this.world.worldInstances); list.AddRange(collection); list.RemoveAll((ApiWorld.WorldInstance i) => i.GetAccessType() == ApiWorld.WorldInstance.AccessType.FriendsOfGuests && i.GetInstanceCreator() != APIUser.CurrentUser.id); if (RoomManager.inRoom && RoomManager.currentRoom.id == this.world.id && RoomManager.currentOwnerId != APIUser.CurrentUser.id) { int count = PlayerManager.GetAllPlayers().Length; ApiWorld.WorldInstance worldInstance = new ApiWorld.WorldInstance(RoomManager.currentRoom.currentInstanceIdWithTags, count); ApiWorld.WorldInstance.AccessType accessType = worldInstance.GetAccessType(); if (accessType == ApiWorld.WorldInstance.AccessType.InviteOnly || accessType == ApiWorld.WorldInstance.AccessType.FriendsOfGuests) { list.Add(worldInstance); } } num += list.Sum((ApiWorld.WorldInstance wInst) => wInst.count); if (info != null) { list.RemoveAll((ApiWorld.WorldInstance i) => i.idWithTags == info.worldInstance.idWithTags); } int num2 = this.world.occupants - num; if (num2 > 0) { list.RemoveAll((ApiWorld.WorldInstance i) => i.GetAccessType() == ApiWorld.WorldInstance.AccessType.PrivatePopCounter); ApiWorld.WorldInstance item = new ApiWorld.WorldInstance("0" + ApiWorld.WorldInstance.BuildAccessTags(ApiWorld.WorldInstance.AccessType.PrivatePopCounter, string.Empty), num2); list.Add(item); } base.RenderElements <ApiWorld.WorldInstance>(list, 0); } }
// Token: 0x06005938 RID: 22840 RVA: 0x001EF878 File Offset: 0x001EDC78 private void SetupPortalName(string name, ApiWorld.WorldInstance winst, ApiWorld world, string creator) { if (this.portalMarker != null) { this.portalMarker.roomName = name; } if (!string.IsNullOrEmpty(name) && winst != null && base.transform != null) { string text = name; if (world.capacity > 1) { text = text + " #" + winst.idOnly; } if (!string.IsNullOrEmpty(creator)) { text = text + "\n" + creator; } ApiWorld.WorldInstance.AccessType accessType = winst.GetAccessType(); ApiWorld.WorldInstance.AccessDetail accessDetail = ApiWorld.WorldInstance.GetAccessDetail(accessType); text = text + "\n" + accessDetail.shortName; Transform transform = base.transform.Find("NameTag/TextMesh"); if (transform != null) { TextMeshPro component = transform.GetComponent <TextMeshPro>(); if (component != null) { component.text = text; } } } }
// Token: 0x06005936 RID: 22838 RVA: 0x001EF7B4 File Offset: 0x001EDBB4 private void FetchWorldFromApiQuery(Action <ApiWorld, ApiWorld.WorldInstance> onSuccess = null) { ApiWorld.FetchList(delegate(List <ApiWorld> worlds) { if (this.isShutdown) { Debug.Log(this.name + " was shutdown, ignoring query."); return; } worlds = (from w in worlds where w != null && w.releaseStatus == "public" select w).ToList <ApiWorld>(); if (worlds.Count > 0) { ApiWorld.WorldInstance arg = this.ConfigurePortal(worlds[0]); if (onSuccess != null) { onSuccess(worlds[0], arg); } } else { Debug.LogError("No worlds found in query for " + this.name); } }, delegate(string msg) { this.isValidWorld = false; Debug.LogWarning(msg); }, this.SortHeading, ApiWorld.SortOwnership.Any, this.SortOrder, this.Offset, 1, this.SearchTerm, null, UiWorldList.BuildExcludedTags(this.SortHeading, ApiWorld.SortOwnership.Any), string.Empty, ApiWorld.ReleaseStatus.Public, true); }
// Token: 0x060061CA RID: 25034 RVA: 0x00228114 File Offset: 0x00226514 public void ShowWorldInstanceDetails(ApiWorld w, ApiWorld.WorldInstance instance) { VRCUiPage page = VRCUiManager.Instance.GetPage("UserInterface/MenuContent/Screens/WorldInfo"); VRCUiManager.Instance.ShowScreen(page); PageWorldInfo component = page.GetComponent <PageWorldInfo>(); component.SetupWorldInfo(this.world, instance, false, component.openedFromPortal); }
// Token: 0x06005943 RID: 22851 RVA: 0x001EFAF0 File Offset: 0x001EDEF0 private ApiWorld.WorldInstance ConfigurePortal(ApiWorld world) { this.portalTrigger = base.gameObject.GetOrAddComponent <PortalTrigger>(); this.portalTrigger.effectPrefabName = "PortalExitEffect"; this.isValidWorld = true; string name = (!(this.portalMarker != null) || string.IsNullOrEmpty(this.portalMarker.customPortalName)) ? world.name : this.portalMarker.customPortalName; this.DownloadWorldImage(world.imageUrl); BoxCollider orAddComponent = base.gameObject.GetOrAddComponent <BoxCollider>(); orAddComponent.center = new Vector3(0f, 1f, 0f); orAddComponent.size = new Vector3(1f, 2f, 1f); orAddComponent.isTrigger = true; ApiWorld.WorldInstance worldInstance = (!this.Dynamic) ? world.GetBestInstance(null, ModerationManager.Instance.IsBannedFromPublicOnly(APIUser.CurrentUser.id)) : new ApiWorld.WorldInstance(this.worldInstanceId, 0); this.worldInstanceId = worldInstance.idWithTags; VRC.Player player = null; if (this.Dynamic) { player = VRC.Network.GetPlayerByInstigatorID(this.CreatorId); if (player != null) { Vector3 position = player.transform.position; position.y = 0f; Vector3 position2 = base.transform.position; position2.y = 0f; Vector3 a = position2 - position; base.transform.rotation = Quaternion.LookRotation(-a, Vector3.up); } if (base.transform.Find("Timer") != null) { base.transform.Find("Timer").gameObject.SetActive(true); } if (base.transform.Find("Timer/TextMesh") != null) { this.timerText = base.transform.Find("Timer/TextMesh").GetComponent <TextMeshPro>(); } if (base.transform.Find("PlayerCount") != null) { this.playerCountObj = base.transform.Find("PlayerCount").gameObject; this.playerCountObj.SetActive(true); } if (base.transform.Find("PlayerCount/TextMesh")) { this.playerCountText = base.transform.Find("PlayerCount/TextMesh").GetComponent <TextMeshPro>(); } RoomManager.PortalCreated(this); } this.SetupPortalName(name, worldInstance, world, (!(player == null)) ? player.name : string.Empty); this.apiWorld = world; return(worldInstance); }
// Token: 0x060061D3 RID: 25043 RVA: 0x002283E8 File Offset: 0x002267E8 public void ShowRoomDetails(ApiWorld w) { VRCUiPage page = VRCUiManager.Instance.GetPage("UserInterface/MenuContent/Screens/WorldInfo"); VRCUiManager.Instance.ShowScreen(page); PageWorldInfo info = page.GetComponent <PageWorldInfo>(); ApiWorld.WorldInstance winst = null; if (RoomManager.currentRoom != null && RoomManager.currentRoom.id == w.id) { int count = PlayerManager.GetAllPlayers().Length; winst = new ApiWorld.WorldInstance(RoomManager.currentRoom.currentInstanceIdWithTags, count); } info.SetupWorldInfo(w, winst, false, false); ApiWorld.Fetch(w.id, delegate(ApiWorld world) { info.SetupWorldInfo(world, winst, false, false); }, delegate(string error) { Debug.LogWarning("Could not join room: " + w.name); }); }
static ApiWorld.WorldInstance.AccessType smethod_3(ApiWorld.WorldInstance worldInstance_0) { return(worldInstance_0.GetAccessType()); }
// Token: 0x0600592E RID: 22830 RVA: 0x001EF104 File Offset: 0x001ED504 public static bool CreatePortal(ApiWorld targetWorld, ApiWorld.WorldInstance targetInstance, Vector3 position, Vector3 forward, bool withUIErrors = false) { if (Time.time - PortalInternal.lastInstantiation <= Time.fixedDeltaTime) { return(false); } PortalInternal.lastInstantiation = Time.time; if (RoomManager.IsLockdown()) { if (withUIErrors) { VRCUiPopupManager.Instance.ShowAlert("Cannot Create Portal", "Room is in lockdown.", 10f); } return(false); } if (RoomManager.IsUserPortalForbidden()) { if (withUIErrors) { VRCUiPopupManager.Instance.ShowAlert("Cannot Create Portal", "User portals are forbidden in this world.", 10f); } return(false); } if (SpawnManager.Instance.IsCloseToSpawn(position, 3f)) { if (withUIErrors) { VRCUiPopupManager.Instance.ShowAlert("Cannot Create Portal", "Portal too close to spawn.", 10f); } return(false); } position = position + forward * 2f + Vector3.up * 1f; if (PlayerManager.GetAllPlayersWithinRange(position, 1.75f).Count > 0) { if (withUIErrors) { VRCUiPopupManager.Instance.ShowAlert("Cannot Create Portal", "Portal too close to a player.", 10f); } return(false); } RaycastHit raycastHit; if (!Physics.Raycast(position, -Vector3.up, out raycastHit, 2f)) { if (withUIErrors) { VRCUiPopupManager.Instance.ShowAlert("Cannot Create Portal", "Could not find surface on which to place it.", 10f); } return(false); } if (ModerationManager.Instance.IsPublicOnlyBannedFromWorld(APIUser.CurrentUser.id, targetWorld.id, targetInstance.idWithTags)) { if (withUIErrors) { VRCUiPopupManager.Instance.ShowAlert("Cannot Create Portal", ModerationManager.Instance.GetPublicOnlyBannedUserMessage(), 10f); } return(false); } if (targetWorld.tags.Contains("admin_dont_allow_portals")) { if (withUIErrors) { VRCUiPopupManager.Instance.ShowAlert("Cannot Create Portal", "Creating portals to this world is not allowed.", 10f); } return(false); } GameObject targetObject = VRC.Network.Instantiate(VRC_EventHandler.VrcBroadcastType.Always, "PortalInternalDynamic", position + Vector3.down, Quaternion.FromToRotation(Vector3.forward, forward)); VRC.Network.RPC(VRC_EventHandler.VrcTargetType.AllBufferOne, targetObject, "ConfigurePortal", new object[] { targetWorld.id, targetInstance.idWithTags, targetInstance.count }); return(true); }
// Token: 0x0600549D RID: 21661 RVA: 0x001D3148 File Offset: 0x001D1548 public static bool EnterWorld(ApiWorld world, string instanceId = "") { Debug.Log("Entering Room: " + world.name); if (VRCFlowNetworkManager.Instance == null || !VRCFlowNetworkManager.Instance.isConnected || !RoomManager.enterRoomReady) { string message = "Cannot join room. Connection not ready for join operations"; UserMessage.SetMessage(message); Debug.LogError(message); return(false); } try { RoomManager.LockdownOverride = false; Analytics.Send(ApiAnalyticEvent.EventType.joinsWorld, world.id, null, null); ExitGames.Client.Photon.Hashtable hashtable = new ExitGames.Client.Photon.Hashtable(); hashtable["scene"] = "Custom"; hashtable["url"] = world.assetUrl; hashtable["name"] = world.name; hashtable["blueprint"] = world; string[] customRoomPropertiesForLobby = new string[] { "scene", "url", "name" }; RoomOptions roomOptions = new RoomOptions(); roomOptions.IsOpen = true; roomOptions.IsVisible = true; roomOptions.MaxPlayers = (byte)((world.capacity * 2 >= 255) ? 255 : (world.capacity * 2)); roomOptions.CustomRoomProperties = hashtable; roomOptions.CustomRoomPropertiesForLobby = customRoomPropertiesForLobby; List <string> list = (from m in ModerationManager.Instance.GetModerationsOfType(ApiModeration.ModerationType.Kick) where m.worldId == world.id select m.instanceId).ToList <string>(); if (world.capacity == 1) { instanceId = User.CurrentUser.id + ((!ModerationManager.Instance.IsBannedFromPublicOnly(APIUser.CurrentUser.id)) ? string.Empty : ApiWorld.WorldInstance.BuildAccessTags(ApiWorld.WorldInstance.AccessType.FriendsOnly, APIUser.CurrentUser.id)); } else if (string.IsNullOrEmpty(instanceId) || list.Contains(instanceId)) { instanceId = world.GetBestInstance(list, ModerationManager.Instance.IsBannedFromPublicOnly(APIUser.CurrentUser.id)).idWithTags; } string text = world.id + ":" + instanceId; Debug.Log("Joining " + text); Debug.Log("Joining or Creating Room: " + world.name); bool flag = PhotonNetwork.JoinOrCreateRoom(text, roomOptions, TypedLobby.Default); if (!flag) { RoomManager.currentRoom = null; RoomManager.ClearMetadata(); throw new Exception("JoinOrCreateRoom failed!"); } RoomManager.currentRoom = world; RoomManager.currentRoom.currentInstanceIdWithTags = instanceId; ApiWorld.WorldInstance worldInstance = new ApiWorld.WorldInstance(instanceId, 0); RoomManager.currentRoom.currentInstanceIdOnly = worldInstance.idOnly; RoomManager.currentRoom.currentInstanceAccess = worldInstance.GetAccessType(); Debug.Log("Successfully joined room"); RoomManager.lastMetadataFetchMinute = -1; } catch (Exception ex) { Debug.LogError("Something went entering room:\n" + ex.ToString() + "\n" + ex.StackTrace); return(false); } return(true); }
// Token: 0x0600603E RID: 24638 RVA: 0x0021E378 File Offset: 0x0021C778 private bool CanInviteHere() { ApiWorld.WorldInstance worldInstance = new ApiWorld.WorldInstance(RoomManager.currentRoom.currentInstanceIdWithTags, 0); ApiWorld.WorldInstance.AccessType accessType = worldInstance.GetAccessType(); return(this.isModerator || this.isInstanceOwner || (accessType == ApiWorld.WorldInstance.AccessType.Public || accessType == ApiWorld.WorldInstance.AccessType.FriendsOfGuests)); }
// Token: 0x0600603A RID: 24634 RVA: 0x0021DD74 File Offset: 0x0021C174 public void SetupUserInfo(APIUser u, PageUserInfo.InfoType infoType, UiUserList.ListType listType = UiUserList.ListType.None) { this.SetUserRelationshipState(infoType); this.ClearRoomInfo(); this.user = u; this.userName.text = this.user.displayName; if (!string.IsNullOrEmpty(this.user.currentAvatarImageUrl)) { Downloader.DownloadImage(this.user.currentAvatarImageUrl, delegate(string downloadedUrl, Texture2D obj) { this.avatarImage.texture = obj; }, string.Empty); } this.SetupModButtons(); this.onlineStatusText.text = string.Empty; switch (this.state) { case PageUserInfo.InfoType.NotFriends: { this.worldImage.transform.parent.gameObject.SetActive(true); Player player = PlayerManager.GetPlayer(this.user.id); bool flag = player != null && player.vrcPlayer != null && player.vrcPlayer.isInvisible; if (listType == UiUserList.ListType.InWorld && !flag) { if (RoomManager.currentRoom != null && !string.IsNullOrEmpty(RoomManager.currentRoom.imageUrl)) { this.DownloadAndSetWorldImage(RoomManager.currentRoom.imageUrl); } this.onlineStatusText.text = "online in current world"; } this.SetupFriendButton("Friend"); break; } case PageUserInfo.InfoType.OnlineFriend: this.worldImage.transform.parent.gameObject.SetActive(true); this.worldList.ownerId = this.user.id; this.worldScroller.SetActive(true); this.SetIcon(QuickMenuSocialElement.IconType.Friend, u.id); this.SetupJoinButton("Join", false); this.SetupInviteButton("Invite", false); if (listType == UiUserList.ListType.InWorld) { if (RoomManager.currentRoom != null && !string.IsNullOrEmpty(RoomManager.currentRoom.imageUrl)) { this.DownloadAndSetWorldImage(RoomManager.currentRoom.imageUrl); } this.onlineStatusText.text = "online in current world"; } else if (!string.IsNullOrEmpty(this.user.location)) { string text = this.user.location.Split(new char[] { ':' })[0]; string instanceId = this.user.location.Split(new char[] { ':' })[1]; if (text == "local") { this.onlineStatusText.text = "online in local test world"; } else { ApiWorld.Fetch(text, delegate(ApiWorld world) { ApiWorld.WorldInstance worldInstance = new ApiWorld.WorldInstance(instanceId, 0); bool flag2 = APIUser.CurrentUser.id == worldInstance.GetInstanceCreator(); ApiWorld.WorldInstance.AccessType accessType = worldInstance.GetAccessType(); ApiWorld.WorldInstance.AccessDetail accessDetail = ApiWorld.WorldInstance.GetAccessDetail(accessType); if (accessType == ApiWorld.WorldInstance.AccessType.Public) { this.DownloadAndSetWorldImage(world.imageUrl); this.userLocation = world; if (world.id == RoomManager.currentRoom.id && worldInstance.idWithTags == RoomManager.currentRoom.currentInstanceIdWithTags) { this.onlineStatusText.text = "online in same world"; } else { this.onlineStatusText.text = string.Concat(new string[] { "online in ", world.name, "\n<i>", accessDetail.fullName.ToLower(), "</i>" }); this.SetupJoinButton("Join", true); this.SetupInviteButton("Invite", this.CanInviteHere()); } } else if (accessType == ApiWorld.WorldInstance.AccessType.FriendsOfGuests) { this.DownloadAndSetWorldImage(world.imageUrl); this.userLocation = world; if (world.id == RoomManager.currentRoom.id && worldInstance.idWithTags == RoomManager.currentRoom.currentInstanceIdWithTags) { this.onlineStatusText.text = "online in same world"; } else { this.onlineStatusText.text = string.Concat(new string[] { "online in ", world.name, "\n<i>", accessDetail.fullName.ToLower(), "</i>" }); this.SetupJoinButton("Join", true); this.SetupInviteButton("Invite", this.CanInviteHere()); } } else if (accessType == ApiWorld.WorldInstance.AccessType.FriendsOnly) { this.DownloadAndSetWorldImage(world.imageUrl); this.userLocation = world; if (world.id == RoomManager.currentRoom.id && worldInstance.idWithTags == RoomManager.currentRoom.currentInstanceIdWithTags) { this.onlineStatusText.text = "online in same world"; } else { this.onlineStatusText.text = string.Concat(new string[] { "online in ", world.name, "\n<i>", accessDetail.fullName.ToLower(), "</i>" }); this.SetupJoinButton("Join", flag2 || this.user.id == worldInstance.GetInstanceCreator()); this.SetupInviteButton("Invite", this.CanInviteHere()); } } else if (accessType == ApiWorld.WorldInstance.AccessType.InviteOnly) { if (flag2) { this.DownloadAndSetWorldImage(world.imageUrl); this.userLocation = world; } else { this.worldImage.texture = this.avatarImage.texture; this.userLocation = null; } if (world.id == RoomManager.currentRoom.id && worldInstance.idWithTags == RoomManager.currentRoom.currentInstanceIdWithTags) { this.onlineStatusText.text = "online in same world"; } else { this.onlineStatusText.text = "online in " + accessDetail.fullName.ToLower() + " world"; if (flag2) { this.SetupJoinButton("Join", true); } else { this.SetupJoinButton("Req Invite", this.user.id == worldInstance.GetInstanceCreator()); } this.SetupInviteButton("Invite", this.CanInviteHere()); } } }, delegate(string obj) { Debug.LogError(obj); }); } } break; case PageUserInfo.InfoType.OfflineFriend: this.onlineStatusText.text = "offline"; this.worldList.ownerId = this.user.id; this.worldScroller.SetActive(true); this.SetIcon(QuickMenuSocialElement.IconType.Friend, u.id); break; case PageUserInfo.InfoType.ReceivedFriendRequest: this.notificationMessageText.text = this.user.displayName + " wants to be your friend"; this.SetIcon(QuickMenuSocialElement.IconType.FriendRequest, u.id); break; case PageUserInfo.InfoType.ReceivedHelpRequest: this.notificationMessageText.text = this.user.displayName + " needs help"; this.SetIcon(QuickMenuSocialElement.IconType.HelpRequest, u.id); break; } this.SetupBlockButton(); this.SetupVoteToKickButton(); this.SetupMuteButton(); }
// Token: 0x06006074 RID: 24692 RVA: 0x0021F7B8 File Offset: 0x0021DBB8 public void SetupWorldInfo(ApiWorld world, ApiWorld.WorldInstance instance = null, bool newInstance = false, bool isPortal = false) { if (instance == null) { instance = world.GetBestInstance(null, false); } this.mWorld = world; this.worldInstance = instance; this.openedFromPortal = isPortal; ApiWorld.WorldInstance.AccessType accessType = this.worldInstance.GetAccessType(); ApiWorld.WorldInstance.AccessDetail accessDetail = ApiWorld.WorldInstance.GetAccessDetail(accessType); string str = string.Empty; this.roomName.text = world.name; string instanceCreator = this.worldInstance.GetInstanceCreator(); str = accessDetail.shortName; this.instanceStatus.text = accessDetail.fullName; if (accessType == ApiWorld.WorldInstance.AccessType.Public) { this.roomAuthor.text = world.authorName; this.roomOwner.text = world.authorName; } else if (accessType == ApiWorld.WorldInstance.AccessType.InviteOnly || accessType == ApiWorld.WorldInstance.AccessType.FriendsOnly || accessType == ApiWorld.WorldInstance.AccessType.FriendsOfGuests) { this.roomAuthor.text = world.authorName; this.roomOwner.text = "(loading...)"; APIUser.Fetch(instanceCreator, delegate(APIUser user) { this.roomOwner.text = user.displayName; }, null); } this.playerCount.text = this.worldInstance.count.ToString(); this.maxPlayers.text = world.capacity.ToString(); this.worldInstanceId.text = "#" + this.worldInstance.idOnly + " " + str; Downloader.DownloadImage(world.imageUrl, delegate(string downloadedUrl, Texture2D obj) { this.roomImage.texture = obj; }, string.Empty); this.isPortalMenu = isPortal; this.ConfigureJoinButton(instance.count >= world.capacity, instance.isPublic); this.ConfigurePortalButton(accessType, instanceCreator == APIUser.CurrentUser.id, instance.count >= world.capacity, instance.isPublic); if (isPortal) { this.backButton.GetComponentInChildren <Text>().text = "Exit"; this.backButton.onClick.AddListener(new UnityAction(this.Respawn)); VRCUiManager.Instance.ShowScreen("UserInterface/MenuContent/Backdrop/Backdrop"); VRCUiManager.Instance.HideScreen("HEADER"); QuickMenu.Instance.CanExitWithButton = false; } else { this.backButton.onClick.AddListener(new UnityAction(this.BackToWorlds)); this.backButton.GetComponentInChildren <Text>().text = "Back"; } if (this.il != null) { this.il.world = world; this.il.Refresh(); } if (world.releaseStatus == "public" || world.authorId == APIUser.CurrentUser.id) { this.newInstanceButton.interactable = true; } if (instance.count >= world.capacity) { this.playerCount.text = "Full"; } this.SetCurrentInstanceMessage(string.Empty, false); if (RoomManager.inRoom) { ApiWorld currentRoom = RoomManager.currentRoom; if (currentRoom.id == world.id && currentRoom.currentInstanceIdWithTags == this.worldInstance.idWithTags) { this.SetCurrentInstanceMessage("You are here", true); } } if (newInstance) { this.SetCurrentInstanceMessage("NEW INSTANCE", true); } }