using System; using System.Collections; using System.Collections.Generic; using ExitGames.Client.Photon.StructWrapping; using Photon.Pun; using TMPro; using UnityEngine; using UnityEngine.UI; public class FriendsManager : MonoBehaviour { CanvasGroup canvasGroup; [SerializeField]private GameObject mainPanel; [SerializeField]private GameObject AddFriendPanel; [Header("Friend list")] [SerializeField]private GameObject FriendReqListItemPrefab; [SerializeField]private GameObject FriendListItemPrefab; [SerializeField]private GameObject SeperatorListItemPrefab; [SerializeField]private Transform FriendsListParent; [SerializeField]private Button ToggleRequestsButton; [Header("Add Friend")] [SerializeField]private TMP_InputField AddFriendUsernameInput; [SerializeField]private TMP_Text AddFriendErrorTxt; [SerializeField]private Button AddFriendBtn; public static FriendsManager instance; void Awake(){ instance = this; canvasGroup = GetComponent(); AddFriendBtn.onClick.AddListener(AddFriend); ToggleRequestsButton.onClick.AddListener(ToggleRequests); Hide(); } public bool showRequests => ToggleRequestsButton.GetComponentInChildren().text == "Hide Requests"; void ToggleRequests(){ if(showRequests){ ToggleRequestsButton.GetComponentInChildren().text = "Show Requests"; }else{ ToggleRequestsButton.GetComponentInChildren().text = "Hide Requests"; } PopulateFriendList(); } void Start(){ UserDataManager.instance.OnFriendsUpdated = PopulateFriendList; } public void AddFriend(){ if(AddFriendUsernameInput.text.Length <= 0){ AddFriendErrorTxt.text = "Please enter a valid username"; return; } StartCoroutine(CoroutineAddFriend(AddFriendUsernameInput.text)); AddFriendUsernameInput.text = ""; } public void OnPlayersChanged(){ PopulateFriendList(); } void PopulateFriendList(){ foreach(Photon.Realtime.Player player in PhotonNetwork.PlayerList){ Debug.Log(player.NickName); } foreach(Transform t in FriendsListParent.GetComponentsInChildren()){ if(t== FriendsListParent){continue;} Destroy(t.gameObject); } if(showRequests){ for(int i=0; i < UserDataManager.instance.FriendRequests.Count; i++){ Friendship friendship = UserDataManager.instance.FriendRequests[i]; if(friendship.provider_username == UserDataManager.instance.Username){continue;} GameObject newFriendReqListItem = Instantiate(FriendReqListItemPrefab, FriendsListParent); newFriendReqListItem.GetComponentInChildren().text = friendship.provider_username; newFriendReqListItem.transform.GetChild(1).GetComponent