25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

62 lines
2.4 KiB

  1. using Newtonsoft.Json;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Diagnostics;
  5. using System.Linq;
  6. using System.Net.Http;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using Example.Models;
  10. namespace Example.Connectors
  11. {
  12. public class GetPlayerInfo
  13. {
  14. public static PlayerInfoModule PlayerDetails = new PlayerInfoModule();
  15. public static minigame PlayerminigameStats = new minigame();
  16. public static minigame PlayerminigameStatsRank = new minigame();
  17. public static async Task<PlayerInfoModule> LoadPlayerData(string player_id, string serverPort)
  18. {
  19. try
  20. {
  21. string apiurl = $"https://api.whalleybot.com/bot/{serverPort}/GetPlayer/{player_id}";
  22. var handler = new HttpClientHandler()
  23. {
  24. ServerCertificateCustomValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator
  25. };
  26. using (var client = new HttpClient(handler))
  27. {
  28. client.DefaultRequestHeaders.Add("Authorization", "WhalleyBotOverlay_e-H1rr55f");
  29. client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
  30. var response = await client.GetAsync(apiurl)
  31. .ConfigureAwait(false);
  32. if (response.IsSuccessStatusCode)
  33. {
  34. var json = response.Content.ReadAsStringAsync().Result;
  35. PlayerDetails = JsonConvert.DeserializeObject<PlayerInfoModule>(json);
  36. if (PlayerDetails.minigameStatAllString != null)
  37. {
  38. PlayerminigameStats = JsonConvert.DeserializeObject<minigame>(PlayerDetails.minigameStatAllString);
  39. PlayerminigameStatsRank = JsonConvert.DeserializeObject<minigame>(PlayerDetails.minigameStatRankString);
  40. }
  41. return PlayerDetails; ;
  42. }
  43. else
  44. {
  45. throw new Exception(response.ReasonPhrase);
  46. }
  47. }
  48. }
  49. catch (Exception ex)
  50. {
  51. Debug.WriteLine(ex.Source + ex.Message + ex.Data + ex.StackTrace);
  52. return null;
  53. }
  54. }
  55. }
  56. }