Exemple #1
0
        /// <summary>
        /// Sets the value of <see cref="MyClan"/>.
        /// If <paramref name="userClan"/> is null, disable option to see <see cref="_detailsTab"/> of my clan.
        /// </summary>
        private void RefreshUI(ClanMenuUIState state)
        {
            _clanDisplayName.text = state.UserClan?.Name ?? state.DisplayedClan?.Name ?? "No Clan Selected";

            if (state.SubMenu == ClanSubMenu.Search)
            {
                ShowSubMenu(_searchTab);
                HideSubMenu(_detailsTab);

                _joinClanButton.gameObject.SetActive(true);
                _leaveClanButton.gameObject.SetActive(false);
                _removeClanButton.gameObject.SetActive(false);
                _chatButton.gameObject.SetActive(false);
            }
            else
            {
                ShowSubMenu(_detailsTab);
                HideSubMenu(_searchTab);

                _joinClanButton.gameObject.SetActive(state.UserClan == null && state.DisplayedClan != null);
                _leaveClanButton.gameObject.SetActive(state.UserClan != null);
                // allow if superadmin
                _removeClanButton.gameObject.SetActive(state.UserClan != null && state.UserClanRank == 0);
                _chatButton.gameObject.SetActive(state.UserClan != null);
            }
        }
Exemple #2
0
        /// <summary>
        ///  Shows clan chat panel if possible.
        /// </summary>
        private async void StartChat(ClanMenuUIState state)
        {
            IChannel channel;

            try
            {
                channel = await _connection.Socket.JoinChatAsync(state.UserClan.Id, ChannelType.Group, persistence : true, hidden : true);
            }
            catch (ApiResponseException e)
            {
                Debug.LogWarning("Couldn't join chat " + e.Message);
                return;
            }

            _chatChannelClanUI.SetChatChannel(channel);
            _chatChannelClanUI.gameObject.SetActive(true);
        }