public override object DecodePage(HttpResponseMessage responce, string htmlPage, object mydata) { try { DbAction dbRequest = (DbAction)mydata; switch (dbRequest) { case DbAction.CreateUser: string id = htmlPage.Substring(0, htmlPage.Length - 1); return(id); case DbAction.DownloadBasicData: Dictionary <string, List <string> > database = MySqlWebServer.DecodeMySqlDatabase(htmlPage); //convert to readable data Medals = Convert.ToInt32(database["Medals"][0]); Credits = Convert.ToInt32(database["Credits"][0]); Losses = Convert.ToInt32(database["Losses"][0]); Draws = Convert.ToInt32(database["Draws"][0]); Wins = Convert.ToInt32(database["Wins"][0]); SpairParts = Convert.ToInt32(database["SpairParts"][0]); Rank = Convert.ToInt32(database["Rank"][0]); Level = Convert.ToInt32(database["Level"][0]); Protection = Convert.ToInt32(database["Protection"][0]); return(database); case DbAction.SendAction: return(htmlPage); } } catch { } return(true); }
/// <summary> /// creates all the server request that we call call /// </summary> private static void BuildSererRequest() { WriteLine("Building Server Request Actions..."); _dbRequest.Add("dlbd", new DatabaseRequest(DbAction.DownloadBasicData, "http://riddlersoftgames.co.uk/database/osrh2h/getuserinfo.php", HttpEncoders.None, (object o) => { Dictionary <string, List <string> > db = o as Dictionary <string, List <string> >; //convert to correct type WriteLine("Data Recived:"); foreach (KeyValuePair <string, List <String> > data in db) { Write($"{data.Key}: {data.Value[0]}, "); } _status = ServerStatus.Ready; if (_callBack != null) { _callBack(db); } WriteLine(""); })); _dbRequest.Add("findmatch", new DatabaseRequest(DbAction.SendAction, "http://riddlersoftgames.co.uk/database/osrh2h/match/findMatch.php", CustomHttpEncoders.FindMatch, (object o) => { if (_status != ServerStatus.Ready) { WriteLine("You need to download user data first!"); return; } Dictionary <string, List <string> > db = MySqlWebServer.DecodeMySqlDatabase(o as string); //convert to readable data if (db != null && db.Count > 0) { CustomHttpEncoders.OpponateId = Convert.ToInt32(db["Id"][0]); CustomHttpEncoders.OpponatesLevel = Convert.ToInt32(db["Level"][0]); CustomHttpEncoders.OpponatesRank = Convert.ToInt32(db["Rank"][0]); CustomHttpEncoders.OpponatesAvalibleCredits = (int)Convert.ToDouble(db["ACredits"][0]); CustomHttpEncoders.OpponatesAvalibleSpairParts = (int)Convert.ToDouble(db["AParts"][0]); CustomHttpEncoders.OpponatesTimeToBeat = (float)Convert.ToDouble(db["Time"][0]); WriteLine($"Opponate Found. Id: {CustomHttpEncoders.OpponateId}, " + $"Credits: { CustomHttpEncoders.OpponatesAvalibleCredits}, Spair Parts: {CustomHttpEncoders.OpponatesAvalibleSpairParts}" + $"Rank: {CustomHttpEncoders.OpponatesRank}"); if (_callBack != null) { _callBack(db); } } else { CustomHttpEncoders.OpponateId = -1; string output = o as string; if (output.Contains("#nm")) { CreateError(o, "No Match Found"); } else { CreateError(o, "Connection Error"); } if (DebugMode) { WriteLine("===Debug Trace==="); WriteLine(o as string); WriteLine("===End Debug==="); } if (_callBack != null) { _callBack(null); } return; } })); _dbRequest.Add("nextmatch", new DatabaseRequest(DbAction.SendAction, "http://riddlersoftgames.co.uk/database/osrh2h/match/findMatch.php", CustomHttpEncoders.NextMatch, (object o) => { if (_status != ServerStatus.Ready) { WriteLine("You need to download user data first!"); return; } Dictionary <string, List <string> > db = MySqlWebServer.DecodeMySqlDatabase(o as string); //convert to readable data if (db != null) { CustomHttpEncoders.OpponateId = Convert.ToInt32(db["Id"][0]); WriteLine($"Opponate Found. Id: {CustomHttpEncoders.OpponateId}"); if (_callBack != null) { _callBack(db); } } else { CustomHttpEncoders.OpponateId = -1; string output = o as string; if (output.Contains("#nm")) { CreateError(o, "No Match Found"); } else { CreateError(o, "Connection Error"); } if (_callBack != null) { _callBack(null); } return; } if (DebugMode) { WriteLine("===Debug Trace==="); WriteLine(o as string); WriteLine("===End Debug==="); } })); _dbRequest.Add("attack", new DatabaseRequest(DbAction.SendAction, "http://riddlersoftgames.co.uk/database/osrh2h/match/attack.php", CustomHttpEncoders.Attack, (object o) => { if (_status != ServerStatus.Ready) { WriteLine("You need to download user data first!"); return; } string output = o as string; if (output.Contains("#nm")) { CreateError(o, "No Match Found"); } else { WriteLine("Attack Started"); } if (DebugMode) { WriteLine("===Debug Trace==="); WriteLine(o as string); WriteLine("===End Debug==="); } })); _dbRequest.Add("aresults", new DatabaseRequest(DbAction.SendAction, "http://riddlersoftgames.co.uk/database/osrh2h/match/results.php", CustomHttpEncoders.AResult, (object o) => { if (_status != ServerStatus.Ready) { WriteLine("You need to download user data first!"); return; } string output = o as string; if (output.Contains("#nm")) { CreateError(o, "Database Error"); } else { WriteLine("Complete"); } if (DebugMode) { WriteLine("===Debug Trace==="); WriteLine(o as string); WriteLine("===End Debug==="); } })); ///this will make the server run its scedualed function _dbRequest.Add("forceserverupdate", new DatabaseRequest(DbAction.SendAction, "http://riddlersoftgames.co.uk/database/osrh2h/sced5723.php", CustomHttpEncoders.ForceServerUpdate, (object o) => { if (_status == ServerStatus.RequireInitalization) { WriteLine("You need initalize server first!"); return; } string output = o as string; if (output.Contains("#nm")) { CreateError(o, "Database Error"); } else { WriteLine("Complete"); } if (DebugMode) { WriteLine("===Debug Trace==="); WriteLine(o as string); WriteLine("===End Debug==="); } })); _dbRequest.Add("res", new DatabaseRequest(DbAction.SendAction, "http://riddlersoftgames.co.uk/database/osrh2h/base/change.php", CustomHttpEncoders.Resources, (object o) => { if (_status == ServerStatus.RequireInitalization) { WriteLine("You need initalize server first!"); if (_callBack != null) { _callBack("e0"); } return; } string output = o as string; if (output.Contains("#nm")) { CreateError(o, "Database Error"); } else { WriteLine("Complete"); } if (DebugMode) { WriteLine("===Debug Trace==="); WriteLine(o as string); WriteLine("===End Debug==="); } _status = ServerStatus.Ready; if (_callBack != null) { _callBack(output); } })); WriteLine("Done."); }