68 lines
2.4 KiB
C#
68 lines
2.4 KiB
C#
using System.Threading.Tasks;
|
|
using TMPro;
|
|
using UnityEngine;
|
|
using UnityEngine.Networking;
|
|
using UnityEngine.SceneManagement;
|
|
|
|
public class PresistentData : MonoBehaviour
|
|
{
|
|
public static PresistentData Instance;
|
|
private bool loadingDone = false;
|
|
public static string latestVersion = null;
|
|
public static string[] randomSplashes = null;
|
|
|
|
private async void Awake()
|
|
{
|
|
if (Instance != null && Instance != this)
|
|
{
|
|
Destroy(gameObject);
|
|
return;
|
|
}
|
|
|
|
Instance = this;
|
|
DontDestroyOnLoad(gameObject);
|
|
if (!loadingDone)
|
|
{
|
|
loadingDone = true;
|
|
await GetLatestVersion();
|
|
await GetRandomSplashes();
|
|
}
|
|
}
|
|
|
|
private async static Task GetLatestVersion()
|
|
{
|
|
using UnityWebRequest request = UnityWebRequest.Get(Endpoints.LATEST_VERSION_ENDPOINT);
|
|
request.SetRequestHeader("Requester", "BerryDashClient");
|
|
request.SetRequestHeader("ClientVersion", Application.version);
|
|
request.SetRequestHeader("ClientPlatform", Application.platform.ToString());
|
|
await request.SendWebRequest();
|
|
latestVersion = request.downloadHandler.text ?? "-1";
|
|
if (
|
|
SceneManager.GetActiveScene().name == "MainMenu" &&
|
|
latestVersion != "-1" &&
|
|
GameObject.Find("Canvas/LatestVersionText").TryGetComponent<TextMeshProUGUI>(out var text)
|
|
)
|
|
{
|
|
text.text = "Latest: v" + latestVersion ?? "N/A";
|
|
text.transform.GetChild(0).gameObject.SetActive(latestVersion != Application.version);
|
|
}
|
|
}
|
|
|
|
private async static Task GetRandomSplashes()
|
|
{
|
|
using UnityWebRequest request = UnityWebRequest.Get(Endpoints.RANDOM_SPLASHES_ENDPOINT);
|
|
request.SetRequestHeader("Requester", "BerryDashClient");
|
|
request.SetRequestHeader("ClientVersion", Application.version);
|
|
request.SetRequestHeader("ClientPlatform", Application.platform.ToString());
|
|
await request.SendWebRequest();
|
|
randomSplashes = request.downloadHandler.text.Split("\n") ?? null;
|
|
if (
|
|
SceneManager.GetActiveScene().name == "MainMenu" &&
|
|
randomSplashes != null &&
|
|
GameObject.Find("Canvas/SplashText").TryGetComponent<TextMeshProUGUI>(out var text)
|
|
)
|
|
{
|
|
text.text = randomSplashes[Random.Range(0, randomSplashes.Length)];
|
|
}
|
|
}
|
|
} |