using System.Numerics; using Newtonsoft.Json.Linq; using TMPro; using UnityEngine; using UnityEngine.Networking; using UnityEngine.UI; public class AccountRefreshLogin : MonoBehaviour { [SerializeField] private TMP_Text refreshLoginStatusText; [SerializeField] private TMP_InputField refreshLoginUsernameInput; [SerializeField] private TMP_InputField refreshLoginPasswordInput; [SerializeField] private Button refreshLoginBackButton; [SerializeField] private Button refreshLoginSubmitButton; void Awake() { refreshLoginUsernameInput.onSelect.AddListener((_) => refreshLoginUsernameInput.caretPosition = refreshLoginUsernameInput.text.Length); refreshLoginPasswordInput.onSelect.AddListener((_) => refreshLoginPasswordInput.caretPosition = refreshLoginPasswordInput.text.Length); refreshLoginBackButton.onClick.AddListener(() => AccountHandler.instance.SwitchPanel(0)); refreshLoginSubmitButton.onClick.AddListener(() => RefreshLogin()); } void OnEnable() { refreshLoginUsernameInput.text = ""; refreshLoginPasswordInput.text = ""; } async void RefreshLogin() { refreshLoginBackButton.interactable = false; refreshLoginSubmitButton.interactable = false; WWWForm dataForm = new(); dataForm.AddField("username", refreshLoginUsernameInput.text); dataForm.AddField("password", refreshLoginPasswordInput.text); using UnityWebRequest request = UnityWebRequest.Post(Endpoints.ACCOUNT_LOGIN_ENDPOINT, dataForm); request.SetRequestHeader("Requester", "BerryDashClient"); request.SetRequestHeader("ClientVersion", Application.version); request.SetRequestHeader("ClientPlatform", Application.platform.ToString()); await request.SendWebRequest(); if (request.downloadHandler.text == null) { refreshLoginBackButton.interactable = true; refreshLoginSubmitButton.interactable = true; Tools.UpdateStatusText(refreshLoginStatusText, "Failed to make HTTP request", Color.red); return; } var jsonResponse = JObject.Parse(request.downloadHandler.text); if ((bool)jsonResponse["success"]) { BazookaManager.Instance.SetAccountSession((string)jsonResponse["data"]["session"]); BazookaManager.Instance.SetAccountName((string)jsonResponse["data"]["username"]); BazookaManager.Instance.SetAccountID(BigInteger.Parse((string)jsonResponse["data"]["id"])); AccountHandler.instance.SwitchPanel(0); Tools.UpdateStatusText(refreshLoginStatusText, "", Color.red); } else { Tools.UpdateStatusText(refreshLoginStatusText, (string)jsonResponse["message"], Color.red); } refreshLoginBackButton.interactable = true; refreshLoginSubmitButton.interactable = true; } }