Example #1
0
    // 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);
    }
Example #2
0
 // 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);
     });
 }
Example #3
0
 // 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);
     }
 }
Example #4
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;
             }
         }
     }
 }
Example #5
0
 // 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);
 }
Example #6
0
    // 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);
    }
Example #7
0
    // 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);
    }
Example #8
0
    // 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);
        });
    }
Example #9
0
 static ApiWorld.WorldInstance.AccessType smethod_3(ApiWorld.WorldInstance worldInstance_0)
 {
     return(worldInstance_0.GetAccessType());
 }
Example #10
0
    // 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);
    }
Example #11
0
 // 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);
 }
Example #12
0
 // 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));
 }
Example #13
0
        // 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();
        }
Example #14
0
        // 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);
            }
        }