Skip to main content

steam_protos/messages/
gameservers.rs

1//! Game server protobuf messages
2
3use prost::Message;
4
5use super::base::CMsgIPAddress;
6
7/// Game server query request
8#[derive(Clone, PartialEq, Message)]
9pub struct CMsgClientGMSServerQuery {
10    #[prost(uint32, optional, tag = "1")]
11    pub app_id: Option<u32>,
12    #[prost(uint32, optional, tag = "2")]
13    pub geo_location_ip: Option<u32>,
14    #[prost(uint32, optional, tag = "3")]
15    pub region_code: Option<u32>,
16    #[prost(string, optional, tag = "4")]
17    pub filter_text: Option<String>,
18    #[prost(uint32, optional, tag = "5")]
19    pub max_servers: Option<u32>,
20    #[prost(string, optional, tag = "6")]
21    pub sdr_ping_location: Option<String>,
22}
23
24/// Game server query response
25#[derive(Clone, PartialEq, Message)]
26pub struct CMsgGMSClientServerQueryResponse {
27    #[prost(message, repeated, tag = "1")]
28    pub servers: Vec<cmsg_gms_client_server_query_response::Server>,
29    #[prost(string, optional, tag = "2")]
30    pub error: Option<String>,
31    #[prost(message, optional, tag = "3")]
32    pub default_server_data: Option<cmsg_gms_client_server_query_response::Server>,
33    #[prost(string, repeated, tag = "4")]
34    pub server_strings: Vec<String>,
35}
36
37pub mod cmsg_gms_client_server_query_response {
38    use prost::Message;
39
40    use super::CMsgIPAddress;
41
42    #[derive(Clone, PartialEq, Message)]
43    pub struct Server {
44        #[prost(uint32, optional, tag = "1")]
45        pub deprecated_server_ip: Option<u32>,
46        #[prost(uint32, optional, tag = "2")]
47        pub query_port: Option<u32>,
48        #[prost(uint32, optional, tag = "3")]
49        pub auth_players: Option<u32>,
50        #[prost(message, optional, tag = "4")]
51        pub server_ip: Option<CMsgIPAddress>,
52        #[prost(fixed64, optional, tag = "6")]
53        pub steam_id: Option<u64>,
54        #[prost(uint32, optional, tag = "7")]
55        pub revision: Option<u32>,
56        #[prost(uint32, optional, tag = "8")]
57        pub players: Option<u32>,
58        #[prost(uint32, optional, tag = "9")]
59        pub game_port: Option<u32>,
60        #[prost(fixed32, optional, tag = "10")]
61        pub sdr_popid: Option<u32>,
62        #[prost(string, optional, tag = "32")]
63        pub sdr_ping_location: Option<String>,
64        #[prost(uint32, optional, tag = "11")]
65        pub flags: Option<u32>,
66        #[prost(uint32, optional, tag = "12")]
67        pub app_id: Option<u32>,
68        #[prost(uint32, optional, tag = "13")]
69        pub max_players: Option<u32>,
70        #[prost(uint32, optional, tag = "14")]
71        pub bots: Option<u32>,
72        #[prost(uint32, optional, tag = "15")]
73        pub spectator_port: Option<u32>,
74        #[prost(string, optional, tag = "16")]
75        pub gamedir_str: Option<String>,
76        #[prost(uint32, optional, tag = "17")]
77        pub gamedir_strindex: Option<u32>,
78        #[prost(string, optional, tag = "18")]
79        pub map_str: Option<String>,
80        #[prost(uint32, optional, tag = "19")]
81        pub map_strindex: Option<u32>,
82        #[prost(string, optional, tag = "20")]
83        pub name_str: Option<String>,
84        #[prost(uint32, optional, tag = "21")]
85        pub name_strindex: Option<u32>,
86        #[prost(string, optional, tag = "22")]
87        pub game_description_str: Option<String>,
88        #[prost(uint32, optional, tag = "23")]
89        pub game_description_strindex: Option<u32>,
90        #[prost(string, optional, tag = "24")]
91        pub version_str: Option<String>,
92        #[prost(uint32, optional, tag = "25")]
93        pub version_strindex: Option<u32>,
94        #[prost(string, optional, tag = "26")]
95        pub gametype_str: Option<String>,
96        #[prost(uint32, optional, tag = "27")]
97        pub gametype_strindex: Option<u32>,
98        #[prost(string, optional, tag = "30")]
99        pub spectator_name_str: Option<String>,
100        #[prost(uint32, optional, tag = "31")]
101        pub spectator_name_strindex: Option<u32>,
102    }
103}
104
105/// Get server steam IDs by IP request
106#[derive(Clone, PartialEq, Message)]
107pub struct CGameServersGetServerSteamIDsByIPRequest {
108    #[prost(string, repeated, tag = "1")]
109    pub server_ips: Vec<String>,
110}
111
112/// Response with server IPs and Steam IDs
113#[derive(Clone, PartialEq, Message)]
114pub struct CGameServersIPsWithSteamIDsResponse {
115    #[prost(message, repeated, tag = "1")]
116    pub servers: Vec<c_game_servers_i_ps_with_steam_i_ds_response::Server>,
117}
118
119pub mod c_game_servers_i_ps_with_steam_i_ds_response {
120    use prost::Message;
121
122    #[derive(Clone, PartialEq, Message)]
123    pub struct Server {
124        #[prost(string, optional, tag = "1")]
125        pub addr: Option<String>,
126        #[prost(fixed64, optional, tag = "2")]
127        pub steamid: Option<u64>,
128    }
129}
130
131/// Get server IPs by Steam ID request
132#[derive(Clone, PartialEq, Message)]
133pub struct CGameServersGetServerIPsBySteamIDRequest {
134    #[prost(fixed64, repeated, packed = "false", tag = "1")]
135    pub server_steamids: Vec<u64>,
136}
137
138/// Get server list request (unified service)
139#[derive(Clone, PartialEq, Message)]
140pub struct CGameServersGetServerListRequest {
141    #[prost(string, optional, tag = "1")]
142    pub filter: Option<String>,
143    #[prost(uint32, optional, tag = "2")]
144    pub limit: Option<u32>,
145}
146
147/// Get server list response
148#[derive(Clone, PartialEq, Message)]
149pub struct CGameServersGetServerListResponse {
150    #[prost(message, repeated, tag = "1")]
151    pub servers: Vec<c_game_servers_get_server_list_response::Server>,
152}
153
154pub mod c_game_servers_get_server_list_response {
155    use prost::Message;
156
157    #[derive(Clone, PartialEq, Message)]
158    pub struct Server {
159        #[prost(string, optional, tag = "1")]
160        pub addr: Option<String>,
161        #[prost(uint32, optional, tag = "2")]
162        pub gameport: Option<u32>,
163        #[prost(uint32, optional, tag = "3")]
164        pub specport: Option<u32>,
165        #[prost(fixed64, optional, tag = "4")]
166        pub steamid: Option<u64>,
167        #[prost(string, optional, tag = "5")]
168        pub name: Option<String>,
169        #[prost(uint32, optional, tag = "6")]
170        pub appid: Option<u32>,
171        #[prost(string, optional, tag = "7")]
172        pub gamedir: Option<String>,
173        #[prost(string, optional, tag = "8")]
174        pub version: Option<String>,
175        #[prost(string, optional, tag = "9")]
176        pub product: Option<String>,
177        #[prost(int32, optional, tag = "10")]
178        pub region: Option<i32>,
179        #[prost(int32, optional, tag = "11")]
180        pub players: Option<i32>,
181        #[prost(int32, optional, tag = "12")]
182        pub max_players: Option<i32>,
183        #[prost(int32, optional, tag = "13")]
184        pub bots: Option<i32>,
185        #[prost(string, optional, tag = "14")]
186        pub map: Option<String>,
187        #[prost(bool, optional, tag = "15")]
188        pub secure: Option<bool>,
189        #[prost(bool, optional, tag = "16")]
190        pub dedicated: Option<bool>,
191        #[prost(string, optional, tag = "17")]
192        pub os: Option<String>,
193        #[prost(string, optional, tag = "18")]
194        pub gametype: Option<String>,
195    }
196}