using Newtonsoft.Json.Linq; using TMPro; using UnityEngine; using UnityEngine.Networking; using UnityEngine.UI; public class IconMarketplaceDownloadIcon : MonoBehaviour { public IconMarketplaceManager marketplaceManager; public TMP_Text statusText; public Button backButton; public GameObject content; public GameObject sample; void Awake() { backButton.onClick.AddListener(() => marketplaceManager.SwitchPanel(0)); GetIcons(); } async void GetIcons() { foreach (Transform item in content.transform) { if (item.gameObject.activeSelf) { Destroy(item.gameObject); } } Tools.UpdateStatusText(statusText, "Loading...", Color.white); using UnityWebRequest request = UnityWebRequest.Get(SensitiveInfo.SERVER_DATABASE_PREFIX + "getMarketplaceIcons.php"); request.SetRequestHeader("Requester", "BerryDashClient"); request.SetRequestHeader("ClientVersion", Application.version); request.SetRequestHeader("ClientPlatform", Application.platform.ToString()); await request.SendWebRequest(); if (request.result != UnityWebRequest.Result.Success) { Tools.UpdateStatusText(statusText, "Failed to make HTTP request", Color.red); return; } string response = SensitiveInfo.Decrypt(request.downloadHandler.text, SensitiveInfo.SERVER_RECEIVE_TRANSFER_KEY); if (response == "-999") { Tools.UpdateStatusText(statusText, "Server error while fetching data", Color.red); return; } else if (response == "-998") { Tools.UpdateStatusText(statusText, "Client version too outdated to access servers", Color.red); return; } else if (response == "-997") { Tools.UpdateStatusText(statusText, "Encryption/decryption issues", Color.red); return; } else if (response == "-996") { Tools.UpdateStatusText(statusText, "Can't send requests on self-built instance", Color.red); return; } else { Tools.UpdateStatusText(statusText, "", Color.red); var jsonResponse = JArray.Parse(response); foreach (var item in jsonResponse) { JObject entry = (JObject)item; GameObject newIcon = Instantiate(sample, content.transform); Tools.RenderFromBase64(entry["data"].ToString(), newIcon.transform.GetChild(0).GetChild(0).GetComponent()); newIcon.transform.GetChild(1).GetComponent().text = "Bird Name: " + entry["name"].ToString(); newIcon.transform.GetChild(2).GetComponent().text = "Price " + entry["price"].ToString() + " coin"; newIcon.transform.GetChild(3).GetComponent().text = "Designer Name: " + entry["username"].ToString(); newIcon.transform.GetChild(4).GetChild(0).GetComponent().text = "Purchase"; newIcon.SetActive(true); } } } }