Skip to main content

hypixel/models/
status.rs

1use serde::{Deserialize, Serialize};
2
3use super::common::JsonObject;
4
5/// A player's current online session, as returned by `status`.
6#[derive(Debug, Clone, Deserialize, Serialize)]
7pub struct Session {
8    #[serde(default)]
9    pub online: bool,
10    #[serde(rename = "gameType", default)]
11    pub game_type: Option<String>,
12    #[serde(default)]
13    pub mode: Option<String>,
14    #[serde(default)]
15    pub map: Option<String>,
16    #[serde(flatten)]
17    pub extra: JsonObject,
18}
19
20#[derive(Debug, Clone, Deserialize)]
21pub(crate) struct StatusResponse {
22    pub session: Session,
23}
24
25/// A recently played game, as returned by `recentgames`.
26#[derive(Debug, Clone, Deserialize, Serialize)]
27pub struct RecentGame {
28    #[serde(default)]
29    pub date: i64,
30    #[serde(rename = "gameType", default)]
31    pub game_type: Option<String>,
32    #[serde(default)]
33    pub mode: Option<String>,
34    #[serde(default)]
35    pub map: Option<String>,
36    #[serde(default)]
37    pub ended: Option<i64>,
38    #[serde(flatten)]
39    pub extra: JsonObject,
40}
41
42#[derive(Debug, Clone, Deserialize)]
43pub(crate) struct RecentGamesResponse {
44    #[serde(default)]
45    pub games: Vec<RecentGame>,
46}