csgo_gsi2/update/
player.rs1use std::collections::HashMap;
4
5use serde::{Serialize, Deserialize};
6
7#[derive(Clone, Debug, Deserialize, Serialize)]
9#[serde(deny_unknown_fields)]
10pub struct Player {
11 #[serde(rename = "steamid")]
13 pub steam_id: String,
14 pub name: String,
16 pub observer_slot: Option<u64>,
18 pub activity: Activity,
20 pub match_stats: Option<MatchStats>,
22 pub state: Option<State>,
24 pub team: Option<super::Team>,
26 #[serde(default)]
28 pub weapons: HashMap<String, Weapon>, pub clan: Option<String>,
31}
32
33#[derive(Clone, Debug, Deserialize, Serialize)]
35#[serde(rename_all = "lowercase")]
36pub enum Activity {
37 Menu,
39 Playing,
41 TextInput
43
44}
45
46#[derive(Clone, Debug, Deserialize, Serialize)]
48#[serde(deny_unknown_fields)]
49pub struct MatchStats {
50 pub kills: i64,
52 pub assists: u64,
54 pub deaths: u64,
56 pub mvps: u64,
58 pub score: u64,
60}
61
62#[derive(Clone, Debug, Deserialize, Serialize)]
64#[serde(deny_unknown_fields)]
65pub struct State {
66 pub health: u64,
68 pub armor: u64,
70 pub helmet: bool,
72 pub flashed: u64,
74 pub smoked: u64,
76 pub burning: u64,
78 pub money: u64,
80 pub round_kills: i64,
82 pub round_killhs: u64,
84 pub equip_value: u64,
86 pub round_totaldmg: Option<u64>,
88 #[serde(rename = "defusekit")]
90 pub defuse_kit: Option<bool>
91}
92
93#[derive(Clone, Debug, Deserialize, Serialize)]
95#[serde(deny_unknown_fields)]
96pub struct Weapon {
97 pub name: String,
99 pub paintkit: String,
101 pub r#type: Option<WeaponType>, pub state: WeaponState,
105 pub ammo_clip: Option<u64>,
107 pub ammo_clip_max: Option<u64>,
109 pub ammo_reserve: Option<u64>,
111}
112
113#[derive(Clone, Debug, Deserialize, Serialize)]
115pub enum WeaponType {
116 Knife,
118 Fists,
120 Melee,
122 Pistol,
124 #[serde(rename = "Submachine Gun")]
126 SMG,
127 #[serde(rename = "Machine Gun")]
129 MachineGun,
130 Rifle,
132 SniperRifle,
134 Shotgun,
136 StackableItem,
138 Tablet,
140 Grenade,
142 C4,
144 #[serde(rename = "Bump Mine")]
146 BumpMine,
147 #[serde(rename = "Breach Charge")]
149 BreachCharge,
150
151}
152
153#[derive(Clone, Debug, Deserialize, Serialize)]
155#[serde(rename_all = "lowercase")]
156pub enum WeaponState {
157 Holstered,
159 Active,
161 Reloading,
163}