150 lines
7.1 KiB
C#
150 lines
7.1 KiB
C#
using System;
|
|
using System.Text;
|
|
using Newtonsoft.Json;
|
|
using Newtonsoft.Json.Linq;
|
|
using TMPro;
|
|
using UnityEngine;
|
|
using UnityEngine.Networking;
|
|
using UnityEngine.UI;
|
|
|
|
public class AccountLoggedIn : MonoBehaviour
|
|
{
|
|
public TMP_Text loggedInText;
|
|
[SerializeField] private AccountLoggedOut accountLoggedOut;
|
|
[SerializeField] private Button loggedInChangeUsernameButton;
|
|
[SerializeField] private Button loggedInChangePasswordButton;
|
|
[SerializeField] private Button loggedInSaveButton;
|
|
[SerializeField] private Button loggedInLoadButton;
|
|
[SerializeField] private Button loggedInRefreshLoginButton;
|
|
[SerializeField] private Button loggedInLogoutButton;
|
|
[SerializeField] private Button loggedInBackButton;
|
|
|
|
void Awake()
|
|
{
|
|
loggedInChangeUsernameButton.onClick.AddListener(() => AccountHandler.instance.SwitchPanel(4));
|
|
loggedInChangePasswordButton.onClick.AddListener(() => AccountHandler.instance.SwitchPanel(5));
|
|
loggedInSaveButton.onClick.AddListener(() => SaveAccount());
|
|
loggedInLoadButton.onClick.AddListener(() => LoadAccount());
|
|
loggedInRefreshLoginButton.onClick.AddListener(() => AccountHandler.instance.SwitchPanel(6));
|
|
loggedInLogoutButton.onClick.AddListener(() =>
|
|
{
|
|
BazookaManager.Instance.ResetSave();
|
|
AccountHandler.instance.SwitchPanel(1);
|
|
});
|
|
}
|
|
|
|
void OnEnable()
|
|
{
|
|
loggedInSaveButton.interactable = true;
|
|
loggedInLoadButton.interactable = true;
|
|
var textColor = BazookaManager.Instance.GetColorSettingText();
|
|
Tools.UpdateStatusText(loggedInText, "Logged in as: " + BazookaManager.Instance.GetAccountName(), new Color(int.Parse(textColor[0].ToString()) / 255f, int.Parse(textColor[1].ToString()) / 255f, int.Parse(textColor[2].ToString()) / 255f));
|
|
}
|
|
|
|
async void SaveAccount()
|
|
{
|
|
loggedInChangeUsernameButton.interactable = false;
|
|
loggedInChangePasswordButton.interactable = false;
|
|
loggedInSaveButton.interactable = false;
|
|
loggedInLoadButton.interactable = false;
|
|
loggedInRefreshLoginButton.interactable = false;
|
|
loggedInLogoutButton.interactable = false;
|
|
loggedInBackButton.interactable = false;
|
|
WWWForm dataForm = new();
|
|
dataForm.AddField("saveData", Convert.ToBase64String(Encoding.UTF8.GetBytes(BazookaManager.Instance.saveFile.ToString(Formatting.None))));
|
|
using UnityWebRequest request = UnityWebRequest.Post(Endpoints.ACCOUNT_SAVE_ENDPOINT, dataForm);
|
|
request.SetRequestHeader("Authorization", BazookaManager.Instance.GetAccountSession());
|
|
request.SetRequestHeader("Requester", "BerryDashClient");
|
|
request.SetRequestHeader("ClientVersion", Application.version);
|
|
request.SetRequestHeader("ClientPlatform", Application.platform.ToString());
|
|
await request.SendWebRequest();
|
|
if (request.downloadHandler.text == null)
|
|
{
|
|
loggedInChangeUsernameButton.interactable = true;
|
|
loggedInChangePasswordButton.interactable = true;
|
|
loggedInSaveButton.interactable = true;
|
|
loggedInLoadButton.interactable = true;
|
|
loggedInRefreshLoginButton.interactable = true;
|
|
loggedInLogoutButton.interactable = true;
|
|
loggedInBackButton.interactable = true;
|
|
Tools.UpdateStatusText(loggedInText, "Failed to make HTTP request", Color.red);
|
|
return;
|
|
}
|
|
var jsonResponse = JObject.Parse(request.downloadHandler.text);
|
|
if ((bool)jsonResponse["success"])
|
|
{
|
|
Tools.UpdateStatusText(loggedInText, "Synced account", Color.green);
|
|
}
|
|
else
|
|
{
|
|
Tools.UpdateStatusText(loggedInText, (string)jsonResponse["message"], Color.red);
|
|
}
|
|
loggedInChangeUsernameButton.interactable = true;
|
|
loggedInChangePasswordButton.interactable = true;
|
|
loggedInSaveButton.interactable = true;
|
|
loggedInLoadButton.interactable = true;
|
|
loggedInRefreshLoginButton.interactable = true;
|
|
loggedInLogoutButton.interactable = true;
|
|
loggedInBackButton.interactable = true;
|
|
}
|
|
|
|
async void LoadAccount()
|
|
{
|
|
loggedInChangeUsernameButton.interactable = false;
|
|
loggedInChangePasswordButton.interactable = false;
|
|
loggedInSaveButton.interactable = false;
|
|
loggedInLoadButton.interactable = false;
|
|
loggedInRefreshLoginButton.interactable = false;
|
|
loggedInLogoutButton.interactable = false;
|
|
loggedInBackButton.interactable = false;
|
|
using UnityWebRequest request = UnityWebRequest.Get(Endpoints.ACCOUNT_SAVE_ENDPOINT);
|
|
request.SetRequestHeader("Authorization", BazookaManager.Instance.GetAccountSession());
|
|
request.SetRequestHeader("Requester", "BerryDashClient");
|
|
request.SetRequestHeader("ClientVersion", Application.version);
|
|
request.SetRequestHeader("ClientPlatform", Application.platform.ToString());
|
|
await request.SendWebRequest();
|
|
if (request.downloadHandler.text == null)
|
|
{
|
|
loggedInChangeUsernameButton.interactable = true;
|
|
loggedInChangePasswordButton.interactable = true;
|
|
loggedInSaveButton.interactable = true;
|
|
loggedInLoadButton.interactable = true;
|
|
loggedInRefreshLoginButton.interactable = true;
|
|
loggedInLogoutButton.interactable = true;
|
|
loggedInBackButton.interactable = true;
|
|
Tools.UpdateStatusText(loggedInText, "Failed to make HTTP request", Color.red);
|
|
return;
|
|
}
|
|
var jsonResponse = JObject.Parse(request.downloadHandler.text);
|
|
if ((bool)jsonResponse["success"])
|
|
{
|
|
BazookaManager.Instance.saveFile = JObject.FromObject(jsonResponse["data"]);
|
|
if (!Application.isMobilePlatform)
|
|
{
|
|
var width = Display.main.systemWidth;
|
|
var height = Display.main.systemHeight;
|
|
Screen.SetResolution(width, height, BazookaManager.Instance.GetSettingFullScreen());
|
|
QualitySettings.vSyncCount = BazookaManager.Instance.GetSettingVsync() ? 1 : -1;
|
|
}
|
|
else
|
|
{
|
|
Application.targetFrameRate = 360;
|
|
QualitySettings.vSyncCount = 0;
|
|
}
|
|
MenuMusic.Instance.GetComponent<AudioSource>().volume = BazookaManager.Instance.GetSettingMusicVolume();
|
|
foreach (CustomColorObject customColorObject in FindObjectsByType<CustomColorObject>(FindObjectsSortMode.None)) customColorObject.SetColor();
|
|
Tools.UpdateStatusText(loggedInText, "Loaded account data", Color.green);
|
|
}
|
|
else
|
|
{
|
|
Tools.UpdateStatusText(loggedInText, (string)jsonResponse["message"], Color.red);
|
|
}
|
|
loggedInChangeUsernameButton.interactable = true;
|
|
loggedInChangePasswordButton.interactable = true;
|
|
loggedInSaveButton.interactable = true;
|
|
loggedInLoadButton.interactable = true;
|
|
loggedInRefreshLoginButton.interactable = true;
|
|
loggedInLogoutButton.interactable = true;
|
|
loggedInBackButton.interactable = true;
|
|
}
|
|
} |