Make accounts menu into a popup

This commit is contained in:
Lncvrt committed 2026-03-08 10:40:53 -07:00
1 parent 609aef5663
commit c63309f90f
14 files changed
+14586 -17501

No files matched your search

@@ -8,21 +8,20 @@ public class AccountChangePassword : MonoBehaviour {
[SerializeField] private TMP_Text changePasswordStatusText;
[SerializeField] private TMP_InputField changePasswordNewPasswordInput;
[SerializeField] private TMP_InputField changePasswordRetypeNewPasswordInput;
[SerializeField] private Button changePasswordBackButton;
[SerializeField] private Button changePasswordSubmitButton;
void Awake() {
changePasswordNewPasswordInput.onSelect.AddListener((_) => changePasswordNewPasswordInput.caretPosition = changePasswordNewPasswordInput.text.Length);
changePasswordRetypeNewPasswordInput.onSelect.AddListener((_) => changePasswordRetypeNewPasswordInput.caretPosition = changePasswordRetypeNewPasswordInput.text.Length);
changePasswordBackButton.onClick.AddListener(() => AccountHandler.instance.SwitchPanel(0));
changePasswordSubmitButton.onClick.AddListener(() => ChangePassword());
}
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() {
@@ -30,7 +29,7 @@ public class AccountChangePassword : MonoBehaviour {
Tools.UpdateStatusText(changePasswordStatusText, "Passwords do not match", Color.red);
return;
}
changePasswordBackButton.interactable = false;
AccountHandler.instance.backButton.interactable = false;
changePasswordSubmitButton.interactable = false;
WWWForm dataForm = new();
dataForm.AddField("newPassword", changePasswordNewPasswordInput.text);
@@ -41,7 +40,7 @@ public class AccountChangePassword : MonoBehaviour {
request.SetRequestHeader("ClientPlatform", Application.platform.ToString());
await request.SendWebRequest();
if (request.downloadHandler.text == null) {
changePasswordBackButton.interactable = true;
AccountHandler.instance.backButton.interactable = true;
changePasswordSubmitButton.interactable = true;
Tools.UpdateStatusText(changePasswordStatusText, "Failed to make HTTP request", Color.red);
return;
@@ -54,7 +53,7 @@ public class AccountChangePassword : MonoBehaviour {
} else {
Tools.UpdateStatusText(changePasswordStatusText, (string)jsonResponse["message"], Color.red);
}
changePasswordBackButton.interactable = true;
AccountHandler.instance.backButton.interactable = true;
changePasswordSubmitButton.interactable = true;
}
}
@@ -7,23 +7,22 @@ using UnityEngine.UI;
public class AccountChangeUsername : MonoBehaviour {
[SerializeField] private TMP_Text changeUsernameStatusText;
[SerializeField] private TMP_InputField changeUsernameNewUsernameInput;
[SerializeField] private Button changeUsernameBackButton;
[SerializeField] private Button changeUsernameSubmitButton;
void Awake() {
changeUsernameNewUsernameInput.onSelect.AddListener((_) => changeUsernameNewUsernameInput.caretPosition = changeUsernameNewUsernameInput.text.Length);
changeUsernameBackButton.onClick.AddListener(() => AccountHandler.instance.SwitchPanel(0));
changeUsernameSubmitButton.onClick.AddListener(() => ChangeUsername());
}
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() {
changeUsernameBackButton.interactable = false;
AccountHandler.instance.backButton.interactable = false;
changeUsernameSubmitButton.interactable = false;
WWWForm dataForm = new();
dataForm.AddField("newUsername", changeUsernameNewUsernameInput.text);
@@ -34,7 +33,7 @@ public class AccountChangeUsername : MonoBehaviour {
request.SetRequestHeader("ClientPlatform", Application.platform.ToString());
await request.SendWebRequest();
if (request.downloadHandler.text == null) {
changeUsernameBackButton.interactable = true;
AccountHandler.instance.backButton.interactable = true;
changeUsernameSubmitButton.interactable = true;
Tools.UpdateStatusText(changeUsernameStatusText, "Failed to make HTTP request", Color.red);
return;
@@ -48,7 +47,7 @@ public class AccountChangeUsername : MonoBehaviour {
} else {
Tools.UpdateStatusText(changeUsernameStatusText, (string)jsonResponse["message"], Color.red);
}
changeUsernameBackButton.interactable = true;
AccountHandler.instance.backButton.interactable = true;
changeUsernameSubmitButton.interactable = true;
}
}
@@ -9,16 +9,19 @@ public class AccountForgotDetails : MonoBehaviour {
[SerializeField] private TMP_Text forgotDetailsStatusText;
[SerializeField] private TMP_InputField forgotDetailsEmailInput;
[SerializeField] private TMP_InputField forgotDetailsVerifyCodeInput;
[SerializeField] internal Button forgotDetailsBackButton;
[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);
}
forgotDetailsBackButton.onClick.AddListener(() => {
forgotDetailsBackButton.interactable = false;
void OnEnable() {
forgotDetailsEmailInput.text = "";
forgotDetailsVerifyCodeInput.text = "";
forgotDetailsSubmitButton.onClick.RemoveAllListeners();
AccountHandler.instance.backButton.onClick.AddListener(() => {
forgotDetailsSubmitButton.interactable = false;
mode = 0;
forgotDetailsTitleText.text = "";
@@ -28,13 +31,8 @@ public class AccountForgotDetails : MonoBehaviour {
forgotDetailsSubmitButton.onClick.AddListener(() => ForgotDetails());
}
void OnEnable() {
forgotDetailsEmailInput.text = "";
forgotDetailsVerifyCodeInput.text = "";
}
async void ForgotDetails() {
forgotDetailsBackButton.interactable = false;
AccountHandler.instance.backButton.interactable = false;
forgotDetailsSubmitButton.interactable = false;
WWWForm dataForm = new();
dataForm.AddField("email", forgotDetailsEmailInput.text);
@@ -46,7 +44,7 @@ public class AccountForgotDetails : MonoBehaviour {
request.SetRequestHeader("ClientPlatform", Application.platform.ToString());
await request.SendWebRequest();
if (request.downloadHandler.text == null) {
forgotDetailsBackButton.interactable = true;
AccountHandler.instance.backButton.interactable = true;
forgotDetailsSubmitButton.interactable = true;
Tools.UpdateStatusText(forgotDetailsStatusText, "Failed to make HTTP request", Color.red);
return;
@@ -54,7 +52,7 @@ public class AccountForgotDetails : MonoBehaviour {
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);
forgotDetailsBackButton.interactable = true;
AccountHandler.instance.backButton.interactable = true;
forgotDetailsSubmitButton.interactable = true;
}
}
+38 -13
View File
@@ -1,10 +1,12 @@
using UnityEngine;
using UnityEngine.InputSystem;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class AccountHandler : MonoBehaviour {
public static AccountHandler instance;
public AccountLoggedIn accountLoggedIn;
[SerializeField] private Button exitButton;
[SerializeField] internal Button backButton;
[SerializeField] private AccountLoggedOut accountLoggedOut;
[SerializeField] private AccountLogin accountLogin;
[SerializeField] private AccountRegister accountRegister;
@@ -15,6 +17,7 @@ public class AccountHandler : MonoBehaviour {
void Awake() {
instance = this;
exitButton.onClick.AddListener(() => Destroy(gameObject));
}
void Start() {
@@ -28,7 +31,9 @@ public class AccountHandler : MonoBehaviour {
public void SwitchPanel(int panel) {
switch (panel) {
case 0:
accountLoggedIn.gameObject.SetActive(true);
backButton.onClick.RemoveAllListeners();
exitButton.gameObject.SetActive(true);
backButton.gameObject.SetActive(false);
accountLoggedOut.gameObject.SetActive(false);
accountLogin.gameObject.SetActive(false);
accountRegister.gameObject.SetActive(false);
@@ -36,68 +41,90 @@ public class AccountHandler : MonoBehaviour {
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);
accountLoggedOut.gameObject.SetActive(true);
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);
accountLogin.gameObject.SetActive(true);
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);
accountRegister.gameObject.SetActive(true);
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);
accountChangeUsername.gameObject.SetActive(true);
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);
accountChangePassword.gameObject.SetActive(true);
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);
accountRefreshLogin.gameObject.SetActive(true);
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);
@@ -111,12 +138,10 @@ public class AccountHandler : MonoBehaviour {
foreach (CustomColorObject customColorObject in FindObjectsByType<CustomColorObject>(FindObjectsSortMode.None)) customColorObject.SetColor();
}
async void Update() {
void Update() {
if (Keyboard.current.escapeKey.wasPressedThisFrame) {
if (accountChangePassword.gameObject.activeSelf || accountChangeUsername.gameObject.activeSelf || accountRefreshLogin.gameObject.activeSelf) SwitchPanel(0);
else if (accountLogin.gameObject.activeSelf || accountRegister.gameObject.activeSelf) SwitchPanel(1);
else if (accountForgotDetails.gameObject.activeSelf) accountForgotDetails.forgotDetailsBackButton.onClick.Invoke();
else await SceneManager.LoadSceneAsync("MainMenu");
if (exitButton.gameObject.activeSelf && exitButton.interactable) exitButton.onClick.Invoke();
else if (backButton.gameObject.activeSelf && backButton.interactable) backButton.onClick.Invoke();
}
}
}
+17 -15
View File
@@ -16,9 +16,18 @@ public class AccountLoggedIn : MonoBehaviour {
[SerializeField] private Button loggedInLoadButton;
[SerializeField] private Button loggedInRefreshLoginButton;
[SerializeField] private Button loggedInLogoutButton;
[SerializeField] private Button loggedInBackButton;
void Awake() {
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());
@@ -30,13 +39,6 @@ public class AccountLoggedIn : MonoBehaviour {
});
}
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;
@@ -44,7 +46,7 @@ public class AccountLoggedIn : MonoBehaviour {
loggedInLoadButton.interactable = false;
loggedInRefreshLoginButton.interactable = false;
loggedInLogoutButton.interactable = false;
loggedInBackButton.interactable = false;
AccountHandler.instance.backButton.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);
@@ -60,7 +62,7 @@ public class AccountLoggedIn : MonoBehaviour {
loggedInLoadButton.interactable = true;
loggedInRefreshLoginButton.interactable = true;
loggedInLogoutButton.interactable = true;
loggedInBackButton.interactable = true;
AccountHandler.instance.backButton.interactable = true;
Tools.UpdateStatusText(loggedInText, "Failed to make HTTP request", Color.red);
return;
}
@@ -72,7 +74,7 @@ public class AccountLoggedIn : MonoBehaviour {
loggedInLoadButton.interactable = true;
loggedInRefreshLoginButton.interactable = true;
loggedInLogoutButton.interactable = true;
loggedInBackButton.interactable = true;
AccountHandler.instance.backButton.interactable = true;
}
async void LoadAccount() {
@@ -82,7 +84,7 @@ public class AccountLoggedIn : MonoBehaviour {
loggedInLoadButton.interactable = false;
loggedInRefreshLoginButton.interactable = false;
loggedInLogoutButton.interactable = false;
loggedInBackButton.interactable = false;
AccountHandler.instance.backButton.interactable = false;
using UnityWebRequest request = UnityWebRequest.Get(Endpoints.ACCOUNT_SAVE_ENDPOINT);
request.SetRequestHeader("Authorization", BazookaManager.Instance.GetAccountSession());
request.SetRequestHeader("Requester", "BerryDashClient");
@@ -96,7 +98,7 @@ public class AccountLoggedIn : MonoBehaviour {
loggedInLoadButton.interactable = true;
loggedInRefreshLoginButton.interactable = true;
loggedInLogoutButton.interactable = true;
loggedInBackButton.interactable = true;
AccountHandler.instance.backButton.interactable = true;
Tools.UpdateStatusText(loggedInText, "Failed to make HTTP request", Color.red);
return;
}
@@ -122,6 +124,6 @@ public class AccountLoggedIn : MonoBehaviour {
loggedInLoadButton.interactable = true;
loggedInRefreshLoginButton.interactable = true;
loggedInLogoutButton.interactable = true;
loggedInBackButton.interactable = true;
AccountHandler.instance.backButton.interactable = true;
}
}
@@ -5,7 +5,9 @@ public class AccountLoggedOut : MonoBehaviour {
[SerializeField] private Button loggedOutLoginButton;
[SerializeField] private Button loggedOutRegisterButton;
void Awake() {
void OnEnable() {
loggedOutLoginButton.onClick.RemoveAllListeners();
loggedOutRegisterButton.onClick.RemoveAllListeners();
loggedOutLoginButton.onClick.AddListener(() => AccountHandler.instance.SwitchPanel(2));
loggedOutRegisterButton.onClick.AddListener(() => AccountHandler.instance.SwitchPanel(3));
}
+22 -21
View File
@@ -11,39 +11,40 @@ public class AccountLogin : MonoBehaviour {
[SerializeField] private TMP_InputField loginPasswordInput;
[SerializeField] private Button forgotUsernameButton;
[SerializeField] private Button forgotPasswordButton;
[SerializeField] private Button loginBackButton;
[SerializeField] private Button loginSubmitButton;
void Awake() {
loginUsernameInput.onSelect.AddListener((_) => loginUsernameInput.caretPosition = loginUsernameInput.text.Length);
loginPasswordInput.onSelect.AddListener((_) => loginPasswordInput.caretPosition = loginPasswordInput.text.Length);
loginBackButton.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.accountForgotDetails.forgotDetailsBackButton.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.accountForgotDetails.forgotDetailsBackButton.interactable = true;
AccountHandler.instance.accountForgotDetails.forgotDetailsSubmitButton.interactable = true;
});
}
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() {
loginBackButton.interactable = false;
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);
@@ -58,7 +59,7 @@ public class AccountLogin : MonoBehaviour {
request.SetRequestHeader("ClientPlatform", Application.platform.ToString());
await request.SendWebRequest();
if (request.downloadHandler.text == null) {
loginBackButton.interactable = true;
AccountHandler.instance.backButton.interactable = true;
loginSubmitButton.interactable = true;
Tools.UpdateStatusText(loginPanelStatusText, "Failed to make HTTP request", Color.red);
return;
@@ -73,7 +74,7 @@ public class AccountLogin : MonoBehaviour {
} else {
Tools.UpdateStatusText(loginPanelStatusText, (string)jsonResponse["message"], Color.red);
}
loginBackButton.interactable = true;
AccountHandler.instance.backButton.interactable = true;
loginSubmitButton.interactable = true;
}
}
@@ -9,24 +9,23 @@ 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 = "";
refreshLoginSubmitButton.onClick.RemoveAllListeners();
AccountHandler.instance.backButton.onClick.AddListener(() => AccountHandler.instance.SwitchPanel(0));
refreshLoginSubmitButton.onClick.AddListener(() => RefreshLogin());
}
async void RefreshLogin() {
refreshLoginBackButton.interactable = false;
AccountHandler.instance.backButton.interactable = false;
refreshLoginSubmitButton.interactable = false;
WWWForm dataForm = new();
dataForm.AddField("username", refreshLoginUsernameInput.text);
@@ -37,7 +36,7 @@ public class AccountRefreshLogin : MonoBehaviour {
request.SetRequestHeader("ClientPlatform", Application.platform.ToString());
await request.SendWebRequest();
if (request.downloadHandler.text == null) {
refreshLoginBackButton.interactable = true;
AccountHandler.instance.backButton.interactable = true;
refreshLoginSubmitButton.interactable = true;
Tools.UpdateStatusText(refreshLoginStatusText, "Failed to make HTTP request", Color.red);
return;
@@ -52,7 +51,7 @@ public class AccountRefreshLogin : MonoBehaviour {
} else {
Tools.UpdateStatusText(refreshLoginStatusText, (string)jsonResponse["message"], Color.red);
}
refreshLoginBackButton.interactable = true;
AccountHandler.instance.backButton.interactable = true;
refreshLoginSubmitButton.interactable = true;
}
}
+5 -15
View File
@@ -8,40 +8,34 @@ public class AccountRegister : MonoBehaviour {
[SerializeField] private TMP_Text registerPanelStatusText;
[SerializeField] private TMP_InputField registerUsernameInput;
[SerializeField] private TMP_InputField registerEmailInput;
[SerializeField] private TMP_InputField registerRetypeEmailInput;
[SerializeField] private TMP_InputField registerPasswordInput;
[SerializeField] private TMP_InputField registerRetypePasswordInput;
[SerializeField] private TMP_InputField registerVerifyCodeInput;
[SerializeField] private Button registerBackButton;
[SerializeField] private Button registerSubmitButton;
void Awake() {
registerUsernameInput.onSelect.AddListener((_) => registerUsernameInput.caretPosition = registerUsernameInput.text.Length);
registerEmailInput.onSelect.AddListener((_) => registerEmailInput.caretPosition = registerEmailInput.text.Length);
registerRetypeEmailInput.onSelect.AddListener((_) => registerRetypeEmailInput.caretPosition = registerRetypeEmailInput.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);
registerBackButton.onClick.AddListener(() => AccountHandler.instance.SwitchPanel(1));
registerSubmitButton.onClick.AddListener(() => SubmitRegister());
}
void OnEnable() {
registerUsernameInput.text = "";
registerEmailInput.text = "";
registerRetypeEmailInput.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 ||
registerRetypeEmailInput.text == string.Empty ||
registerPasswordInput.text == string.Empty ||
registerRetypePasswordInput.text == string.Empty ||
registerVerifyCodeInput.text == string.Empty
@@ -49,15 +43,11 @@ public class AccountRegister : MonoBehaviour {
Tools.UpdateStatusText(registerPanelStatusText, "All input fields must be filled", Color.red);
return;
}
if (registerEmailInput.text != registerRetypeEmailInput.text) {
Tools.UpdateStatusText(registerPanelStatusText, "Emails don't match", Color.red);
return;
}
if (registerPasswordInput.text != registerRetypePasswordInput.text) {
Tools.UpdateStatusText(registerPanelStatusText, "Passwords don't match", Color.red);
return;
}
registerBackButton.interactable = false;
AccountHandler.instance.backButton.interactable = false;
registerSubmitButton.interactable = false;
WWWForm dataForm = new();
dataForm.AddField("username", registerUsernameInput.text);
@@ -71,7 +61,7 @@ public class AccountRegister : MonoBehaviour {
request.SetRequestHeader("ClientPlatform", Application.platform.ToString());
await request.SendWebRequest();
if (request.downloadHandler.text == null) {
registerBackButton.interactable = true;
AccountHandler.instance.backButton.interactable = true;
registerSubmitButton.interactable = true;
Tools.UpdateStatusText(registerPanelStatusText, "Failed to make HTTP request", Color.red);
return;
@@ -82,7 +72,7 @@ public class AccountRegister : MonoBehaviour {
} else {
Tools.UpdateStatusText(registerPanelStatusText, (string)jsonResponse["message"], Color.red);
}
registerBackButton.interactable = true;
AccountHandler.instance.backButton.interactable = true;
registerSubmitButton.interactable = true;
}
}
+14 -2
View File
@@ -12,6 +12,7 @@ public class MainMenu : MonoBehaviour {
[SerializeField] private TMP_Text splashText;
[SerializeField] private Button profileButton;
[SerializeField] private ProfileMenu profilePrefab;
[SerializeField] private AccountHandler accountsPrefab;
[SerializeField] private SettingsMenu settingsPrefab;
[SerializeField] private TMP_Text copyrightText;
[SerializeField] private GameObject closePopup;
@@ -19,6 +20,7 @@ public class MainMenu : MonoBehaviour {
[SerializeField] private Button closePopupCloseButton;
[SerializeField] private Button iconMarketplaceButton;
[SerializeField] private TMP_Text iconMarketplaceButtonText;
[SerializeField] private Button accountsButton;
[SerializeField] private Button settingsButton;
void Awake() {
@@ -48,6 +50,7 @@ public class MainMenu : MonoBehaviour {
profileButton.transform.GetChild(0).GetComponent<TMP_Text>().text = BazookaManager.Instance.GetAccountName();
profileButton.onClick.AddListener(async () => {
var clone = Instantiate(profilePrefab.gameObject, profilePrefab.gameObject.transform.parent);
clone.name = "Prefab";
clone.SetActive(true);
await clone.GetComponent<ProfileMenu>().Init();
});
@@ -62,7 +65,16 @@ public class MainMenu : MonoBehaviour {
}
profileButton.gameObject.SetActive(true);
}
settingsButton.onClick.AddListener(() => Instantiate(settingsPrefab.gameObject, settingsPrefab.gameObject.transform.parent).SetActive(true));
accountsButton.onClick.AddListener(() => {
var clone = Instantiate(accountsPrefab.gameObject, accountsPrefab.gameObject.transform.parent);
clone.name = "Prefab";
clone.SetActive(true);
});
settingsButton.onClick.AddListener(() => {
var clone = Instantiate(settingsPrefab.gameObject, settingsPrefab.gameObject.transform.parent);
clone.name = "Prefab";
clone.SetActive(true);
});
if (Tools.GetLevelInfo().level < 3) {
iconMarketplaceButton.interactable = false;
@@ -71,7 +83,7 @@ public class MainMenu : MonoBehaviour {
}
void Update() {
if (Keyboard.current.escapeKey.wasPressedThisFrame && !GameObject.Find("ProfilePrefab(Clone)") && !GameObject.Find("SettingsPrefab(Clone)")) closePopup.SetActive(!closePopup.activeSelf);
if (Keyboard.current.escapeKey.wasPressedThisFrame && !GameObject.Find("Prefab")) closePopup.SetActive(!closePopup.activeSelf);
}
public static void DoSplashText(TMP_Text text, SplashEntry splash) {