An unofficial collection of APIs used in FreeJam games and mods
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

85 lines
2.3KB

  1. use serde::{Deserialize, Serialize};
  2. #[derive(Deserialize, Serialize, Clone)]
  3. pub(crate) struct AuthenticationPayload {
  4. #[serde(rename = "EmailAddress")]
  5. pub email_address: String,
  6. #[serde(rename = "Password")]
  7. pub password: String,
  8. }
  9. #[derive(Deserialize, Serialize, Clone)]
  10. pub struct AuthenticationInfo {
  11. #[serde(rename = "PublicId")]
  12. pub public_id: String,
  13. #[serde(rename = "EmailAddress")]
  14. pub email_address: String,
  15. #[serde(rename = "DisplayName")]
  16. pub display_name: String,
  17. #[serde(rename = "Purchases")]
  18. purchases: Vec<String>, // ???
  19. #[serde(rename = "Flags")]
  20. flags: Vec<String>, // ???
  21. #[serde(rename = "Confirmed")]
  22. pub confirmed: bool,
  23. #[serde(rename = "Token")]
  24. pub token: String,
  25. #[serde(rename = "SteamId")]
  26. steam_id: Option<String>, // ???
  27. #[serde(rename = "ID")]
  28. pub id: usize,
  29. }
  30. impl std::string::ToString for AuthenticationInfo {
  31. fn to_string(&self) -> String {
  32. format!("{} ({})", &self.display_name, &self.public_id)
  33. }
  34. }
  35. #[derive(Deserialize, Serialize, Clone)]
  36. pub(crate) struct LobbyPayload {
  37. #[serde(rename = "PublicId")]
  38. pub public_id: String,
  39. }
  40. #[derive(Deserialize, Serialize, Clone)]
  41. pub struct LobbyInfo {
  42. #[serde(rename = "Games")]
  43. pub games: Vec<LiveGameInfo>,
  44. }
  45. #[derive(Deserialize, Serialize, Clone)]
  46. pub struct LiveGameInfo {
  47. #[serde(rename = "Id")]
  48. pub id: usize,
  49. #[serde(rename = "WorldName")]
  50. pub world_name: String,
  51. #[serde(rename = "MaxPlayers")]
  52. pub max_players: usize,
  53. #[serde(rename = "CurrentPlayers")]
  54. pub current_players: usize,
  55. #[serde(rename = "GameVersion")]
  56. pub game_version: String,
  57. #[serde(rename = "Ping")]
  58. pub ping: usize,
  59. #[serde(rename = "HasPlayed")]
  60. pub has_played: bool,
  61. #[serde(rename = "HasPassword")]
  62. pub has_password: bool,
  63. #[serde(rename = "IsPvp")]
  64. pub is_pvp: bool,
  65. #[serde(rename = "IsAntiCheatEnabled")]
  66. pub is_anticheat_enabled: bool,
  67. #[serde(rename = "IsOfficial")]
  68. pub is_official: bool,
  69. #[serde(rename = "ModInfo")]
  70. pub mod_info: String,
  71. #[serde(rename = "Region")]
  72. pub region: String,
  73. }
  74. impl std::string::ToString for LiveGameInfo {
  75. fn to_string(&self) -> String {
  76. format!("{} ({}):{}/{}", self.world_name, self.id, self.current_players, self.max_players)
  77. }
  78. }