/// <summary> /// Remove a user from the JSON file /// </summary> public static void RemoveUser(string username) { JsonUser[] jsonUsers = GetAllUsers(); if (jsonUsers == null) { jsonUsers = new JsonUser[0]; } for (int i = 0; i < jsonUsers.Length; i++) { if (jsonUsers[i].Username.Equals(username)) { JsonUser[] users = new JsonUser[jsonUsers.Length - 1]; int u = 0; for (int n = 0; n < jsonUsers.Length; n++) { if (!jsonUsers[n].Username.Equals(username)) { users[n - u] = jsonUsers[n]; } else { u++; } } return; } } }
/// <summary> /// Retrieves a user /// </summary> public static JsonUser GetUser(string username) { JsonUser[] jsonUsers = GetAllUsers(); if (jsonUsers == null) { jsonUsers = new JsonUser[0]; } for (int i = 0; i < jsonUsers.Length; i++) { if (jsonUsers[i].Username.Equals(username)) { return(jsonUsers[i]); } } return(null); }
/// <summary> /// Checks if the username is already taken /// </summary> static bool IsUsernameTaken(string username) { JsonUser[] jsonUsers = GetAllUsers(); if (jsonUsers == null) { jsonUsers = new JsonUser[0]; } for (int i = 0; i < jsonUsers.Length; i++) { if (jsonUsers[i].Username.Equals(username)) { return(true); } } return(false); }
/// <summary> /// Gets the level data from a user /// </summary> public static Level GetUserLevelData(string username, string levelName, string levelTitle) { JsonUser user = GetUser(username); if (user.Levels != null) { for (int i = 0; i < user.Levels.Length; i++) { if (user.Levels[i].LevelTitle.Equals(levelTitle) && user.Levels[i].LevelName.Equals(levelName)) { return(user.Levels[i]); } } } return(null); }
/// <summary> /// Update level stats to reflect latest stats /// </summary> public static void ModifyLevelJson(string username, Level level) { JsonUser[] jsonUsers = GetAllUsers(); if (jsonUsers == null) { jsonUsers = new JsonUser[0]; } for (int i = 0; i < jsonUsers.Length; i++) { //JsonUser user = jsonUsers[i]; if (jsonUsers[i].Username.Equals(username)) { if (jsonUsers[i].Levels != null) { for (int n = 0; n < jsonUsers[i].Levels.Length; n++) { if (jsonUsers[i].Levels[n].LevelTitle.Equals(level.LevelTitle) && jsonUsers[i].Levels[n].LevelName.Equals(level.LevelName)) { jsonUsers[i].Levels[n] = level; JsonWrapper jW1 = new JsonWrapper(); jW1.users = jsonUsers; string j = JsonUtility.ToJson(jW1, true); File.WriteAllText(Application.streamingAssetsPath + user_path, j); return; } } } //level not found Level[] levels = new Level[jsonUsers[i].Levels.Length + 1]; for (int n = 0; n < jsonUsers[i].Levels.Length; n++) { levels[n] = jsonUsers[i].Levels[n]; } levels[levels.Length - 1] = level; jsonUsers[i].Levels = levels; jsonUsers[i].Progress = levels.Length; JsonWrapper jW = new JsonWrapper(); jW.users = jsonUsers; string json = JsonUtility.ToJson(jW); File.WriteAllText(Application.streamingAssetsPath + user_path, json); return; } } }
/// <summary> /// Create and add a user to the JSON file /// </summary> public static bool CreateUser(string username) { if (!IsUsernameTaken(username)) { JsonUser[] jsonUsers = GetAllUsers(); if (jsonUsers == null) { jsonUsers = new JsonUser[0]; } JsonUser[] users = new JsonUser[jsonUsers.Length + 1]; for (int i = 0; i < jsonUsers.Length; i++) { users[i] = jsonUsers[i]; } users[users.Length - 1] = new JsonUser(username, 0, new Level[0]); JsonWrapper j = new JsonWrapper(); j.users = users; string json = JsonUtility.ToJson(j, true); File.WriteAllText(Application.streamingAssetsPath + user_path, json); return(true); } return(false); }