Ejemplo n.º 1
0
    private IEnumerator PostScore(HighScoreEntry score, Keraysera era)
    {
        while (Settings.token == "")
        {
            yield return(null);
        }
        var newScore = JsonUtility.ToJson(score);

        using (var www = UnityWebRequest.Put(uri + era.pokaName + "/" + id + ".json?auth=" + Settings.token, newScore))
        {
            www.uploadHandler = new UploadHandlerRaw(Encoding.UTF8.GetBytes(newScore));
            www.timeout       = 5;
            yield return(www.SendWebRequest());

            if (www.isNetworkError || www.isHttpError)
            {
                if (Time.realtimeSinceStartup - tokenLastFetched > tokenFetchUpdateLimit)
                {
                    StartCoroutine(GetAuth());
                }
                era.onNewTimePosted(NetWorkResponse.NoConnection, "Ei internet-yhteyttä. Aikaasi ei päivitetty online-tietokantaan.");
            }
            else
            {
                era.onNewTimePosted(NetWorkResponse.Success, "Aikasi on päivitetty online-tietokantaan.");
                era.userBestTime = score.time;
            }
        }
    }
Ejemplo n.º 2
0
    private IEnumerator GetScores(Keraysera era)
    {
        while (Settings.token == "")
        {
            yield return(null);
        }
        string orderBy = "\"time\"";

        using (var www = UnityWebRequest.Get(uri + era.pokaName + ".json" + "?orderBy=" + orderBy + "&limitToFirst=100" + "&auth=" + Settings.token))
        {
            www.SetRequestHeader("Content-Type", "application/json");
            www.timeout = 5;
            var request = www.SendWebRequest();
            yield return(request);

            if (www.isNetworkError || www.isHttpError)
            {
                if (Time.realtimeSinceStartup - tokenLastFetched > tokenFetchUpdateLimit)
                {
                    StartCoroutine(GetAuth());
                }
                era.onHighScoreListLoaded(NetWorkResponse.NoConnection);
            }
            else
            {
                string result = www.downloadHandler.text;
                Dictionary <string, HighScoreEntry> entryDict = JsonConvert.DeserializeObject <Dictionary <string, HighScoreEntry> >(result);
                if (entryDict != null)
                {
                    var temp = entryDict.OrderBy(a => a.Value.time);
                    era.userLeaderBoardIndex    = temp.Select(x => x.Key).ToList().IndexOf(id);
                    era.highScoreList           = temp.Select(x => x.Value).ToList();
                    era.isHighScoreListUpdated  = true;
                    era.timeSinceLastListUpdate = Time.realtimeSinceStartup;
                    era.onHighScoreListLoaded(NetWorkResponse.Success);
                }
                else
                {
                    era.onHighScoreListLoaded(NetWorkResponse.NoData);
                }
            }
        }
    }
Ejemplo n.º 3
0
    private IEnumerator _FindUser(Keraysera era)
    {
        while (Settings.token == "")
        {
            yield return(null);
        }
        var requestUri = uri + era.pokaName + "/" + id + "/time.json" + "?shallow=true" + "&auth=" + Settings.token;

        using (var www = UnityWebRequest.Get(requestUri))
        {
            www.SetRequestHeader("Content-Type", "application/json");
            www.timeout = 5;
            var request = www.SendWebRequest();
            yield return(request);

            if (www.isNetworkError || www.isHttpError)
            {
                if (Time.realtimeSinceStartup - tokenLastFetched > tokenFetchUpdateLimit)
                {
                    StartCoroutine(GetAuth());
                }
                era.onUserBestTimeUpdated(NetWorkResponse.NoConnection, -2f);
            }
            else
            {
                string result = www.downloadHandler.text;
                if (result == "null")
                {
                    era.onUserBestTimeUpdated(NetWorkResponse.NoData, -1f);
                }
                else
                {
                    var _time = float.Parse(result, CultureInfo.InvariantCulture.NumberFormat);
                    era.userBestTime = _time;
                    era.onUserBestTimeUpdated(NetWorkResponse.Success, _time);
                }
            }
        }
    }
Ejemplo n.º 4
0
 public void FindUser(Keraysera era) => StartCoroutine(_FindUser(era));
Ejemplo n.º 5
0
 public void PostNewScore(HighScoreEntry score, Keraysera era) => StartCoroutine(PostScore(score, era));
Ejemplo n.º 6
0
 public void GetHighScores(Keraysera era) => StartCoroutine(GetScores(era));