From 75f86ce90526b3f8e269ec16ab153f3ba35caa79 Mon Sep 17 00:00:00 2001 From: Lncvrt Date: Thu, 15 Jan 2026 14:42:17 -0700 Subject: [PATCH] Make leaderboards work with new servers --- Assets/Scripts/LeaderboardsMenu.cs | 847 ++++++++++++------------- Assets/Scripts/Other/Endpoints.cs | 9 + Assets/Scripts/Other/Endpoints.cs.meta | 2 + 3 files changed, 411 insertions(+), 447 deletions(-) create mode 100644 Assets/Scripts/Other/Endpoints.cs create mode 100644 Assets/Scripts/Other/Endpoints.cs.meta diff --git a/Assets/Scripts/LeaderboardsMenu.cs b/Assets/Scripts/LeaderboardsMenu.cs index 4040fc7..09cdacb 100644 --- a/Assets/Scripts/LeaderboardsMenu.cs +++ b/Assets/Scripts/LeaderboardsMenu.cs @@ -208,9 +208,7 @@ public class LeaderboardsMenu : MonoBehaviour } } UpdateStatus(true, "Loading..."); - WWWForm dataForm = new(); - dataForm.AddField("type", "0"); - using UnityWebRequest request = UnityWebRequest.Post(SensitiveInfo.SERVER_DATABASE_PREFIX + "berrydash/getTopPlayers.php", dataForm); + using UnityWebRequest request = UnityWebRequest.Get(Endpoints.LEADERBOARDS_SCORE_ENDPOINT); request.SetRequestHeader("Requester", "BerryDashClient"); request.SetRequestHeader("ClientVersion", Application.version); request.SetRequestHeader("ClientPlatform", Application.platform.ToString()); @@ -219,106 +217,98 @@ public class LeaderboardsMenu : MonoBehaviour { UpdateStatus(false); string response = request.downloadHandler.text; - if (response == "-999") - { - UpdateStatus(true, "Server error while fetching data"); - } - else if (response == "-998") - { - UpdateStatus(true, "Client version too outdated to access servers"); - } - else if (response == "-997") - { - UpdateStatus(true, "Encryption/decryption issues"); - } - else if (response == "-996") - { - UpdateStatus(true, "Can't send requests on self-built instance"); - } - else if (response == "-1") - { - UpdateStatus(true, "No entries for this leaderboard found!"); - } - else + try { var jsonResponse = JObject.Parse(response); - var entries = (JArray)jsonResponse["entries"]; - customIcons = jsonResponse["customIcons"].ToObject>(); - for (int i = 0; i < entries.Count; i++) + if ((bool)jsonResponse["success"]) { - var entry = JObject.Parse(entries[i].ToString()); - var username = (string)entry["username"]; - var highScore = BigInteger.Parse((string)entry["value"]); - var icon = (int)entry["icon"]; - var overlay = (int)entry["overlay"]; - var uid = BigInteger.Parse((string)entry["userid"]); - var birdColor = (JArray)entry["birdColor"]; - var overlayColor = (JArray)entry["overlayColor"]; - var customIcon = (string)entry["customIcon"]; - - var entryInfo = Instantiate(scoreSampleObject, scoreContent.transform); - var usernameText = entryInfo.transform.GetChild(0).GetComponent(); - var playerIcon = usernameText.transform.GetChild(0).GetComponent(); - var playerIconButton = usernameText.transform.GetChild(0).GetComponent