Make leaderboards work with new servers
This commit is contained in:
@@ -208,9 +208,7 @@ public class LeaderboardsMenu : MonoBehaviour
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
UpdateStatus(true, "Loading...");
|
UpdateStatus(true, "Loading...");
|
||||||
WWWForm dataForm = new();
|
using UnityWebRequest request = UnityWebRequest.Get(Endpoints.LEADERBOARDS_SCORE_ENDPOINT);
|
||||||
dataForm.AddField("type", "0");
|
|
||||||
using UnityWebRequest request = UnityWebRequest.Post(SensitiveInfo.SERVER_DATABASE_PREFIX + "berrydash/getTopPlayers.php", dataForm);
|
|
||||||
request.SetRequestHeader("Requester", "BerryDashClient");
|
request.SetRequestHeader("Requester", "BerryDashClient");
|
||||||
request.SetRequestHeader("ClientVersion", Application.version);
|
request.SetRequestHeader("ClientVersion", Application.version);
|
||||||
request.SetRequestHeader("ClientPlatform", Application.platform.ToString());
|
request.SetRequestHeader("ClientPlatform", Application.platform.ToString());
|
||||||
@@ -219,39 +217,21 @@ public class LeaderboardsMenu : MonoBehaviour
|
|||||||
{
|
{
|
||||||
UpdateStatus(false);
|
UpdateStatus(false);
|
||||||
string response = request.downloadHandler.text;
|
string response = request.downloadHandler.text;
|
||||||
if (response == "-999")
|
try
|
||||||
{
|
|
||||||
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
|
|
||||||
{
|
{
|
||||||
var jsonResponse = JObject.Parse(response);
|
var jsonResponse = JObject.Parse(response);
|
||||||
var entries = (JArray)jsonResponse["entries"];
|
if ((bool)jsonResponse["success"])
|
||||||
customIcons = jsonResponse["customIcons"].ToObject<Dictionary<string, string>>();
|
|
||||||
for (int i = 0; i < entries.Count; i++)
|
|
||||||
{
|
{
|
||||||
var entry = JObject.Parse(entries[i].ToString());
|
var entries = (JObject)jsonResponse["data"]["entries"];
|
||||||
|
customIcons = jsonResponse["data"]["customIcons"].ToObject<Dictionary<string, string>>();
|
||||||
|
foreach (var prop in entries.Properties())
|
||||||
|
{
|
||||||
|
JObject entry = (JObject)prop.Value;
|
||||||
var username = (string)entry["username"];
|
var username = (string)entry["username"];
|
||||||
var highScore = BigInteger.Parse((string)entry["value"]);
|
var highScore = BigInteger.Parse((string)entry["value"]);
|
||||||
var icon = (int)entry["icon"];
|
var icon = (int)entry["icon"];
|
||||||
var overlay = (int)entry["overlay"];
|
var overlay = (int)entry["overlay"];
|
||||||
var uid = BigInteger.Parse((string)entry["userid"]);
|
var uid = BigInteger.Parse(prop.Name);
|
||||||
var birdColor = (JArray)entry["birdColor"];
|
var birdColor = (JArray)entry["birdColor"];
|
||||||
var overlayColor = (JArray)entry["overlayColor"];
|
var overlayColor = (JArray)entry["overlayColor"];
|
||||||
var customIcon = (string)entry["customIcon"];
|
var customIcon = (string)entry["customIcon"];
|
||||||
@@ -263,14 +243,15 @@ public class LeaderboardsMenu : MonoBehaviour
|
|||||||
var playerOverlayIcon = playerIcon.transform.GetChild(0).GetComponent<Image>();
|
var playerOverlayIcon = playerIcon.transform.GetChild(0).GetComponent<Image>();
|
||||||
var highScoreText = entryInfo.transform.GetChild(1).GetComponent<TMP_Text>();
|
var highScoreText = entryInfo.transform.GetChild(1).GetComponent<TMP_Text>();
|
||||||
|
|
||||||
|
usernameText.text = $"{username} (#{uid + 1})";
|
||||||
|
highScoreText.text += Tools.FormatWithCommas(highScore);
|
||||||
|
|
||||||
if (BazookaManager.Instance.GetAccountID() == uid)
|
if (BazookaManager.Instance.GetAccountID() == uid)
|
||||||
{
|
{
|
||||||
usernameText.color = Color.aquamarine;
|
usernameText.text = $"<color=#7FFFD4>{usernameText.text}</color>";
|
||||||
highScoreText.color = Color.aquamarine;
|
highScoreText.text = $"<color=#7FFFD4>{highScoreText.text}</color>";
|
||||||
}
|
}
|
||||||
|
|
||||||
usernameText.text = $"{username} (#{i + 1})";
|
|
||||||
highScoreText.text += Tools.FormatWithCommas(highScore);
|
|
||||||
if (customIcon == null)
|
if (customIcon == null)
|
||||||
{
|
{
|
||||||
playerIcon.sprite = Resources.Load<Sprite>("Icons/Icons/bird_" + icon);
|
playerIcon.sprite = Resources.Load<Sprite>("Icons/Icons/bird_" + icon);
|
||||||
@@ -320,6 +301,15 @@ public class LeaderboardsMenu : MonoBehaviour
|
|||||||
entryInfo.SetActive(true);
|
entryInfo.SetActive(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
UpdateStatus(true, (string)jsonResponse["message"]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
UpdateStatus(true, "Failed to fetch leaderboard stats: " + e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -344,8 +334,7 @@ public class LeaderboardsMenu : MonoBehaviour
|
|||||||
UpdateStatus(true, "Loading...");
|
UpdateStatus(true, "Loading...");
|
||||||
WWWForm dataForm = new();
|
WWWForm dataForm = new();
|
||||||
dataForm.AddField("showType", showAmount.ToString());
|
dataForm.AddField("showType", showAmount.ToString());
|
||||||
dataForm.AddField("type", "1");
|
using UnityWebRequest request = UnityWebRequest.Get(Endpoints.LEADERBOARDS_BERRY_ENDPOINT);
|
||||||
using UnityWebRequest request = UnityWebRequest.Post(SensitiveInfo.SERVER_DATABASE_PREFIX + "berrydash/getTopPlayers.php", dataForm);
|
|
||||||
request.SetRequestHeader("Requester", "BerryDashClient");
|
request.SetRequestHeader("Requester", "BerryDashClient");
|
||||||
request.SetRequestHeader("ClientVersion", Application.version);
|
request.SetRequestHeader("ClientVersion", Application.version);
|
||||||
request.SetRequestHeader("ClientPlatform", Application.platform.ToString());
|
request.SetRequestHeader("ClientPlatform", Application.platform.ToString());
|
||||||
@@ -354,39 +343,21 @@ public class LeaderboardsMenu : MonoBehaviour
|
|||||||
{
|
{
|
||||||
UpdateStatus(false);
|
UpdateStatus(false);
|
||||||
string response = request.downloadHandler.text;
|
string response = request.downloadHandler.text;
|
||||||
if (response == "-999")
|
try
|
||||||
{
|
|
||||||
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
|
|
||||||
{
|
{
|
||||||
var jsonResponse = JObject.Parse(response);
|
var jsonResponse = JObject.Parse(response);
|
||||||
var entries = (JArray)jsonResponse["entries"];
|
if ((bool)jsonResponse["success"])
|
||||||
customIcons = jsonResponse["customIcons"].ToObject<Dictionary<string, string>>();
|
|
||||||
for (int i = 0; i < entries.Count; i++)
|
|
||||||
{
|
{
|
||||||
var entry = JObject.Parse(entries[i].ToString());
|
var entries = (JObject)jsonResponse["data"]["entries"];
|
||||||
|
customIcons = jsonResponse["data"]["customIcons"].ToObject<Dictionary<string, string>>();
|
||||||
|
foreach (var prop in entries.Properties())
|
||||||
|
{
|
||||||
|
JObject entry = (JObject)prop.Value;
|
||||||
var username = (string)entry["username"];
|
var username = (string)entry["username"];
|
||||||
var highScore = BigInteger.Parse((string)entry["value"]);
|
var highScore = BigInteger.Parse((string)entry["value"]);
|
||||||
var icon = (int)entry["icon"];
|
var icon = (int)entry["icon"];
|
||||||
var overlay = (int)entry["overlay"];
|
var overlay = (int)entry["overlay"];
|
||||||
var uid = BigInteger.Parse((string)entry["userid"]);
|
var uid = BigInteger.Parse(prop.Name);
|
||||||
var birdColor = (JArray)entry["birdColor"];
|
var birdColor = (JArray)entry["birdColor"];
|
||||||
var overlayColor = (JArray)entry["overlayColor"];
|
var overlayColor = (JArray)entry["overlayColor"];
|
||||||
var customIcon = (string)entry["customIcon"];
|
var customIcon = (string)entry["customIcon"];
|
||||||
@@ -398,14 +369,15 @@ public class LeaderboardsMenu : MonoBehaviour
|
|||||||
var playerOverlayIcon = playerIcon.transform.GetChild(0).GetComponent<Image>();
|
var playerOverlayIcon = playerIcon.transform.GetChild(0).GetComponent<Image>();
|
||||||
var highScoreText = entryInfo.transform.GetChild(1).GetComponent<TMP_Text>();
|
var highScoreText = entryInfo.transform.GetChild(1).GetComponent<TMP_Text>();
|
||||||
|
|
||||||
|
usernameText.text = $"{username} (#{uid + 1})";
|
||||||
|
highScoreText.text += Tools.FormatWithCommas(highScore);
|
||||||
|
|
||||||
if (BazookaManager.Instance.GetAccountID() == uid)
|
if (BazookaManager.Instance.GetAccountID() == uid)
|
||||||
{
|
{
|
||||||
usernameText.color = Color.aquamarine;
|
usernameText.text = $"<color=#7FFFD4>{usernameText.text}</color>";
|
||||||
highScoreText.color = Color.aquamarine;
|
highScoreText.text = $"<color=#7FFFD4>{highScoreText.text}</color>";
|
||||||
}
|
}
|
||||||
|
|
||||||
usernameText.text = $"{username} (#{i + 1})";
|
|
||||||
highScoreText.text += Tools.FormatWithCommas(highScore);
|
|
||||||
if (customIcon == null)
|
if (customIcon == null)
|
||||||
{
|
{
|
||||||
playerIcon.sprite = Resources.Load<Sprite>("Icons/Icons/bird_" + icon);
|
playerIcon.sprite = Resources.Load<Sprite>("Icons/Icons/bird_" + icon);
|
||||||
@@ -455,6 +427,15 @@ public class LeaderboardsMenu : MonoBehaviour
|
|||||||
entryInfo.SetActive(true);
|
entryInfo.SetActive(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
UpdateStatus(true, (string)jsonResponse["message"]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
UpdateStatus(true, "Failed to fetch leaderboard stats: " + e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -477,9 +458,7 @@ public class LeaderboardsMenu : MonoBehaviour
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
UpdateStatus(true, "Loading...");
|
UpdateStatus(true, "Loading...");
|
||||||
WWWForm dataForm = new();
|
using UnityWebRequest request = UnityWebRequest.Get(Endpoints.LEADERBOARDS_COIN_ENDPOINT);
|
||||||
dataForm.AddField("type", "2");
|
|
||||||
using UnityWebRequest request = UnityWebRequest.Post(SensitiveInfo.SERVER_DATABASE_PREFIX + "berrydash/getTopPlayers.php", dataForm);
|
|
||||||
request.SetRequestHeader("Requester", "BerryDashClient");
|
request.SetRequestHeader("Requester", "BerryDashClient");
|
||||||
request.SetRequestHeader("ClientVersion", Application.version);
|
request.SetRequestHeader("ClientVersion", Application.version);
|
||||||
request.SetRequestHeader("ClientPlatform", Application.platform.ToString());
|
request.SetRequestHeader("ClientPlatform", Application.platform.ToString());
|
||||||
@@ -488,39 +467,21 @@ public class LeaderboardsMenu : MonoBehaviour
|
|||||||
{
|
{
|
||||||
UpdateStatus(false);
|
UpdateStatus(false);
|
||||||
string response = request.downloadHandler.text;
|
string response = request.downloadHandler.text;
|
||||||
if (response == "-999")
|
try
|
||||||
{
|
|
||||||
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
|
|
||||||
{
|
{
|
||||||
var jsonResponse = JObject.Parse(response);
|
var jsonResponse = JObject.Parse(response);
|
||||||
var entries = (JArray)jsonResponse["entries"];
|
if ((bool)jsonResponse["success"])
|
||||||
customIcons = jsonResponse["customIcons"].ToObject<Dictionary<string, string>>();
|
|
||||||
for (int i = 0; i < entries.Count; i++)
|
|
||||||
{
|
{
|
||||||
var entry = JObject.Parse(entries[i].ToString());
|
var entries = (JObject)jsonResponse["data"]["entries"];
|
||||||
|
customIcons = jsonResponse["data"]["customIcons"].ToObject<Dictionary<string, string>>();
|
||||||
|
foreach (var prop in entries.Properties())
|
||||||
|
{
|
||||||
|
JObject entry = (JObject)prop.Value;
|
||||||
var username = (string)entry["username"];
|
var username = (string)entry["username"];
|
||||||
var highScore = BigInteger.Parse((string)entry["value"]);
|
var highScore = BigInteger.Parse((string)entry["value"]);
|
||||||
var icon = (int)entry["icon"];
|
var icon = (int)entry["icon"];
|
||||||
var overlay = (int)entry["overlay"];
|
var overlay = (int)entry["overlay"];
|
||||||
var uid = BigInteger.Parse((string)entry["userid"]);
|
var uid = BigInteger.Parse(prop.Name);
|
||||||
var birdColor = (JArray)entry["birdColor"];
|
var birdColor = (JArray)entry["birdColor"];
|
||||||
var overlayColor = (JArray)entry["overlayColor"];
|
var overlayColor = (JArray)entry["overlayColor"];
|
||||||
var customIcon = (string)entry["customIcon"];
|
var customIcon = (string)entry["customIcon"];
|
||||||
@@ -532,14 +493,15 @@ public class LeaderboardsMenu : MonoBehaviour
|
|||||||
var playerOverlayIcon = playerIcon.transform.GetChild(0).GetComponent<Image>();
|
var playerOverlayIcon = playerIcon.transform.GetChild(0).GetComponent<Image>();
|
||||||
var highScoreText = entryInfo.transform.GetChild(1).GetComponent<TMP_Text>();
|
var highScoreText = entryInfo.transform.GetChild(1).GetComponent<TMP_Text>();
|
||||||
|
|
||||||
|
usernameText.text = $"{username} (#{uid + 1})";
|
||||||
|
highScoreText.text += Tools.FormatWithCommas(highScore);
|
||||||
|
|
||||||
if (BazookaManager.Instance.GetAccountID() == uid)
|
if (BazookaManager.Instance.GetAccountID() == uid)
|
||||||
{
|
{
|
||||||
usernameText.color = Color.aquamarine;
|
usernameText.text = $"<color=#7FFFD4>{usernameText.text}</color>";
|
||||||
highScoreText.color = Color.aquamarine;
|
highScoreText.text = $"<color=#7FFFD4>{highScoreText.text}</color>";
|
||||||
}
|
}
|
||||||
|
|
||||||
usernameText.text = $"{username} (#{i + 1})";
|
|
||||||
highScoreText.text += Tools.FormatWithCommas(highScore);
|
|
||||||
if (customIcon == null)
|
if (customIcon == null)
|
||||||
{
|
{
|
||||||
playerIcon.sprite = Resources.Load<Sprite>("Icons/Icons/bird_" + icon);
|
playerIcon.sprite = Resources.Load<Sprite>("Icons/Icons/bird_" + icon);
|
||||||
@@ -589,6 +551,15 @@ public class LeaderboardsMenu : MonoBehaviour
|
|||||||
entryInfo.SetActive(true);
|
entryInfo.SetActive(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
UpdateStatus(true, (string)jsonResponse["message"]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
UpdateStatus(true, "Failed to fetch leaderboard stats: " + e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -610,9 +581,7 @@ public class LeaderboardsMenu : MonoBehaviour
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
UpdateStatus(true, "Loading...");
|
UpdateStatus(true, "Loading...");
|
||||||
WWWForm dataForm = new();
|
using UnityWebRequest request = UnityWebRequest.Get(Endpoints.LEADERBOARDS_LEGACY_ENDPOINT);
|
||||||
dataForm.AddField("type", "3");
|
|
||||||
using UnityWebRequest request = UnityWebRequest.Post(SensitiveInfo.SERVER_DATABASE_PREFIX + "berrydash/getTopPlayers.php", dataForm);
|
|
||||||
request.SetRequestHeader("Requester", "BerryDashClient");
|
request.SetRequestHeader("Requester", "BerryDashClient");
|
||||||
request.SetRequestHeader("ClientVersion", Application.version);
|
request.SetRequestHeader("ClientVersion", Application.version);
|
||||||
request.SetRequestHeader("ClientPlatform", Application.platform.ToString());
|
request.SetRequestHeader("ClientPlatform", Application.platform.ToString());
|
||||||
@@ -621,39 +590,21 @@ public class LeaderboardsMenu : MonoBehaviour
|
|||||||
{
|
{
|
||||||
UpdateStatus(false);
|
UpdateStatus(false);
|
||||||
string response = request.downloadHandler.text;
|
string response = request.downloadHandler.text;
|
||||||
if (response == "-999")
|
try
|
||||||
{
|
|
||||||
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
|
|
||||||
{
|
{
|
||||||
var jsonResponse = JObject.Parse(response);
|
var jsonResponse = JObject.Parse(response);
|
||||||
var entries = (JArray)jsonResponse["entries"];
|
if ((bool)jsonResponse["success"])
|
||||||
customIcons = jsonResponse["customIcons"].ToObject<Dictionary<string, string>>();
|
|
||||||
for (int i = 0; i < entries.Count; i++)
|
|
||||||
{
|
{
|
||||||
var entry = JObject.Parse(entries[i].ToString());
|
var entries = (JObject)jsonResponse["data"]["entries"];
|
||||||
|
customIcons = jsonResponse["data"]["customIcons"].ToObject<Dictionary<string, string>>();
|
||||||
|
foreach (var prop in entries.Properties())
|
||||||
|
{
|
||||||
|
JObject entry = (JObject)prop.Value;
|
||||||
var username = (string)entry["username"];
|
var username = (string)entry["username"];
|
||||||
var highScore = BigInteger.Parse((string)entry["value"]);
|
var highScore = BigInteger.Parse((string)entry["value"]);
|
||||||
var icon = (int)entry["icon"];
|
var icon = (int)entry["icon"];
|
||||||
var overlay = (int)entry["overlay"];
|
var overlay = (int)entry["overlay"];
|
||||||
var uid = BigInteger.Parse((string)entry["userid"]);
|
var uid = BigInteger.Parse(prop.Name);
|
||||||
var birdColor = (JArray)entry["birdColor"];
|
var birdColor = (JArray)entry["birdColor"];
|
||||||
var overlayColor = (JArray)entry["overlayColor"];
|
var overlayColor = (JArray)entry["overlayColor"];
|
||||||
var customIcon = (string)entry["customIcon"];
|
var customIcon = (string)entry["customIcon"];
|
||||||
@@ -665,14 +616,15 @@ public class LeaderboardsMenu : MonoBehaviour
|
|||||||
var playerOverlayIcon = playerIcon.transform.GetChild(0).GetComponent<Image>();
|
var playerOverlayIcon = playerIcon.transform.GetChild(0).GetComponent<Image>();
|
||||||
var highScoreText = entryInfo.transform.GetChild(1).GetComponent<TMP_Text>();
|
var highScoreText = entryInfo.transform.GetChild(1).GetComponent<TMP_Text>();
|
||||||
|
|
||||||
|
usernameText.text = $"{username} (#{uid + 1})";
|
||||||
|
highScoreText.text += Tools.FormatWithCommas(highScore);
|
||||||
|
|
||||||
if (BazookaManager.Instance.GetAccountID() == uid)
|
if (BazookaManager.Instance.GetAccountID() == uid)
|
||||||
{
|
{
|
||||||
usernameText.color = Color.aquamarine;
|
usernameText.text = $"<color=#7FFFD4>{usernameText.text}</color>";
|
||||||
highScoreText.color = Color.aquamarine;
|
highScoreText.text = $"<color=#7FFFD4>{highScoreText.text}</color>";
|
||||||
}
|
}
|
||||||
|
|
||||||
usernameText.text = $"{username} (#{i + 1})";
|
|
||||||
highScoreText.text += Tools.FormatWithCommas(highScore);
|
|
||||||
if (customIcon == null)
|
if (customIcon == null)
|
||||||
{
|
{
|
||||||
playerIcon.sprite = Resources.Load<Sprite>("Icons/Icons/bird_" + icon);
|
playerIcon.sprite = Resources.Load<Sprite>("Icons/Icons/bird_" + icon);
|
||||||
@@ -722,6 +674,15 @@ public class LeaderboardsMenu : MonoBehaviour
|
|||||||
entryInfo.SetActive(true);
|
entryInfo.SetActive(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
UpdateStatus(true, (string)jsonResponse["message"]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
UpdateStatus(true, "Failed to fetch leaderboard stats: " + e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -745,7 +706,7 @@ public class LeaderboardsMenu : MonoBehaviour
|
|||||||
UpdateStatus(true, "Loading...");
|
UpdateStatus(true, "Loading...");
|
||||||
WWWForm dataForm = new();
|
WWWForm dataForm = new();
|
||||||
dataForm.AddField("type", "4");
|
dataForm.AddField("type", "4");
|
||||||
using UnityWebRequest request = UnityWebRequest.Post(SensitiveInfo.SERVER_DATABASE_PREFIX + "berrydash/getTopPlayers.php", dataForm);
|
using UnityWebRequest request = UnityWebRequest.Get(Endpoints.LEADERBOARDS_TOTAL_ENDPOINT);
|
||||||
request.SetRequestHeader("Requester", "BerryDashClient");
|
request.SetRequestHeader("Requester", "BerryDashClient");
|
||||||
request.SetRequestHeader("ClientVersion", Application.version);
|
request.SetRequestHeader("ClientVersion", Application.version);
|
||||||
request.SetRequestHeader("ClientPlatform", Application.platform.ToString());
|
request.SetRequestHeader("ClientPlatform", Application.platform.ToString());
|
||||||
@@ -754,39 +715,21 @@ public class LeaderboardsMenu : MonoBehaviour
|
|||||||
{
|
{
|
||||||
UpdateStatus(false);
|
UpdateStatus(false);
|
||||||
string response = request.downloadHandler.text;
|
string response = request.downloadHandler.text;
|
||||||
if (response == "-999")
|
try
|
||||||
{
|
|
||||||
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
|
|
||||||
{
|
{
|
||||||
var jsonResponse = JObject.Parse(response);
|
var jsonResponse = JObject.Parse(response);
|
||||||
var entries = (JArray)jsonResponse["entries"];
|
if ((bool)jsonResponse["success"])
|
||||||
customIcons = jsonResponse["customIcons"].ToObject<Dictionary<string, string>>();
|
|
||||||
for (int i = 0; i < entries.Count; i++)
|
|
||||||
{
|
{
|
||||||
var entry = JObject.Parse(entries[i].ToString());
|
var entries = (JObject)jsonResponse["data"]["entries"];
|
||||||
|
customIcons = jsonResponse["data"]["customIcons"].ToObject<Dictionary<string, string>>();
|
||||||
|
foreach (var prop in entries.Properties())
|
||||||
|
{
|
||||||
|
JObject entry = (JObject)prop.Value;
|
||||||
var username = (string)entry["username"];
|
var username = (string)entry["username"];
|
||||||
var highScore = BigInteger.Parse((string)entry["value"]);
|
var highScore = BigInteger.Parse((string)entry["value"]);
|
||||||
var icon = (int)entry["icon"];
|
var icon = (int)entry["icon"];
|
||||||
var overlay = (int)entry["overlay"];
|
var overlay = (int)entry["overlay"];
|
||||||
var uid = BigInteger.Parse((string)entry["userid"]);
|
var uid = BigInteger.Parse(prop.Name);
|
||||||
var birdColor = (JArray)entry["birdColor"];
|
var birdColor = (JArray)entry["birdColor"];
|
||||||
var overlayColor = (JArray)entry["overlayColor"];
|
var overlayColor = (JArray)entry["overlayColor"];
|
||||||
var customIcon = (string)entry["customIcon"];
|
var customIcon = (string)entry["customIcon"];
|
||||||
@@ -798,14 +741,15 @@ public class LeaderboardsMenu : MonoBehaviour
|
|||||||
var playerOverlayIcon = playerIcon.transform.GetChild(0).GetComponent<Image>();
|
var playerOverlayIcon = playerIcon.transform.GetChild(0).GetComponent<Image>();
|
||||||
var highScoreText = entryInfo.transform.GetChild(1).GetComponent<TMP_Text>();
|
var highScoreText = entryInfo.transform.GetChild(1).GetComponent<TMP_Text>();
|
||||||
|
|
||||||
|
usernameText.text = $"{username} (#{uid + 1})";
|
||||||
|
highScoreText.text += Tools.FormatWithCommas(highScore);
|
||||||
|
|
||||||
if (BazookaManager.Instance.GetAccountID() == uid)
|
if (BazookaManager.Instance.GetAccountID() == uid)
|
||||||
{
|
{
|
||||||
usernameText.color = Color.aquamarine;
|
usernameText.text = $"<color=#7FFFD4>{usernameText.text}</color>";
|
||||||
highScoreText.color = Color.aquamarine;
|
highScoreText.text = $"<color=#7FFFD4>{highScoreText.text}</color>";
|
||||||
}
|
}
|
||||||
|
|
||||||
usernameText.text = $"{username} (#{i + 1})";
|
|
||||||
highScoreText.text += Tools.FormatWithCommas(highScore);
|
|
||||||
if (customIcon == null)
|
if (customIcon == null)
|
||||||
{
|
{
|
||||||
playerIcon.sprite = Resources.Load<Sprite>("Icons/Icons/bird_" + icon);
|
playerIcon.sprite = Resources.Load<Sprite>("Icons/Icons/bird_" + icon);
|
||||||
@@ -855,6 +799,15 @@ public class LeaderboardsMenu : MonoBehaviour
|
|||||||
entryInfo.SetActive(true);
|
entryInfo.SetActive(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
UpdateStatus(true, (string)jsonResponse["message"]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
UpdateStatus(true, "Failed to fetch leaderboard stats: " + e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
9
Assets/Scripts/Other/Endpoints.cs
Normal file
9
Assets/Scripts/Other/Endpoints.cs
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
public class Endpoints
|
||||||
|
{
|
||||||
|
public static readonly string BASE_URL = "https://games.lncvrt.xyz/api";
|
||||||
|
public static readonly string LEADERBOARDS_SCORE_ENDPOINT = BASE_URL + "/berrydash/leaderboards/score";
|
||||||
|
public static readonly string LEADERBOARDS_BERRY_ENDPOINT = BASE_URL + "/berrydash/leaderboards/berry";
|
||||||
|
public static readonly string LEADERBOARDS_COIN_ENDPOINT = BASE_URL + "/berrydash/leaderboards/coin";
|
||||||
|
public static readonly string LEADERBOARDS_LEGACY_ENDPOINT = BASE_URL + "/berrydash/leaderboards/legacy";
|
||||||
|
public static readonly string LEADERBOARDS_TOTAL_ENDPOINT = BASE_URL + "/berrydash/leaderboards/total";
|
||||||
|
}
|
||||||
2
Assets/Scripts/Other/Endpoints.cs.meta
Normal file
2
Assets/Scripts/Other/Endpoints.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0bd49a8a30eae454ab076e86982db0d5
|
||||||
Reference in New Issue
Block a user