using Newtonsoft.Json.Linq; using TMPro; using UnityEngine; using UnityEngine.InputSystem; using UnityEngine.Networking; using UnityEngine.SceneManagement; using UnityEngine.UI; public class UserSearchMenu : MonoBehaviour { [SerializeField] private GameObject content; [SerializeField] private GameObject sampleObject; [SerializeField] private Button searchButton; [SerializeField] private TMP_InputField usernameInput; [SerializeField] private TMP_Text statusText; [SerializeField] private ProfileMenu profilePrefab; void Awake() { usernameInput.onSelect.AddListener((_) => usernameInput.caretPosition = usernameInput.text.Length); searchButton.onClick.AddListener(Search); Search(); } async void Search() { searchButton.interactable = false; foreach (Transform item in content.transform) if (item.gameObject.activeSelf) Destroy(item.gameObject); using UnityWebRequest request = UnityWebRequest.Get(Endpoints.BD_ACCOUNT_ENDPOINT + "?username=" + usernameInput.text); request.SetRequestHeader("Requester", "BerryDashClient"); request.SetRequestHeader("ClientVersion", Application.version); request.SetRequestHeader("ClientPlatform", Application.platform.ToString()); await request.SendWebRequest(); if (request.downloadHandler.text == null) { searchButton.interactable = true; UpdateStatus(true, "Failed to get a list of users"); return; } UpdateStatus(false); var jsonResponse = JObject.Parse(request.downloadHandler.text); if ((bool)jsonResponse["success"]) { foreach (var entry in jsonResponse["data"].ToObject()) { if (entry.UserID == BazookaManager.Instance.GetAccountID()) continue; var entryInfo = Instantiate(sampleObject, content.transform); var playerIcon = entryInfo.transform.GetChild(0).GetComponent(); var playerOverlay = playerIcon.transform.GetChild(0).GetComponent(); var usernameText = entryInfo.transform.GetChild(1).GetComponent(); var playerIconButton = playerIcon.GetComponent