/// <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); } }
/// <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); }