/// <summary> /// Uploads a players achievements for a session /// </summary> /// <returns> /// FizzyoRequestReturnType.SUCCESS is upload is successful. /// FizzyoRequestReturnType.FAILED_TO_CONNECT if connection failed. /// </returns> private FizzyoRequestReturnType PostAchievements() { if (FizzyoNetworking.loginResult != LoginReturnType.SUCCESS) { return(FizzyoRequestReturnType.FAILED_TO_CONNECT); } string achievementsToUpload = PlayerPrefs.GetString("achievementsToUpload"); if (achievementsToUpload != "") { string[] achievementsToUploadArray = achievementsToUpload.Split(','); for (int i = 0; i < achievementsToUploadArray.Length; i++) { if (achievementsToUploadArray[i] != "") { Dictionary <string, string> formData = new Dictionary <string, string>(); formData.Add("gameSecret", FizzyoFramework.Instance.FizzyoConfigurationProfile.GameSecret); formData.Add("userId", FizzyoFramework.Instance.User.UserID); var webRequest = FizzyoNetworking.PostWebRequest(FizzyoNetworking.ApiEndpoint + "games/" + FizzyoFramework.Instance.FizzyoConfigurationProfile.GameID + "/achievements/" + achievementsToUploadArray[i] + "/unlock", formData); webRequest.SendWebRequest(); while (!webRequest.isDone) { } if (webRequest.error != null) { return(FizzyoRequestReturnType.FAILED_TO_CONNECT); } } } } string achievementsToProgress = PlayerPrefs.GetString("achievementsToProgress"); string[] achievementsToProgressArray = achievementsToProgress.Split(','); AllAchievementData allUserProgress = JsonUtility.FromJson <AllAchievementData>(PlayerPrefs.GetString(FizzyoFramework.Instance.User.UserID + "AchievementProgress")); AllAchievementData allAchievements = JsonUtility.FromJson <AllAchievementData>(PlayerPrefs.GetString("achievements")); // Add achievement progress to player preferences for (int i = 0; i < achievementsToProgressArray.Length; i++) { if (achievementsToProgressArray[i] != "") { for (int j = 0; j < allUserProgress.achievements.Length; j++) { if (allUserProgress.achievements[j].id == achievementsToProgressArray[i]) { for (int k = 0; k < allAchievements.achievements.Length; k++) { if (allUserProgress.achievements[j].id == allAchievements.achievements[k].id) { allUserProgress.achievements[j].unlockProgress = allAchievements.achievements[k].unlockProgress; string newAllData = JsonUtility.ToJson(allUserProgress); PlayerPrefs.SetString(FizzyoFramework.Instance.User.UserID + "AchievementProgress", newAllData); break; } } break; } } } } return(FizzyoRequestReturnType.SUCCESS); }
/// <summary> /// Uploads a players achievements for a session /// </summary> /// <returns> /// FizzyoRequestReturnType.SUCCESS is upload is successful. /// FizzyoRequestReturnType.FAILED_TO_CONNECT if connection failed. /// </returns> private FizzyoRequestReturnType PostAchievements() //is this method necessary!? { string achievementsToUpload = PlayerPrefs.GetString("achievementsToUpload"); if (achievementsToUpload != "") { string[] achievementsToUploadArray = achievementsToUpload.Split(','); for (int i = 0; i < achievementsToUploadArray.Length; i++) { if (achievementsToUploadArray[i] != "") { string postUnlock; postUnlock = FizzyoFramework.Instance.apiPath + "api/v1/game/" + FizzyoFramework.Instance.gameID + "/achievements/" + achievementsToUploadArray[i] + "/unlock"; WWWForm form = new WWWForm(); form.AddField("gameSecret", FizzyoFramework.Instance.gameSecret); form.AddField("userId", FizzyoFramework.Instance.User.UserID); Dictionary <string, string> headers = form.headers; headers["Authorization"] = "Bearer " + FizzyoFramework.Instance.User.AccessToken; #if UNITY_UWP headers.Add("User-Agent", " FizzyoClient " + FizzyoFramework.Instance.ClientVersion); #endif byte[] rawData = form.data; WWW sendPostUnlock = new WWW(postUnlock, rawData, headers); while (!sendPostUnlock.isDone) { } if (sendPostUnlock.error != null) { return(FizzyoRequestReturnType.FAILED_TO_CONNECT); } } } PlayerPrefs.SetString("achievementsToUpload", ""); //once uploaded, reset the queue } string achievementsToProgress = PlayerPrefs.GetString("achievementsToProgress"); string[] achievementsToProgressArray = achievementsToProgress.Split(','); AllAchievementData allUserProgress = JsonUtility.FromJson <AllAchievementData>(PlayerPrefs.GetString(FizzyoFramework.Instance.User.UserID + "AchievementProgress")); AllAchievementData allAchievements = JsonUtility.FromJson <AllAchievementData>(PlayerPrefs.GetString("achievements")); // Add achievement progress to player preferences for (int i = 0; i < achievementsToProgressArray.Length; i++) { if (achievementsToProgressArray[i] != "") { for (int j = 0; j < allUserProgress.achievements.Length; j++) { if (allUserProgress.achievements[j].id == achievementsToProgressArray[i]) { for (int k = 0; k < allAchievements.achievements.Length; k++) { if (allUserProgress.achievements[j].id == allAchievements.achievements[k].id) { allUserProgress.achievements[j].unlockProgress = allAchievements.achievements[k].unlockProgress; string newAllData = JsonUtility.ToJson(allUserProgress); PlayerPrefs.SetString(FizzyoFramework.Instance.User.UserID + "AchievementProgress", newAllData); break; } } break; } } } } return(FizzyoRequestReturnType.SUCCESS); }
/// <summary> /// Uploads a players achievements for a session /// </summary> /// <returns> /// FizzyoRequestReturnType.SUCCESS is upload is successful. /// FizzyoRequestReturnType.FAILED_TO_CONNECT if connection failed. /// </returns> private FizzyoRequestReturnType PostAchievements() { string achievementsToUpload = PlayerPrefs.GetString("achievementsToUpload"); if (achievementsToUpload != "") { string[] achievementsToUploadArray = achievementsToUpload.Split(','); for (int i = 0; i < achievementsToUploadArray.Length; i++) { if (achievementsToUploadArray[i] != "") { string postUnlock; postUnlock = "https://api.fizzyo-ucl.co.uk/api/v1/game/" + FizzyoFramework.Instance.FizzyoConfigurationProfile.GameID + "/achievements/" + achievementsToUploadArray[i] + "/unlock"; WWWForm form = new WWWForm(); form.AddField("gameSecret", FizzyoFramework.Instance.FizzyoConfigurationProfile.GameSecret); form.AddField("userId", FizzyoFramework.Instance.User.UserID); Dictionary <string, string> headers = form.headers; headers["Authorization"] = "Bearer " + FizzyoFramework.Instance.User.AccessToken; byte[] rawData = form.data; WWW sendPostUnlock = new WWW(postUnlock, rawData, headers); while (!sendPostUnlock.isDone) { } if (sendPostUnlock.error != null) { return(FizzyoRequestReturnType.FAILED_TO_CONNECT); } } } } string achievementsToProgress = PlayerPrefs.GetString("achievementsToProgress"); string[] achievementsToProgressArray = achievementsToProgress.Split(','); AllAchievementData allUserProgress = JsonUtility.FromJson <AllAchievementData>(PlayerPrefs.GetString(FizzyoFramework.Instance.User.UserID + "AchievementProgress")); AllAchievementData allAchievements = JsonUtility.FromJson <AllAchievementData>(PlayerPrefs.GetString("achievements")); // Add achievement progress to player preferences for (int i = 0; i < achievementsToProgressArray.Length; i++) { if (achievementsToProgressArray[i] != "") { for (int j = 0; j < allUserProgress.achievements.Length; j++) { if (allUserProgress.achievements[j].id == achievementsToProgressArray[i]) { for (int k = 0; k < allAchievements.achievements.Length; k++) { if (allUserProgress.achievements[j].id == allAchievements.achievements[k].id) { allUserProgress.achievements[j].unlockProgress = allAchievements.achievements[k].unlockProgress; string newAllData = JsonUtility.ToJson(allUserProgress); PlayerPrefs.SetString(FizzyoFramework.Instance.User.UserID + "AchievementProgress", newAllData); break; } } break; } } } } return(FizzyoRequestReturnType.SUCCESS); }