Make user search, chatroom, leaderboards and icon marketplace into a popup
This commit is contained in:
52 files changed
+30178
-31455
No files matched your search
@@ -0,0 +1,59 @@
|
||||
using Newtonsoft.Json.Linq;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Networking;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class AccountChangePassword : MonoBehaviour {
|
||||
[SerializeField] private TMP_Text changePasswordStatusText;
|
||||
[SerializeField] private TMP_InputField changePasswordNewPasswordInput;
|
||||
[SerializeField] private TMP_InputField changePasswordRetypeNewPasswordInput;
|
||||
[SerializeField] private Button changePasswordSubmitButton;
|
||||
|
||||
void Awake() {
|
||||
changePasswordNewPasswordInput.onSelect.AddListener((_) => changePasswordNewPasswordInput.caretPosition = changePasswordNewPasswordInput.text.Length);
|
||||
changePasswordRetypeNewPasswordInput.onSelect.AddListener((_) => changePasswordRetypeNewPasswordInput.caretPosition = changePasswordRetypeNewPasswordInput.text.Length);
|
||||
}
|
||||
|
||||
void OnEnable() {
|
||||
changePasswordNewPasswordInput.text = "";
|
||||
changePasswordRetypeNewPasswordInput.text = "";
|
||||
changePasswordStatusText.text = "";
|
||||
changePasswordSubmitButton.onClick.RemoveAllListeners();
|
||||
AccountHandler.Instance.backButton.onClick.AddListener(() => AccountHandler.Instance.SwitchPanel(0));
|
||||
changePasswordSubmitButton.onClick.AddListener(() => ChangePassword());
|
||||
}
|
||||
|
||||
async void ChangePassword() {
|
||||
if (changePasswordNewPasswordInput.text != changePasswordRetypeNewPasswordInput.text) {
|
||||
Tools.UpdateStatusText(changePasswordStatusText, "Passwords do not match", Color.red);
|
||||
return;
|
||||
}
|
||||
AccountHandler.Instance.backButton.interactable = false;
|
||||
changePasswordSubmitButton.interactable = false;
|
||||
WWWForm dataForm = new();
|
||||
dataForm.AddField("newPassword", changePasswordNewPasswordInput.text);
|
||||
using UnityWebRequest request = UnityWebRequest.Post(Endpoints.ACCOUNT_CHANGE_PASSWORD_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) {
|
||||
AccountHandler.Instance.backButton.interactable = true;
|
||||
changePasswordSubmitButton.interactable = true;
|
||||
Tools.UpdateStatusText(changePasswordStatusText, "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"]);
|
||||
AccountHandler.Instance.SwitchPanel(0);
|
||||
Tools.UpdateStatusText(AccountHandler.Instance.accountLoggedIn.loggedInText, "Password changed successfully", Color.green);
|
||||
} else {
|
||||
Tools.UpdateStatusText(changePasswordStatusText, (string)jsonResponse["message"], Color.red);
|
||||
}
|
||||
AccountHandler.Instance.backButton.interactable = true;
|
||||
changePasswordSubmitButton.interactable = true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ae8dc061a6b24a14f81e1024c84f6695
|
||||
@@ -0,0 +1,53 @@
|
||||
using Newtonsoft.Json.Linq;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Networking;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class AccountChangeUsername : MonoBehaviour {
|
||||
[SerializeField] private TMP_Text changeUsernameStatusText;
|
||||
[SerializeField] private TMP_InputField changeUsernameNewUsernameInput;
|
||||
[SerializeField] private Button changeUsernameSubmitButton;
|
||||
|
||||
void Awake() {
|
||||
changeUsernameNewUsernameInput.onSelect.AddListener((_) => changeUsernameNewUsernameInput.caretPosition = changeUsernameNewUsernameInput.text.Length);
|
||||
}
|
||||
|
||||
void OnEnable() {
|
||||
changeUsernameNewUsernameInput.text = "";
|
||||
changeUsernameStatusText.text = "";
|
||||
changeUsernameSubmitButton.onClick.RemoveAllListeners();
|
||||
AccountHandler.Instance.backButton.onClick.AddListener(() => AccountHandler.Instance.SwitchPanel(0));
|
||||
changeUsernameSubmitButton.onClick.AddListener(() => ChangeUsername());
|
||||
}
|
||||
|
||||
async void ChangeUsername() {
|
||||
AccountHandler.Instance.backButton.interactable = false;
|
||||
changeUsernameSubmitButton.interactable = false;
|
||||
WWWForm dataForm = new();
|
||||
dataForm.AddField("newUsername", changeUsernameNewUsernameInput.text);
|
||||
using UnityWebRequest request = UnityWebRequest.Post(Endpoints.ACCOUNT_CHANGE_USERNAME_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) {
|
||||
AccountHandler.Instance.backButton.interactable = true;
|
||||
changeUsernameSubmitButton.interactable = true;
|
||||
Tools.UpdateStatusText(changeUsernameStatusText, "Failed to make HTTP request", Color.red);
|
||||
return;
|
||||
}
|
||||
var jsonResponse = JObject.Parse(request.downloadHandler.text);
|
||||
if ((bool)jsonResponse["success"]) {
|
||||
BazookaManager.Instance.SetAccountName(changeUsernameNewUsernameInput.text);
|
||||
BazookaManager.Instance.SetAccountSession((string)jsonResponse["data"]);
|
||||
AccountHandler.Instance.SwitchPanel(0);
|
||||
Tools.UpdateStatusText(AccountHandler.Instance.accountLoggedIn.loggedInText, "Username changed successfully", Color.green);
|
||||
} else {
|
||||
Tools.UpdateStatusText(changeUsernameStatusText, (string)jsonResponse["message"], Color.red);
|
||||
}
|
||||
AccountHandler.Instance.backButton.interactable = true;
|
||||
changeUsernameSubmitButton.interactable = true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: be362dee96ceba548be09c7fede7bf16
|
||||
@@ -0,0 +1,58 @@
|
||||
using Newtonsoft.Json.Linq;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Networking;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class AccountForgotDetails : MonoBehaviour {
|
||||
[SerializeField] internal TMP_Text forgotDetailsTitleText;
|
||||
[SerializeField] private TMP_Text forgotDetailsStatusText;
|
||||
[SerializeField] private TMP_InputField forgotDetailsEmailInput;
|
||||
[SerializeField] private TMP_InputField forgotDetailsVerifyCodeInput;
|
||||
[SerializeField] internal Button forgotDetailsSubmitButton;
|
||||
internal int mode = 0;
|
||||
|
||||
void Awake() {
|
||||
forgotDetailsEmailInput.onSelect.AddListener((_) => forgotDetailsEmailInput.caretPosition = forgotDetailsEmailInput.text.Length);
|
||||
forgotDetailsVerifyCodeInput.onSelect.AddListener((_) => forgotDetailsVerifyCodeInput.caretPosition = forgotDetailsVerifyCodeInput.text.Length);
|
||||
}
|
||||
|
||||
void OnEnable() {
|
||||
forgotDetailsEmailInput.text = "";
|
||||
forgotDetailsVerifyCodeInput.text = "";
|
||||
forgotDetailsSubmitButton.onClick.RemoveAllListeners();
|
||||
AccountHandler.Instance.backButton.onClick.AddListener(() => {
|
||||
forgotDetailsSubmitButton.interactable = false;
|
||||
mode = 0;
|
||||
forgotDetailsTitleText.text = "";
|
||||
forgotDetailsStatusText.text = "";
|
||||
AccountHandler.Instance.SwitchPanel(2);
|
||||
});
|
||||
forgotDetailsSubmitButton.onClick.AddListener(() => ForgotDetails());
|
||||
}
|
||||
|
||||
async void ForgotDetails() {
|
||||
AccountHandler.Instance.backButton.interactable = false;
|
||||
forgotDetailsSubmitButton.interactable = false;
|
||||
WWWForm dataForm = new();
|
||||
dataForm.AddField("email", forgotDetailsEmailInput.text);
|
||||
dataForm.AddField("verifyCode", forgotDetailsVerifyCodeInput.text);
|
||||
forgotDetailsVerifyCodeInput.text = "";
|
||||
using UnityWebRequest request = UnityWebRequest.Post(mode == 0 ? Endpoints.ACCOUNT_FORGOT_USERNAME_ENDPOINT : Endpoints.ACCOUNT_FORGOT_PASSWORD_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) {
|
||||
AccountHandler.Instance.backButton.interactable = true;
|
||||
forgotDetailsSubmitButton.interactable = true;
|
||||
Tools.UpdateStatusText(forgotDetailsStatusText, "Failed to make HTTP request", Color.red);
|
||||
return;
|
||||
}
|
||||
var jsonResponse = JObject.Parse(request.downloadHandler.text);
|
||||
if ((bool)jsonResponse["success"]) Tools.UpdateStatusText(forgotDetailsStatusText, "An email has been sent to your inbox", Color.green);
|
||||
else Tools.UpdateStatusText(forgotDetailsStatusText, (string)jsonResponse["message"], Color.red);
|
||||
AccountHandler.Instance.backButton.interactable = true;
|
||||
forgotDetailsSubmitButton.interactable = true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8e73b40d4fe6b41dd9b73f1334fd3e78
|
||||
@@ -0,0 +1,147 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.InputSystem;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class AccountHandler : MonoBehaviour {
|
||||
public static AccountHandler Instance;
|
||||
public AccountLoggedIn accountLoggedIn;
|
||||
[SerializeField] internal Button exitButton;
|
||||
[SerializeField] internal Button backButton;
|
||||
[SerializeField] private AccountLoggedOut accountLoggedOut;
|
||||
[SerializeField] private AccountLogin accountLogin;
|
||||
[SerializeField] private AccountRegister accountRegister;
|
||||
[SerializeField] private AccountChangeUsername accountChangeUsername;
|
||||
[SerializeField] private AccountChangePassword accountChangePassword;
|
||||
[SerializeField] private AccountRefreshLogin accountRefreshLogin;
|
||||
[SerializeField] internal AccountForgotDetails accountForgotDetails;
|
||||
|
||||
void Awake() {
|
||||
Instance = this;
|
||||
exitButton.onClick.AddListener(() => Destroy(gameObject));
|
||||
}
|
||||
|
||||
void Start() {
|
||||
if (BazookaManager.Instance.GetAccountID() != null && BazookaManager.Instance.GetAccountName() != null && BazookaManager.Instance.GetAccountSession() != null) {
|
||||
SwitchPanel(0);
|
||||
} else {
|
||||
SwitchPanel(1);
|
||||
}
|
||||
}
|
||||
|
||||
public void SwitchPanel(int panel) {
|
||||
switch (panel) {
|
||||
case 0:
|
||||
backButton.onClick.RemoveAllListeners();
|
||||
exitButton.gameObject.SetActive(true);
|
||||
backButton.gameObject.SetActive(false);
|
||||
accountLoggedOut.gameObject.SetActive(false);
|
||||
accountLogin.gameObject.SetActive(false);
|
||||
accountRegister.gameObject.SetActive(false);
|
||||
accountChangeUsername.gameObject.SetActive(false);
|
||||
accountChangePassword.gameObject.SetActive(false);
|
||||
accountRefreshLogin.gameObject.SetActive(false);
|
||||
accountForgotDetails.gameObject.SetActive(false);
|
||||
accountLoggedIn.gameObject.SetActive(true);
|
||||
break;
|
||||
case 1:
|
||||
backButton.onClick.RemoveAllListeners();
|
||||
exitButton.gameObject.SetActive(true);
|
||||
backButton.gameObject.SetActive(false);
|
||||
accountLoggedIn.gameObject.SetActive(false);
|
||||
accountLogin.gameObject.SetActive(false);
|
||||
accountRegister.gameObject.SetActive(false);
|
||||
accountChangeUsername.gameObject.SetActive(false);
|
||||
accountChangePassword.gameObject.SetActive(false);
|
||||
accountRefreshLogin.gameObject.SetActive(false);
|
||||
accountForgotDetails.gameObject.SetActive(false);
|
||||
accountLoggedOut.gameObject.SetActive(true);
|
||||
break;
|
||||
case 2:
|
||||
backButton.onClick.RemoveAllListeners();
|
||||
exitButton.gameObject.SetActive(false);
|
||||
backButton.gameObject.SetActive(true);
|
||||
accountLoggedIn.gameObject.SetActive(false);
|
||||
accountLoggedOut.gameObject.SetActive(false);
|
||||
accountRegister.gameObject.SetActive(false);
|
||||
accountChangeUsername.gameObject.SetActive(false);
|
||||
accountChangePassword.gameObject.SetActive(false);
|
||||
accountRefreshLogin.gameObject.SetActive(false);
|
||||
accountForgotDetails.gameObject.SetActive(false);
|
||||
accountLogin.gameObject.SetActive(true);
|
||||
break;
|
||||
case 3:
|
||||
backButton.onClick.RemoveAllListeners();
|
||||
exitButton.gameObject.SetActive(false);
|
||||
backButton.gameObject.SetActive(true);
|
||||
accountLoggedIn.gameObject.SetActive(false);
|
||||
accountLoggedOut.gameObject.SetActive(false);
|
||||
accountLogin.gameObject.SetActive(false);
|
||||
accountChangeUsername.gameObject.SetActive(false);
|
||||
accountChangePassword.gameObject.SetActive(false);
|
||||
accountRefreshLogin.gameObject.SetActive(false);
|
||||
accountForgotDetails.gameObject.SetActive(false);
|
||||
accountRegister.gameObject.SetActive(true);
|
||||
break;
|
||||
case 4:
|
||||
backButton.onClick.RemoveAllListeners();
|
||||
exitButton.gameObject.SetActive(false);
|
||||
backButton.gameObject.SetActive(true);
|
||||
accountLoggedIn.gameObject.SetActive(false);
|
||||
accountLoggedOut.gameObject.SetActive(false);
|
||||
accountLogin.gameObject.SetActive(false);
|
||||
accountRegister.gameObject.SetActive(false);
|
||||
accountChangePassword.gameObject.SetActive(false);
|
||||
accountRefreshLogin.gameObject.SetActive(false);
|
||||
accountForgotDetails.gameObject.SetActive(false);
|
||||
accountChangeUsername.gameObject.SetActive(true);
|
||||
break;
|
||||
case 5:
|
||||
backButton.onClick.RemoveAllListeners();
|
||||
exitButton.gameObject.SetActive(false);
|
||||
backButton.gameObject.SetActive(true);
|
||||
accountLoggedIn.gameObject.SetActive(false);
|
||||
accountLoggedOut.gameObject.SetActive(false);
|
||||
accountLogin.gameObject.SetActive(false);
|
||||
accountRegister.gameObject.SetActive(false);
|
||||
accountChangeUsername.gameObject.SetActive(false);
|
||||
accountRefreshLogin.gameObject.SetActive(false);
|
||||
accountForgotDetails.gameObject.SetActive(false);
|
||||
accountChangePassword.gameObject.SetActive(true);
|
||||
break;
|
||||
case 6:
|
||||
backButton.onClick.RemoveAllListeners();
|
||||
exitButton.gameObject.SetActive(false);
|
||||
backButton.gameObject.SetActive(true);
|
||||
accountLoggedIn.gameObject.SetActive(false);
|
||||
accountLoggedOut.gameObject.SetActive(false);
|
||||
accountLogin.gameObject.SetActive(false);
|
||||
accountRegister.gameObject.SetActive(false);
|
||||
accountChangeUsername.gameObject.SetActive(false);
|
||||
accountChangePassword.gameObject.SetActive(false);
|
||||
accountForgotDetails.gameObject.SetActive(false);
|
||||
accountRefreshLogin.gameObject.SetActive(true);
|
||||
break;
|
||||
case 7:
|
||||
backButton.onClick.RemoveAllListeners();
|
||||
exitButton.gameObject.SetActive(false);
|
||||
backButton.gameObject.SetActive(true);
|
||||
accountLoggedIn.gameObject.SetActive(false);
|
||||
accountLoggedOut.gameObject.SetActive(false);
|
||||
accountLogin.gameObject.SetActive(false);
|
||||
accountRegister.gameObject.SetActive(false);
|
||||
accountChangeUsername.gameObject.SetActive(false);
|
||||
accountChangePassword.gameObject.SetActive(false);
|
||||
accountRefreshLogin.gameObject.SetActive(false);
|
||||
accountForgotDetails.gameObject.SetActive(true);
|
||||
break;
|
||||
}
|
||||
foreach (CustomColorObject customColorObject in FindObjectsByType<CustomColorObject>(FindObjectsSortMode.None)) customColorObject.SetColor();
|
||||
}
|
||||
|
||||
void Update() {
|
||||
if (Keyboard.current.escapeKey.wasPressedThisFrame) {
|
||||
if (exitButton.gameObject.activeSelf && exitButton.interactable) exitButton.onClick.Invoke();
|
||||
else if (backButton.gameObject.activeSelf && backButton.interactable) backButton.onClick.Invoke();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1d3604e648db0614cb2265963d39721b
|
||||
@@ -0,0 +1,151 @@
|
||||
using System;
|
||||
using System.Text;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Networking;
|
||||
using UnityEngine.SceneManagement;
|
||||
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;
|
||||
|
||||
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));
|
||||
loggedInChangeUsernameButton.onClick.RemoveAllListeners();
|
||||
loggedInChangePasswordButton.onClick.RemoveAllListeners();
|
||||
loggedInSaveButton.onClick.RemoveAllListeners();
|
||||
loggedInLoadButton.onClick.RemoveAllListeners();
|
||||
loggedInRefreshLoginButton.onClick.RemoveAllListeners();
|
||||
loggedInLogoutButton.onClick.RemoveAllListeners();
|
||||
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(() => {
|
||||
AccountHandler.Instance.exitButton.interactable = false;
|
||||
BazookaManager.Instance.ResetSave();
|
||||
|
||||
DontDestroyOnLoad(AccountHandler.Instance.gameObject);
|
||||
SceneManager.LoadScene(SceneManager.GetActiveScene().name);
|
||||
SceneManager.sceneLoaded += OnSceneLoaded;
|
||||
|
||||
AccountHandler.Instance.SwitchPanel(1);
|
||||
AccountHandler.Instance.exitButton.interactable = true;
|
||||
});
|
||||
}
|
||||
|
||||
async void SaveAccount() {
|
||||
loggedInChangeUsernameButton.interactable = false;
|
||||
loggedInChangePasswordButton.interactable = false;
|
||||
loggedInSaveButton.interactable = false;
|
||||
loggedInLoadButton.interactable = false;
|
||||
loggedInRefreshLoginButton.interactable = false;
|
||||
loggedInLogoutButton.interactable = false;
|
||||
AccountHandler.Instance.exitButton.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;
|
||||
AccountHandler.Instance.exitButton.interactable = true;
|
||||
Tools.UpdateStatusText(loggedInText, "Failed to make HTTP request", Color.red);
|
||||
return;
|
||||
}
|
||||
var jsonResponse = JObject.Parse(request.downloadHandler.text);
|
||||
Tools.UpdateStatusText(loggedInText, (string)jsonResponse["message"], (bool)jsonResponse["success"] ? Color.green : Color.red);
|
||||
loggedInChangeUsernameButton.interactable = true;
|
||||
loggedInChangePasswordButton.interactable = true;
|
||||
loggedInSaveButton.interactable = true;
|
||||
loggedInLoadButton.interactable = true;
|
||||
loggedInRefreshLoginButton.interactable = true;
|
||||
loggedInLogoutButton.interactable = true;
|
||||
AccountHandler.Instance.exitButton.interactable = true;
|
||||
}
|
||||
|
||||
async void LoadAccount() {
|
||||
loggedInChangeUsernameButton.interactable = false;
|
||||
loggedInChangePasswordButton.interactable = false;
|
||||
loggedInSaveButton.interactable = false;
|
||||
loggedInLoadButton.interactable = false;
|
||||
loggedInRefreshLoginButton.interactable = false;
|
||||
loggedInLogoutButton.interactable = false;
|
||||
AccountHandler.Instance.exitButton.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;
|
||||
AccountHandler.Instance.exitButton.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"]);
|
||||
|
||||
DontDestroyOnLoad(AccountHandler.Instance.gameObject);
|
||||
SceneManager.LoadScene(SceneManager.GetActiveScene().name);
|
||||
SceneManager.sceneLoaded += OnSceneLoaded;
|
||||
|
||||
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, (string)jsonResponse["message"], (bool)jsonResponse["success"] ? Color.green : Color.red);
|
||||
loggedInChangeUsernameButton.interactable = true;
|
||||
loggedInChangePasswordButton.interactable = true;
|
||||
loggedInSaveButton.interactable = true;
|
||||
loggedInLoadButton.interactable = true;
|
||||
loggedInRefreshLoginButton.interactable = true;
|
||||
loggedInLogoutButton.interactable = true;
|
||||
AccountHandler.Instance.exitButton.interactable = true;
|
||||
}
|
||||
|
||||
void OnSceneLoaded(Scene scene, LoadSceneMode mode) {
|
||||
SceneManager.MoveGameObjectToScene(AccountHandler.Instance.gameObject, scene);
|
||||
SceneManager.sceneLoaded -= OnSceneLoaded;
|
||||
|
||||
var canvas = AccountHandler.Instance.GetComponentInChildren<Canvas>();
|
||||
canvas.enabled = false;
|
||||
canvas.enabled = true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2f7c13bcd16e34840be5ed44f70b3824
|
||||
@@ -0,0 +1,14 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class AccountLoggedOut : MonoBehaviour {
|
||||
[SerializeField] private Button loggedOutLoginButton;
|
||||
[SerializeField] private Button loggedOutRegisterButton;
|
||||
|
||||
void OnEnable() {
|
||||
loggedOutLoginButton.onClick.RemoveAllListeners();
|
||||
loggedOutRegisterButton.onClick.RemoveAllListeners();
|
||||
loggedOutLoginButton.onClick.AddListener(() => AccountHandler.Instance.SwitchPanel(2));
|
||||
loggedOutRegisterButton.onClick.AddListener(() => AccountHandler.Instance.SwitchPanel(3));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9d660b01e28b0234bb44f79e71fba5b3
|
||||
@@ -0,0 +1,80 @@
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System.Numerics;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Networking;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class AccountLogin : MonoBehaviour {
|
||||
[SerializeField] private TMP_Text loginPanelStatusText;
|
||||
[SerializeField] private TMP_InputField loginUsernameInput;
|
||||
[SerializeField] private TMP_InputField loginPasswordInput;
|
||||
[SerializeField] private Button forgotUsernameButton;
|
||||
[SerializeField] private Button forgotPasswordButton;
|
||||
[SerializeField] private Button loginSubmitButton;
|
||||
|
||||
void Awake() {
|
||||
loginUsernameInput.onSelect.AddListener((_) => loginUsernameInput.caretPosition = loginUsernameInput.text.Length);
|
||||
loginPasswordInput.onSelect.AddListener((_) => loginPasswordInput.caretPosition = loginPasswordInput.text.Length);
|
||||
}
|
||||
|
||||
void OnEnable() {
|
||||
loginUsernameInput.text = "";
|
||||
loginPasswordInput.text = "";
|
||||
loginPanelStatusText.text = "";
|
||||
loginSubmitButton.onClick.RemoveAllListeners();
|
||||
forgotUsernameButton.onClick.RemoveAllListeners();
|
||||
forgotPasswordButton.onClick.RemoveAllListeners();
|
||||
AccountHandler.Instance.backButton.onClick.AddListener(() => AccountHandler.Instance.SwitchPanel(1));
|
||||
loginSubmitButton.onClick.AddListener(() => SubmitLogin());
|
||||
forgotUsernameButton.onClick.AddListener(() => {
|
||||
AccountHandler.Instance.SwitchPanel(7);
|
||||
AccountHandler.Instance.accountForgotDetails.mode = 0;
|
||||
AccountHandler.Instance.accountForgotDetails.forgotDetailsTitleText.text = "Forgot username";
|
||||
AccountHandler.Instance.backButton.interactable = true;
|
||||
AccountHandler.Instance.accountForgotDetails.forgotDetailsSubmitButton.interactable = true;
|
||||
});
|
||||
forgotPasswordButton.onClick.AddListener(() => {
|
||||
AccountHandler.Instance.SwitchPanel(7);
|
||||
AccountHandler.Instance.accountForgotDetails.mode = 1;
|
||||
AccountHandler.Instance.accountForgotDetails.forgotDetailsTitleText.text = "Forgot password";
|
||||
AccountHandler.Instance.backButton.interactable = true;
|
||||
AccountHandler.Instance.accountForgotDetails.forgotDetailsSubmitButton.interactable = true;
|
||||
});
|
||||
}
|
||||
|
||||
async void SubmitLogin() {
|
||||
AccountHandler.Instance.backButton.interactable = false;
|
||||
loginSubmitButton.interactable = false;
|
||||
if (loginUsernameInput.text == string.Empty || loginPasswordInput.text == string.Empty) {
|
||||
Tools.UpdateStatusText(loginPanelStatusText, "All input fields must be filled", Color.red);
|
||||
return;
|
||||
}
|
||||
WWWForm dataForm = new();
|
||||
dataForm.AddField("username", loginUsernameInput.text);
|
||||
dataForm.AddField("password", loginPasswordInput.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) {
|
||||
AccountHandler.Instance.backButton.interactable = true;
|
||||
loginSubmitButton.interactable = true;
|
||||
Tools.UpdateStatusText(loginPanelStatusText, "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(loginPanelStatusText, "", Color.red);
|
||||
} else {
|
||||
Tools.UpdateStatusText(loginPanelStatusText, (string)jsonResponse["message"], Color.red);
|
||||
}
|
||||
AccountHandler.Instance.backButton.interactable = true;
|
||||
loginSubmitButton.interactable = true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 396f21a29cb8a2844884c0daac1a67ee
|
||||
@@ -0,0 +1,57 @@
|
||||
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 refreshLoginSubmitButton;
|
||||
|
||||
void Awake() {
|
||||
refreshLoginUsernameInput.onSelect.AddListener((_) => refreshLoginUsernameInput.caretPosition = refreshLoginUsernameInput.text.Length);
|
||||
refreshLoginPasswordInput.onSelect.AddListener((_) => refreshLoginPasswordInput.caretPosition = refreshLoginPasswordInput.text.Length);
|
||||
}
|
||||
|
||||
void OnEnable() {
|
||||
refreshLoginUsernameInput.text = "";
|
||||
refreshLoginPasswordInput.text = "";
|
||||
refreshLoginSubmitButton.onClick.RemoveAllListeners();
|
||||
AccountHandler.Instance.backButton.onClick.AddListener(() => AccountHandler.Instance.SwitchPanel(0));
|
||||
refreshLoginSubmitButton.onClick.AddListener(() => RefreshLogin());
|
||||
}
|
||||
|
||||
async void RefreshLogin() {
|
||||
AccountHandler.Instance.backButton.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) {
|
||||
AccountHandler.Instance.backButton.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);
|
||||
}
|
||||
AccountHandler.Instance.backButton.interactable = true;
|
||||
refreshLoginSubmitButton.interactable = true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0cfd036ba0d22324d8dd09b06d7bcf75
|
||||
@@ -0,0 +1,78 @@
|
||||
using Newtonsoft.Json.Linq;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Networking;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class AccountRegister : MonoBehaviour {
|
||||
[SerializeField] private TMP_Text registerPanelStatusText;
|
||||
[SerializeField] private TMP_InputField registerUsernameInput;
|
||||
[SerializeField] private TMP_InputField registerEmailInput;
|
||||
[SerializeField] private TMP_InputField registerPasswordInput;
|
||||
[SerializeField] private TMP_InputField registerRetypePasswordInput;
|
||||
[SerializeField] private TMP_InputField registerVerifyCodeInput;
|
||||
[SerializeField] private Button registerSubmitButton;
|
||||
|
||||
void Awake() {
|
||||
registerUsernameInput.onSelect.AddListener((_) => registerUsernameInput.caretPosition = registerUsernameInput.text.Length);
|
||||
registerEmailInput.onSelect.AddListener((_) => registerEmailInput.caretPosition = registerEmailInput.text.Length);
|
||||
registerPasswordInput.onSelect.AddListener((_) => registerPasswordInput.caretPosition = registerPasswordInput.text.Length);
|
||||
registerRetypePasswordInput.onSelect.AddListener((_) => registerRetypePasswordInput.caretPosition = registerRetypePasswordInput.text.Length);
|
||||
registerVerifyCodeInput.onSelect.AddListener((_) => registerVerifyCodeInput.caretPosition = registerVerifyCodeInput.text.Length);
|
||||
}
|
||||
|
||||
void OnEnable() {
|
||||
registerUsernameInput.text = "";
|
||||
registerEmailInput.text = "";
|
||||
registerPasswordInput.text = "";
|
||||
registerRetypePasswordInput.text = "";
|
||||
registerVerifyCodeInput.text = "";
|
||||
registerPanelStatusText.text = "";
|
||||
AccountHandler.Instance.backButton.onClick.AddListener(() => AccountHandler.Instance.SwitchPanel(1));
|
||||
registerSubmitButton.onClick.AddListener(() => SubmitRegister());
|
||||
}
|
||||
|
||||
async void SubmitRegister() {
|
||||
if (
|
||||
registerUsernameInput.text == string.Empty ||
|
||||
registerEmailInput.text == string.Empty ||
|
||||
registerPasswordInput.text == string.Empty ||
|
||||
registerRetypePasswordInput.text == string.Empty ||
|
||||
registerVerifyCodeInput.text == string.Empty
|
||||
) {
|
||||
Tools.UpdateStatusText(registerPanelStatusText, "All input fields must be filled", Color.red);
|
||||
return;
|
||||
}
|
||||
if (registerPasswordInput.text != registerRetypePasswordInput.text) {
|
||||
Tools.UpdateStatusText(registerPanelStatusText, "Passwords don't match", Color.red);
|
||||
return;
|
||||
}
|
||||
AccountHandler.Instance.backButton.interactable = false;
|
||||
registerSubmitButton.interactable = false;
|
||||
WWWForm dataForm = new();
|
||||
dataForm.AddField("username", registerUsernameInput.text);
|
||||
dataForm.AddField("email", registerEmailInput.text);
|
||||
dataForm.AddField("password", registerPasswordInput.text);
|
||||
dataForm.AddField("verifyCode", registerVerifyCodeInput.text);
|
||||
registerVerifyCodeInput.text = "";
|
||||
using UnityWebRequest request = UnityWebRequest.Post(Endpoints.ACCOUNT_REGISTER_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) {
|
||||
AccountHandler.Instance.backButton.interactable = true;
|
||||
registerSubmitButton.interactable = true;
|
||||
Tools.UpdateStatusText(registerPanelStatusText, "Failed to make HTTP request", Color.red);
|
||||
return;
|
||||
}
|
||||
var jsonResponse = JObject.Parse(request.downloadHandler.text);
|
||||
if ((bool)jsonResponse["success"]) {
|
||||
AccountHandler.Instance.SwitchPanel(2);
|
||||
} else {
|
||||
Tools.UpdateStatusText(registerPanelStatusText, (string)jsonResponse["message"], Color.red);
|
||||
}
|
||||
AccountHandler.Instance.backButton.interactable = true;
|
||||
registerSubmitButton.interactable = true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 15b428d2b1e250a4385f3a56d0b4d43e
|
||||
Reference in new issue
Block a user