diff --git a/Assets/Scripts/AccountMenu/AccountLoggedIn.cs b/Assets/Scripts/AccountMenu/AccountLoggedIn.cs index ec7de04..b51627b 100644 --- a/Assets/Scripts/AccountMenu/AccountLoggedIn.cs +++ b/Assets/Scripts/AccountMenu/AccountLoggedIn.cs @@ -1,6 +1,8 @@ using System.Numerics; +using Newtonsoft.Json; using Newtonsoft.Json.Linq; using TMPro; +using Unity.VisualScripting; using UnityEngine; using UnityEngine.Networking; using UnityEngine.SceneManagement; @@ -45,8 +47,8 @@ public class AccountLoggedIn : MonoBehaviour loggedInLoadButton.interactable = false; loggedInSaveButton.interactable = false; EncryptedWWWForm dataForm = new(); - dataForm.AddField("userName", BazookaManager.Instance.GetAccountName()); - dataForm.AddField("gameSession", BazookaManager.Instance.GetAccountSession()); + dataForm.AddField("username", BazookaManager.Instance.GetAccountName()); + dataForm.AddField("token", BazookaManager.Instance.GetAccountSession()); dataForm.AddField("highScore", BazookaManager.Instance.GetGameStoreHighScore().ToString()); dataForm.AddField("icon", BazookaManager.Instance.GetBirdIcon().ToString()); dataForm.AddField("overlay", BazookaManager.Instance.GetBirdOverlay().ToString()); @@ -56,12 +58,8 @@ public class AccountLoggedIn : MonoBehaviour dataForm.AddField("totalUltraBerries", BazookaManager.Instance.GetGameStoreTotalUltraBerries().ToString()); dataForm.AddField("totalSpeedyBerries", BazookaManager.Instance.GetGameStoreTotalSpeedyBerries().ToString()); dataForm.AddField("totalAttempts", BazookaManager.Instance.GetGameStoreTotalAttepts().ToString()); - dataForm.AddField("birdR", BazookaManager.Instance.GetColorSettingIcon()[0].ToString()); - dataForm.AddField("birdG", BazookaManager.Instance.GetColorSettingIcon()[1].ToString()); - dataForm.AddField("birdB", BazookaManager.Instance.GetColorSettingIcon()[2].ToString()); - dataForm.AddField("overlayR", BazookaManager.Instance.GetColorSettingOverlay()[0].ToString()); - dataForm.AddField("overlayG", BazookaManager.Instance.GetColorSettingOverlay()[1].ToString()); - dataForm.AddField("overlayB", BazookaManager.Instance.GetColorSettingOverlay()[2].ToString()); + dataForm.AddField("birdColor", BazookaManager.Instance.GetColorSettingIcon().ToString(Formatting.None)); + dataForm.AddField("overlayColor", BazookaManager.Instance.GetColorSettingOverlay().ToString(Formatting.None)); using UnityWebRequest request = UnityWebRequest.Post(SensitiveInfo.SERVER_DATABASE_PREFIX + "saveAccount.php", dataForm.GetWWWForm()); request.SetRequestHeader("Requester", "BerryDashClient"); request.SetRequestHeader("ClientVersion", Application.version); @@ -73,29 +71,37 @@ public class AccountLoggedIn : MonoBehaviour return; } string response = SensitiveInfo.Decrypt(request.downloadHandler.text, SensitiveInfo.SERVER_RECEIVE_TRANSFER_KEY); - switch (response) + if (response == "-999") { - case "-999": - AccountHandler.UpdateStatusText(loggedInText, "Server error while fetching data", Color.red); - break; - case "-998": - AccountHandler.UpdateStatusText(loggedInText, "Client version too outdated to access servers", Color.red); - break; - case "-997": - AccountHandler.UpdateStatusText(loggedInText, "Encryption/decryption issues", Color.red); - break; - case "-996": - AccountHandler.UpdateStatusText(loggedInText, "Can't send requests on self-built instance", Color.red); - break; - case "1": + AccountHandler.UpdateStatusText(loggedInText, "Server error while fetching data", Color.red); + return; + } + else if (response == "-998") + { + AccountHandler.UpdateStatusText(loggedInText, "Client version too outdated to access servers", Color.red); + return; + } + else if (response == "-997") + { + AccountHandler.UpdateStatusText(loggedInText, "Encryption/decryption issues", Color.red); + return; + } + else if (response == "-996") + { + AccountHandler.UpdateStatusText(loggedInText, "Can't send requests on self-built instance", Color.red); + return; + } + else + { + var jsonResponse = JObject.Parse(response); + if ((bool)jsonResponse["success"]) + { AccountHandler.UpdateStatusText(loggedInText, "Synced account", Color.green); - break; - case "-1": - AccountHandler.UpdateStatusText(loggedInText, "Failed to find info about your user (refresh login?)", Color.red); - break; - default: - AccountHandler.UpdateStatusText(loggedInText, "Unknown server response", Color.red); - break; + } + else + { + AccountHandler.UpdateStatusText(loggedInText, (string)jsonResponse["message"], Color.red); + } } loggedInLoadButton.interactable = true; loggedInSaveButton.interactable = true; @@ -106,8 +112,8 @@ public class AccountLoggedIn : MonoBehaviour loggedInLoadButton.interactable = false; loggedInSaveButton.interactable = false; EncryptedWWWForm dataForm = new(); - dataForm.AddField("userName", BazookaManager.Instance.GetAccountName()); - dataForm.AddField("gameSession", BazookaManager.Instance.GetAccountSession()); + dataForm.AddField("token", BazookaManager.Instance.GetAccountSession()); + dataForm.AddField("username", BazookaManager.Instance.GetAccountName()); using UnityWebRequest request = UnityWebRequest.Post(SensitiveInfo.SERVER_DATABASE_PREFIX + "loadAccount.php", dataForm.GetWWWForm()); request.SetRequestHeader("Requester", "BerryDashClient"); request.SetRequestHeader("ClientVersion", Application.version); @@ -119,53 +125,48 @@ public class AccountLoggedIn : MonoBehaviour return; } string response = SensitiveInfo.Decrypt(request.downloadHandler.text, SensitiveInfo.SERVER_RECEIVE_TRANSFER_KEY); - switch (response) + if (response == "-999") { - case "-999": - AccountHandler.UpdateStatusText(loggedInText, "Server error while fetching data", Color.red); - break; - case "-998": - AccountHandler.UpdateStatusText(loggedInText, "Client version too outdated to access servers", Color.red); - break; - case "-997": - AccountHandler.UpdateStatusText(loggedInText, "Encryption/decryption issues", Color.red); - break; - case "-996": - AccountHandler.UpdateStatusText(loggedInText, "Can't send requests on self-built instance", Color.red); - break; - case "-1": - AccountHandler.UpdateStatusText(loggedInText, "Failed to find info about your user (refresh login?)", Color.red); - break; - default: - var split = response.Split(":"); - if (split[0] == "1") - { - BazookaManager.Instance.SetGameStoreHighScore(BigInteger.Parse(split[1])); - BazookaManager.Instance.SetBirdIcon(int.Parse(split[2])); - BazookaManager.Instance.SetBirdOverlay(int.Parse(split[3])); - BazookaManager.Instance.SetGameStoreTotalNormalBerries(BigInteger.Parse(split[4])); - BazookaManager.Instance.SetGameStoreTotalPoisonBerries(BigInteger.Parse(split[5])); - BazookaManager.Instance.SetGameStoreTotalSlowBerries(BigInteger.Parse(split[6])); - BazookaManager.Instance.SetGameStoreTotalUltraBerries(BigInteger.Parse(split[7])); - BazookaManager.Instance.SetGameStoreTotalSpeedyBerries(BigInteger.Parse(split[8])); - BazookaManager.Instance.SetGameStoreTotalAttepts(BigInteger.Parse(split[9])); - BazookaManager.Instance.SetColorSettingIcon(new JArray( - int.Parse(split[10]), - int.Parse(split[11]), - int.Parse(split[12]) - )); - BazookaManager.Instance.SetColorSettingOverlay(new JArray( - int.Parse(split[13]), - int.Parse(split[14]), - int.Parse(split[15]) - )); - AccountHandler.UpdateStatusText(loggedInText, "Loaded account data", Color.green); - } - else - { - AccountHandler.UpdateStatusText(loggedInText, "Unknown server response", Color.red); - } - break; + AccountHandler.UpdateStatusText(loggedInText, "Server error while fetching data", Color.red); + return; + } + else if (response == "-998") + { + AccountHandler.UpdateStatusText(loggedInText, "Client version too outdated to access servers", Color.red); + return; + } + else if (response == "-997") + { + AccountHandler.UpdateStatusText(loggedInText, "Encryption/decryption issues", Color.red); + return; + } + else if (response == "-996") + { + AccountHandler.UpdateStatusText(loggedInText, "Can't send requests on self-built instance", Color.red); + return; + } + else + { + var jsonResponse = JObject.Parse(response); + if ((bool)jsonResponse["success"]) + { + BazookaManager.Instance.SetGameStoreHighScore(BigInteger.Parse((string)jsonResponse["highscore"])); + BazookaManager.Instance.SetBirdIcon((int)jsonResponse["icon"]); + BazookaManager.Instance.SetBirdOverlay((int)jsonResponse["overlay"]); + BazookaManager.Instance.SetGameStoreTotalNormalBerries(BigInteger.Parse((string)jsonResponse["totalNormalBerries"])); + BazookaManager.Instance.SetGameStoreTotalPoisonBerries(BigInteger.Parse((string)jsonResponse["totalPoisonBerries"])); + BazookaManager.Instance.SetGameStoreTotalSlowBerries(BigInteger.Parse((string)jsonResponse["totalSlowBerries"])); + BazookaManager.Instance.SetGameStoreTotalUltraBerries(BigInteger.Parse((string)jsonResponse["totalUltraBerries"])); + BazookaManager.Instance.SetGameStoreTotalSpeedyBerries(BigInteger.Parse((string)jsonResponse["totalSpeedyBerries"])); + BazookaManager.Instance.SetGameStoreTotalAttepts(BigInteger.Parse((string)jsonResponse["totalAttempts"])); + BazookaManager.Instance.SetColorSettingIcon(JArray.Parse(jsonResponse["birdColor"].ToString())); + BazookaManager.Instance.SetColorSettingOverlay(JArray.Parse(jsonResponse["overlayColor"].ToString())); + AccountHandler.UpdateStatusText(loggedInText, "Loaded account data", Color.green); + } + else + { + AccountHandler.UpdateStatusText(loggedInText, (string)jsonResponse["message"], Color.red); + } } loggedInLoadButton.interactable = true; loggedInSaveButton.interactable = true; diff --git a/Assets/Scripts/AccountMenu/AccountLogin.cs b/Assets/Scripts/AccountMenu/AccountLogin.cs index 7016eb8..e719fc1 100644 --- a/Assets/Scripts/AccountMenu/AccountLogin.cs +++ b/Assets/Scripts/AccountMenu/AccountLogin.cs @@ -1,4 +1,5 @@ using System.Numerics; +using Newtonsoft.Json; using Newtonsoft.Json.Linq; using TMPro; using UnityEngine; diff --git a/Assets/Scripts/AccountMenu/AccountRefreshLogin.cs b/Assets/Scripts/AccountMenu/AccountRefreshLogin.cs index 9ce9b55..5b751e9 100644 --- a/Assets/Scripts/AccountMenu/AccountRefreshLogin.cs +++ b/Assets/Scripts/AccountMenu/AccountRefreshLogin.cs @@ -1,4 +1,5 @@ using System.Numerics; +using Newtonsoft.Json.Linq; using TMPro; using UnityEngine; using UnityEngine.Networking; @@ -61,25 +62,21 @@ public class AccountRefreshLogin : MonoBehaviour AccountHandler.UpdateStatusText(refreshLoginStatusText, "Can't send requests on self-built instance", Color.red); return; } - else if (response == "-1") - { - AccountHandler.UpdateStatusText(refreshLoginStatusText, "Incorrect username or password", Color.red); - } - else if (response.Split(":")[0] == "1") - { - string[] array = response.Split(':'); - string session = array[1]; - string userName = array[2]; - BigInteger userId = BigInteger.Parse(array[3]); - BazookaManager.Instance.SetAccountSession(session); - BazookaManager.Instance.SetAccountName(userName); - BazookaManager.Instance.SetAccountID(userId); - AccountHandler.instance.SwitchPanel(0); - AccountHandler.UpdateStatusText(refreshLoginStatusText, "", Color.red); - } else { - AccountHandler.UpdateStatusText(refreshLoginStatusText, "Unknown server response", Color.red); + var jsonResponse = JObject.Parse(response); + 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"]["userid"])); + AccountHandler.instance.SwitchPanel(0); + AccountHandler.UpdateStatusText(refreshLoginStatusText, "", Color.red); + } + else + { + AccountHandler.UpdateStatusText(refreshLoginStatusText, (string)jsonResponse["message"], Color.red); + } } } } \ No newline at end of file