-
Notifications
You must be signed in to change notification settings - Fork 156
/
Copy pathsteammessages_gameservers.proto
153 lines (128 loc) · 4.94 KB
/
steammessages_gameservers.proto
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
syntax = "proto2";
import "steammessages_base.proto";
import "steammessages_unified_base.proto";
option py_generic_services = true;
message CGameServers_GetServerList_Request {
optional string filter = 1 [(description) = "Query filter string."];
optional uint32 limit = 2 [default = 100, (description) = "The maximum number of servers to return in the response"];
}
message CGameServers_GetServerList_Response {
message Server {
optional string addr = 1 [(description) = "The server's IP and query port"];
optional uint32 gameport = 2;
optional uint32 specport = 3;
optional fixed64 steamid = 4;
optional string name = 5;
optional uint32 appid = 6;
optional string gamedir = 7;
optional string version = 8;
optional string product = 9;
optional int32 region = 10;
optional int32 players = 11;
optional int32 max_players = 12;
optional int32 bots = 13;
optional string map = 14;
optional bool secure = 15;
optional bool dedicated = 16;
optional string os = 17;
optional string gametype = 18;
}
repeated .CGameServers_GetServerList_Response.Server servers = 1 [(description) = "List of servers matching the filter"];
}
message CGameServers_GetServerSteamIDsByIP_Request {
repeated string server_ips = 1;
}
message CGameServers_IPsWithSteamIDs_Response {
message Server {
optional string addr = 1;
optional fixed64 steamid = 2;
}
repeated .CGameServers_IPsWithSteamIDs_Response.Server servers = 1;
}
message CGameServers_GetServerIPsBySteamID_Request {
repeated fixed64 server_steamids = 1;
}
message CGameServers_QueryByFakeIP_Request {
enum EQueryType {
Query_Invalid = 0;
Query_Ping = 1;
Query_Players = 2;
Query_Rules = 3;
}
optional uint32 fake_ip = 1 [(description) = "FakeIP of server to query."];
optional uint32 fake_port = 2 [(description) = "Fake port of server to query."];
optional uint32 app_id = 3 [(description) = "AppID to use. Each AppID has its own FakeIP address."];
optional .CGameServers_QueryByFakeIP_Request.EQueryType query_type = 4 [default = Query_Invalid, (description) = "What type of query?"];
}
message CMsgGameServerPingQueryData {
optional .CMsgIPAddress server_ip = 1;
optional uint32 query_port = 2;
optional uint32 game_port = 3;
optional uint32 spectator_port = 4;
optional string spectator_server_name = 5;
optional string server_name = 6;
optional fixed64 steamid = 7;
optional uint32 app_id = 8;
optional string gamedir = 9;
optional string map = 10;
optional string game_description = 11;
optional string gametype = 12;
optional uint32 num_players = 13;
optional uint32 max_players = 14;
optional uint32 num_bots = 15;
optional bool password = 16;
optional bool secure = 17;
optional bool dedicated = 18;
optional string version = 19;
optional fixed32 sdr_popid = 20;
optional string sdr_location_string = 21;
}
message CMsgGameServerPlayersQueryData {
message Player {
optional string name = 1;
optional uint32 score = 2;
optional uint32 time_played = 3;
}
repeated .CMsgGameServerPlayersQueryData.Player players = 1;
}
message CMsgGameServerRulesQueryData {
message Rule {
optional string rule = 1;
optional string value = 2;
}
repeated .CMsgGameServerRulesQueryData.Rule rules = 1;
}
message CGameServers_GameServerQuery_Response {
optional .CMsgGameServerPingQueryData ping_data = 1;
optional .CMsgGameServerPlayersQueryData players_data = 2;
optional .CMsgGameServerRulesQueryData rules_data = 3;
}
message GameServerClient_QueryServerData_Request {
}
message GameServerClient_QueryServerData_Response {
optional .CMsgGameServerPingQueryData ping_data = 1;
optional .CMsgGameServerPlayersQueryData players_data = 2;
optional .CMsgGameServerRulesQueryData rules_data = 3;
}
service GameServers {
option (service_description) = "A service for searching and managing game servers.";
rpc GetServerList (.CGameServers_GetServerList_Request) returns (.CGameServers_GetServerList_Response) {
option (method_description) = "Gets a list of servers given a filter string";
}
rpc GetServerSteamIDsByIP (.CGameServers_GetServerSteamIDsByIP_Request) returns (.CGameServers_IPsWithSteamIDs_Response) {
option (method_description) = "Gets a list of server SteamIDs given a list of IPs";
}
rpc GetServerIPsBySteamID (.CGameServers_GetServerIPsBySteamID_Request) returns (.CGameServers_IPsWithSteamIDs_Response) {
option (method_description) = "Gets a list of server IP addresses given a list of SteamIDs";
}
rpc QueryByFakeIP (.CGameServers_QueryByFakeIP_Request) returns (.CGameServers_GameServerQuery_Response) {
option (method_description) = "Perform a query on a specific server by FakeIP";
}
}
service GameServerClient {
option (service_description) = "Service methods exposed by GameServer Steam clients";
option (service_execution_site) = k_EProtoExecutionSiteSteamClient;
rpc QueryServerData (.GameServerClient_QueryServerData_Request) returns (.GameServerClient_QueryServerData_Response) {
option (method_description) = "Steam is asking a gameserver for its data";
}
}