public async Task <PlayerStatBlock> GetUserStatsFromDBAsync() { //ConnectionManager.OpenInstanceConnection(); DbCommand dbCommand = ConnectionManager.GetConnection().CreateCommand(); string selectQuery = "SELECT nodesHarvested, distanceTraveled, goldEarned FROM UserStats WHERE UserID = @ID;"; ConnectionManager.CreateNamedParamater("@ID", UserSessionManager.GetID(), dbCommand); dbCommand.CommandText = selectQuery; Task <DbDataReader> readerTask = dbCommand.ExecuteReaderAsync(); PlayerStatBlock statBlock = new PlayerStatBlock(); DbDataReader reader = await readerTask; while (reader.Read()) { statBlock.totalGatheringPointsHarvested = reader.GetInt32(0); statBlock.totalDistanceTraveled = reader.GetFloat(1); statBlock.totalGoldCollected = reader.GetInt32(2); } reader.Close(); reader.Dispose(); dbCommand.Dispose(); //ConnectionManager.CloseInstanceConnection(); return(statBlock); }
public async Task UpdatePlayerAchievementUnlockAsync(EAchievements achievement, bool unlocked) { //ConnectionManager.OpenInstanceConnection(); DbCommand dbCommand = ConnectionManager.GetConnection().CreateCommand(); Debug.Log("Unlock Attempt"); Debug.Log((int)achievement); int dbbool = 0; if (unlocked) { dbbool = 1; } string updateQuery = "UPDATE PlayerAchievements SET unlocked = @unlocked WHERE playerID = @uID AND achievementID = @aID;"; ConnectionManager.CreateNamedParamater("@unlocked", dbbool, dbCommand); ConnectionManager.CreateNamedParamater("@uID", UserSessionManager.GetID(), dbCommand); ConnectionManager.CreateNamedParamater("@aID", (int)achievement, dbCommand); dbCommand.CommandText = updateQuery; await Task.Run(() => dbCommand.ExecuteNonQuery()); dbCommand.Dispose(); //ConnectionManager.CloseInstanceConnection(); }
public async Task UpdatePlayerStatAsync(EUserStats userStat, PlayerStatBlock statBlock) { DbCommand dbCommand = ConnectionManager.GetConnection().CreateCommand(); string updateQuery = "UPDATE UserStats SET " + userStat.ToString() + " = @" + userStat.ToString() + " WHERE userID = @ID;"; ConnectionManager.CreateNamedParamater("@ID", UserSessionManager.GetID(), dbCommand); switch (userStat) { case EUserStats.distanceTraveled: ConnectionManager.CreateNamedParamater("@" + userStat.ToString(), statBlock.totalDistanceTraveled, dbCommand); break; case EUserStats.goldEarned: ConnectionManager.CreateNamedParamater("@" + userStat.ToString(), statBlock.totalGoldCollected, dbCommand); break; case EUserStats.nodesHarvested: ConnectionManager.CreateNamedParamater("@" + userStat.ToString(), statBlock.totalGatheringPointsHarvested, dbCommand); break; default: break; } dbCommand.CommandText = updateQuery; await Task.Run(() => dbCommand.ExecuteNonQuery()); dbCommand.Dispose(); }
public async Task SaveFullPlayerStatusAsync() { var playerPos = playerObject.GetComponent <Transform>().position; var playerGold = playerObject.GetComponent <PlayerData>().GetGoldHeld(); string updateQuery = "UPDATE PlayerStatus SET posX = @posX, posY = @posY, posZ = @posZ, goldCount = @currentGold WHERE playerID = @id;"; //ConnectionManager.OpenInstanceConnection(); DbCommand dbCommand = ConnectionManager.GetConnection().CreateCommand(); ConnectionManager.CreateNamedParamater("@posX", playerPos.x, dbCommand); ConnectionManager.CreateNamedParamater("@posY", playerPos.y, dbCommand); ConnectionManager.CreateNamedParamater("@posZ", playerPos.z, dbCommand); ConnectionManager.CreateNamedParamater("@currentGold", playerGold, dbCommand); ConnectionManager.CreateNamedParamater("id", UserSessionManager.GetID(), dbCommand); dbCommand.CommandText = updateQuery; await Task.Run(() => dbCommand.ExecuteNonQuery()); dbCommand.Dispose(); //ConnectionManager.CloseInstanceConnection(); }
void DEBUGTestUserInfoInput() { if (Input.GetKeyDown(KeyCode.G)) { Debug.Log(UserSessionManager.GetUsername()); Debug.Log(UserSessionManager.GetID()); } }
public async void ClickVerify() { _mHandler = GameObject.FindObjectOfType <MenuHandler>(); _aConnection = GameObject.FindObjectOfType <AccountConnection>(); InputField codeInputField = null; InputField nameInputField = null; var test = GameObject.FindObjectsOfType <InputField>(); foreach (InputField x in test) { switch (x.name) { case nameof(EInputFieldNames.UsernameInputField): nameInputField = x; break; case nameof(EInputFieldNames.PasswordInputField): codeInputField = x; break; } } try { _username = nameInputField.text; _passcode = codeInputField.text; } catch (NullReferenceException) { throw new NullReferenceException("ClickVerify: Use of unassigned InputField."); } //Now that we have the input field info, we can toggle off the login canvas _mHandler.ToggleCanvas(_mHandler.GetLoginCanvas()); Task <BoolStringResult> verifyAccountTask = _aConnection.VerifyAccountAsync(_username, _passcode); var result = await verifyAccountTask; Debug.Log(result._successful); Task authTask = _aConnection.GrantAuthAsync(result._successful, _username); _mHandler.UpdateConfirmationMessageText(result._stringMessage + " Login", result._successful); if (result._successful) { _mHandler.SetPrevCanvas(_mHandler.GetMainMenuCanvas()); } _mHandler.ToggleCanvas(_mHandler.GetLoadingCanvas()); _mHandler.ToggleCanvas(_mHandler.GetMessageCanvas()); if (authTask.IsCompleted) { Debug.Log(UserSessionManager.GetUsername()); Debug.Log(UserSessionManager.GetID()); } }
public async Task <PlayerAchievementBlock> GetUserAchievementsFromDBAsync() { PlayerAchievementBlock achievementBlock = new PlayerAchievementBlock(); //ConnectionManager.OpenInstanceConnection(); DbCommand dbCommand = ConnectionManager.GetConnection().CreateCommand(); string selectQuery = "SELECT achievementID, unlocked FROM PlayerAchievements WHERE playerID = @ID;"; ConnectionManager.CreateNamedParamater("@ID", UserSessionManager.GetID(), dbCommand); dbCommand.CommandText = selectQuery; Task <DbDataReader> readerTask = dbCommand.ExecuteReaderAsync(); DbDataReader reader = await readerTask; while (reader.Read()) { bool isUnlocked = false; int achieveID = reader.GetInt32(0); int unlockedint = reader.GetInt32(1); //Bool is stored as int in SQLite, convert if (unlockedint == 1) { isUnlocked = true; } switch (achieveID) { case (int)EAchievements.TotalGathers: achievementBlock.totalGathersUnlocked = isUnlocked; break; case (int)EAchievements.DistanceTraveled: achievementBlock.totalDistanceUnlocked = isUnlocked; break; case (int)EAchievements.TotalGold: achievementBlock.totalGoldUnlocked = isUnlocked; break; } } reader.Close(); reader.Dispose(); dbCommand.Dispose(); //ConnectionManager.CloseInstanceConnection(); return(achievementBlock); }
public async Task UpdatePlayerStatsAllAsync(PlayerStatBlock statBlock) { //ConnectionManager.OpenInstanceConnection(); DbCommand dbCommand = ConnectionManager.GetConnection().CreateCommand(); string updateQuery = "UPDATE UserStats SET nodesHarvested = @nodesHarvested, distanceTraveled = @distanceTraveled, goldEarned = @goldEarned WHERE userID = @ID;"; ConnectionManager.CreateNamedParamater("@nodesHarvested", statBlock.totalGatheringPointsHarvested, dbCommand); ConnectionManager.CreateNamedParamater("@distanceTraveled", statBlock.totalDistanceTraveled, dbCommand); ConnectionManager.CreateNamedParamater("@goldEarned", statBlock.totalGoldCollected, dbCommand); ConnectionManager.CreateNamedParamater("@ID", UserSessionManager.GetID(), dbCommand); dbCommand.CommandText = updateQuery; await Task.Run(() => dbCommand.ExecuteNonQuery()); dbCommand.Dispose(); //ConnectionManager.CloseInstanceConnection(); }
//public async Task AsyncSavePlayerGoldStatus() //{ // var playerGold = playerObject.GetComponent<PlayerData>().GetGoldHeld(); // string updateQuery = "UPDATE PlayerStatus SET goldCount = @currentGold WHERE playerID = @id;"; // //ConnectionManager.OpenInstanceConnection(); // DbCommand dbCommand = ConnectionManager.GetConnection().CreateCommand(); // ConnectionManager.CreateNamedParamater("@currentGold", playerGold, dbCommand); // ConnectionManager.CreateNamedParamater("@id", UserSessionManager.GetID(), dbCommand); // dbCommand.CommandText = updateQuery; // await Task.FromResult(dbCommand.ExecuteNonQuery()); // dbCommand.Dispose(); // //ConnectionManager.CloseInstanceConnection(); //} async public Task LoadPlayerStatusAsync() { //Default pos Vector3 loadPos = new Vector3(150, 1, 150); int loadGold = 0; string selectQuery = "SELECT * FROM PlayerStatus WHERE playerID = @id;"; //ConnectionManager.OpenInstanceConnection(); DbCommand dbCommand = ConnectionManager.GetConnection().CreateCommand(); ConnectionManager.CreateNamedParamater("@id", UserSessionManager.GetID(), dbCommand); dbCommand.CommandText = selectQuery; Task <DbDataReader> readerTask = dbCommand.ExecuteReaderAsync(); DbDataReader reader = await readerTask; while (reader.Read()) { //Columns are: Id, posx, posy, posz, gold loadPos = new Vector3(reader.GetFloat(1), reader.GetFloat(2), reader.GetFloat(3)); loadGold = reader.GetInt32(4); } reader.Close(); reader.Dispose(); dbCommand.Dispose(); //ConnectionManager.CloseInstanceConnection(); var pData = playerObject.GetComponent <PlayerData>(); int initGoldVal = pData.GetGoldHeld(); if (initGoldVal != 0) { pData.UpdatePlayerGold(-initGoldVal); } pData.UpdatePlayerGold(loadGold); playerObject.GetComponent <Transform>().position = loadPos; }