Skip to main content

steam_protos/messages/
chatroom.rs

1//! Chat room protobuf messages
2
3use prost::Message;
4
5/// Create chat room group request
6#[derive(Clone, PartialEq, Message)]
7pub struct CChatRoomCreateChatRoomGroupRequest {
8    #[prost(fixed64, optional, tag = "1")]
9    pub steamid_partner: Option<u64>,
10    #[prost(fixed64, optional, tag = "2")]
11    pub steamid_invited: Option<u64>,
12    #[prost(string, optional, tag = "3")]
13    pub name: Option<String>,
14    #[prost(fixed64, repeated, tag = "4")]
15    pub steamid_invitees: Vec<u64>,
16    #[prost(uint32, optional, tag = "6")]
17    pub watching_broadcast_accountid: Option<u32>,
18    #[prost(uint64, optional, tag = "7")]
19    pub watching_broadcast_channel_id: Option<u64>,
20}
21
22/// Save chat room group request
23#[derive(Clone, PartialEq, Message)]
24pub struct CChatRoomSaveChatRoomGroupRequest {
25    #[prost(uint64, optional, tag = "1")]
26    pub chat_group_id: Option<u64>,
27    #[prost(string, optional, tag = "2")]
28    pub name: Option<String>,
29}
30
31/// Get my chat room groups request
32#[derive(Clone, PartialEq, Message)]
33pub struct CChatRoomGetMyChatRoomGroupsRequest {}
34
35/// Set session active chat room groups request
36#[derive(Clone, PartialEq, Message)]
37pub struct CChatRoomSetSessionActiveChatRoomGroupsRequest {
38    #[prost(uint64, repeated, tag = "1")]
39    pub chat_group_ids: Vec<u64>,
40    #[prost(uint64, repeated, tag = "2")]
41    pub chat_groups_data_requested: Vec<u64>,
42    #[prost(int32, optional, tag = "3")]
43    pub virtualize_members_threshold: Option<i32>,
44}
45
46/// Get invite link info request
47#[derive(Clone, PartialEq, Message)]
48pub struct CChatRoomGetInviteLinkInfoRequest {
49    #[prost(string, optional, tag = "1")]
50    pub invite_code: Option<String>,
51}
52
53/// Join chat room group request
54#[derive(Clone, PartialEq, Message)]
55pub struct CChatRoomJoinChatRoomGroupRequest {
56    #[prost(uint64, optional, tag = "1")]
57    pub chat_group_id: Option<u64>,
58    #[prost(string, optional, tag = "2")]
59    pub invite_code: Option<String>,
60    #[prost(uint64, optional, tag = "3")]
61    pub chat_id: Option<u64>,
62}
63
64/// Leave chat room group request
65#[derive(Clone, PartialEq, Message)]
66pub struct CChatRoomLeaveChatRoomGroupRequest {
67    #[prost(uint64, optional, tag = "1")]
68    pub chat_group_id: Option<u64>,
69}
70
71/// Create invite link request
72#[derive(Clone, PartialEq, Message)]
73pub struct CChatRoomCreateInviteLinkRequest {
74    #[prost(uint64, optional, tag = "1")]
75    pub chat_group_id: Option<u64>,
76    #[prost(uint32, optional, tag = "2")]
77    pub seconds_valid: Option<u32>,
78    #[prost(uint64, optional, tag = "3")]
79    pub chat_id: Option<u64>,
80}
81
82/// Create invite link response
83#[derive(Clone, PartialEq, Message)]
84pub struct CChatRoomCreateInviteLinkResponse {
85    #[prost(string, optional, tag = "1")]
86    pub invite_code: Option<String>,
87    #[prost(uint32, optional, tag = "2")]
88    pub seconds_valid: Option<u32>,
89}
90
91/// Get invite links for group request
92#[derive(Clone, PartialEq, Message)]
93pub struct CChatRoomGetInviteLinksForGroupRequest {
94    #[prost(uint64, optional, tag = "1")]
95    pub chat_group_id: Option<u64>,
96}
97
98/// Get invite links for group response
99#[derive(Clone, PartialEq, Message)]
100pub struct CChatRoomGetInviteLinksForGroupResponse {
101    #[prost(message, repeated, tag = "1")]
102    pub invite_links: Vec<CChatRoomInviteLink>,
103}
104
105#[derive(Clone, PartialEq, Message)]
106pub struct CChatRoomInviteLink {
107    #[prost(string, optional, tag = "1")]
108    pub invite_code: Option<String>,
109    #[prost(fixed64, optional, tag = "2")]
110    pub steamid_creator: Option<u64>,
111    #[prost(uint32, optional, tag = "3")]
112    pub time_expires: Option<u32>,
113    #[prost(uint64, optional, tag = "4")]
114    pub chat_id: Option<u64>,
115}
116
117/// Delete invite link request
118#[derive(Clone, PartialEq, Message)]
119pub struct CChatRoomDeleteInviteLinkRequest {
120    #[prost(uint64, optional, tag = "1")]
121    pub chat_group_id: Option<u64>,
122    #[prost(string, optional, tag = "2")]
123    pub invite_code: Option<String>,
124}
125
126/// Delete invite link response
127#[derive(Clone, PartialEq, Message)]
128pub struct CChatRoomDeleteInviteLinkResponse {}
129
130/// Send chat message request
131#[derive(Clone, PartialEq, Message)]
132pub struct CChatRoomSendChatMessageRequest {
133    #[prost(uint64, optional, tag = "1")]
134    pub chat_group_id: Option<u64>,
135    #[prost(uint64, optional, tag = "2")]
136    pub chat_id: Option<u64>,
137    #[prost(string, optional, tag = "3")]
138    pub message: Option<String>,
139    #[prost(bool, optional, tag = "4")]
140    pub echo_to_sender: Option<bool>,
141}
142
143/// Get message history request
144#[derive(Clone, PartialEq, Message)]
145pub struct CChatRoomGetMessageHistoryRequest {
146    #[prost(uint64, optional, tag = "1")]
147    pub chat_group_id: Option<u64>,
148    #[prost(uint64, optional, tag = "2")]
149    pub chat_id: Option<u64>,
150    #[prost(uint32, optional, tag = "3")]
151    pub last_time: Option<u32>,
152    #[prost(uint32, optional, tag = "4")]
153    pub last_ordinal: Option<u32>,
154    #[prost(uint32, optional, tag = "5")]
155    pub start_time: Option<u32>,
156    #[prost(uint32, optional, tag = "6")]
157    pub start_ordinal: Option<u32>,
158    #[prost(uint32, optional, tag = "7")]
159    pub max_count: Option<u32>,
160}
161
162/// Create chat room request
163#[derive(Clone, PartialEq, Message)]
164pub struct CChatRoomCreateChatRoomRequest {
165    #[prost(uint64, optional, tag = "1")]
166    pub chat_group_id: Option<u64>,
167    #[prost(string, optional, tag = "2")]
168    pub name: Option<String>,
169    #[prost(bool, optional, tag = "3")]
170    pub allow_voice: Option<bool>,
171}
172
173/// Create chat room response
174#[derive(Clone, PartialEq, Message)]
175pub struct CChatRoomCreateChatRoomResponse {
176    #[prost(message, optional, tag = "1")]
177    pub chat_room: Option<CChatRoomState>,
178}
179
180/// Rename chat room request
181#[derive(Clone, PartialEq, Message)]
182pub struct CChatRoomRenameChatRoomRequest {
183    #[prost(uint64, optional, tag = "1")]
184    pub chat_group_id: Option<u64>,
185    #[prost(uint64, optional, tag = "2")]
186    pub chat_id: Option<u64>,
187    #[prost(string, optional, tag = "3")]
188    pub name: Option<String>,
189}
190
191/// Rename chat room response
192#[derive(Clone, PartialEq, Message)]
193pub struct CChatRoomRenameChatRoomResponse {}
194
195/// Delete chat room request
196#[derive(Clone, PartialEq, Message)]
197pub struct CChatRoomDeleteChatRoomRequest {
198    #[prost(uint64, optional, tag = "1")]
199    pub chat_group_id: Option<u64>,
200    #[prost(uint64, optional, tag = "2")]
201    pub chat_id: Option<u64>,
202}
203
204/// Delete chat room response
205#[derive(Clone, PartialEq, Message)]
206pub struct CChatRoomDeleteChatRoomResponse {}
207
208/// Get clan chat room info request
209#[derive(Clone, PartialEq, Message)]
210pub struct CClanChatRoomsGetClanChatRoomInfoRequest {
211    #[prost(fixed64, optional, tag = "1")]
212    pub steamid: Option<u64>,
213    #[prost(bool, optional, tag = "2")]
214    pub autocreate: Option<bool>,
215}
216
217/// Get clan chat room info response
218#[derive(Clone, PartialEq, Message)]
219pub struct CClanChatRoomsGetClanChatRoomInfoResponse {
220    #[prost(message, optional, tag = "1")]
221    pub chat_group_summary: Option<CChatRoomGroupSummary>,
222}
223
224#[derive(Clone, PartialEq, Message)]
225pub struct CChatRoomGroupSummary {
226    #[prost(uint64, optional, tag = "1")]
227    pub chat_group_id: Option<u64>,
228    #[prost(string, optional, tag = "2")]
229    pub chat_group_name: Option<String>,
230    #[prost(uint32, optional, tag = "3")]
231    pub active_member_count: Option<u32>,
232    #[prost(uint32, optional, tag = "4")]
233    pub active_voice_member_count: Option<u32>,
234    #[prost(uint64, optional, tag = "5")]
235    pub default_chat_id: Option<u64>,
236    #[prost(message, repeated, tag = "6")]
237    pub chat_rooms: Vec<CChatRoomState>,
238    #[prost(fixed64, optional, tag = "7")]
239    pub steamid_owner: Option<u64>,
240    #[prost(uint32, repeated, tag = "8")]
241    pub top_members: Vec<u32>,
242    #[prost(string, optional, tag = "9")]
243    pub chat_group_tagline: Option<String>,
244    #[prost(uint32, optional, tag = "10")]
245    pub appid: Option<u32>,
246    #[prost(bytes = "vec", optional, tag = "11")]
247    pub chat_group_avatar_sha: Option<Vec<u8>>,
248    #[prost(uint64, optional, tag = "12")]
249    pub watching_broadcast_channel_id: Option<u64>,
250    #[prost(uint32, optional, tag = "13")]
251    pub watching_broadcast_accountid: Option<u32>,
252}
253
254/// Kick user request
255#[derive(Clone, PartialEq, Message)]
256pub struct CChatRoomKickUserRequest {
257    #[prost(uint64, optional, tag = "1")]
258    pub chat_group_id: Option<u64>,
259    #[prost(fixed64, optional, tag = "2")]
260    pub steamid: Option<u64>,
261    #[prost(int32, optional, tag = "3")]
262    pub expiration: Option<i32>,
263}
264
265/// Set user ban state request
266#[derive(Clone, PartialEq, Message)]
267pub struct CChatRoomSetUserBanStateRequest {
268    #[prost(uint64, optional, tag = "1")]
269    pub chat_group_id: Option<u64>,
270    #[prost(fixed64, optional, tag = "2")]
271    pub steamid: Option<u64>,
272    #[prost(bool, optional, tag = "3")]
273    pub ban_state: Option<bool>,
274}
275
276/// Ack chat message notification
277#[derive(Clone, PartialEq, Message)]
278pub struct CChatRoomAckChatMessageNotification {
279    #[prost(uint64, optional, tag = "1")]
280    pub chat_group_id: Option<u64>,
281    #[prost(uint64, optional, tag = "2")]
282    pub chat_id: Option<u64>,
283    #[prost(uint32, optional, tag = "3")]
284    pub timestamp: Option<u32>,
285}
286
287/// Delete chat messages request
288#[derive(Clone, PartialEq, Message)]
289pub struct CChatRoomDeleteChatMessagesRequest {
290    #[prost(uint64, optional, tag = "1")]
291    pub chat_group_id: Option<u64>,
292    #[prost(uint64, optional, tag = "2")]
293    pub chat_id: Option<u64>,
294    #[prost(message, repeated, tag = "3")]
295    pub messages: Vec<CChatRoomMessage>,
296}
297
298#[derive(Clone, PartialEq, Message)]
299pub struct CChatRoomMessage {
300    #[prost(uint32, optional, tag = "1")]
301    pub server_timestamp: Option<u32>,
302    #[prost(uint32, optional, tag = "2")]
303    pub ordinal: Option<u32>,
304}
305
306/// Delete chat messages response
307#[derive(Clone, PartialEq, Message)]
308pub struct CChatRoomDeleteChatMessagesResponse {}
309
310/// Get ban list request
311#[derive(Clone, PartialEq, Message)]
312pub struct CChatRoomGetBanListRequest {
313    #[prost(uint64, optional, tag = "1")]
314    pub chat_group_id: Option<u64>,
315}
316
317/// Get ban list response
318#[derive(Clone, PartialEq, Message)]
319pub struct CChatRoomGetBanListResponse {
320    #[prost(message, repeated, tag = "1")]
321    pub bans: Vec<CChatRoomBan>,
322}
323
324#[derive(Clone, PartialEq, Message)]
325pub struct CChatRoomBan {
326    #[prost(fixed64, optional, tag = "1")]
327    pub steamid: Option<u64>,
328    #[prost(fixed64, optional, tag = "2")]
329    pub steamid_actor: Option<u64>,
330    #[prost(uint32, optional, tag = "3")]
331    pub time_banned: Option<u32>,
332    #[prost(string, optional, tag = "4")]
333    pub ban_reason: Option<String>,
334}
335
336/// Add role to user request
337#[derive(Clone, PartialEq, Message)]
338pub struct CChatRoomAddRoleToUserRequest {
339    #[prost(uint64, optional, tag = "1")]
340    pub chat_group_id: Option<u64>,
341    #[prost(uint64, optional, tag = "2")]
342    pub role_id: Option<u64>,
343    #[prost(fixed64, optional, tag = "3")]
344    pub steamid: Option<u64>,
345}
346
347/// Add role to user response
348#[derive(Clone, PartialEq, Message)]
349pub struct CChatRoomAddRoleToUserResponse {}
350
351/// Delete role from user request
352#[derive(Clone, PartialEq, Message)]
353pub struct CChatRoomDeleteRoleFromUserRequest {
354    #[prost(uint64, optional, tag = "1")]
355    pub chat_group_id: Option<u64>,
356    #[prost(uint64, optional, tag = "2")]
357    pub role_id: Option<u64>,
358    #[prost(fixed64, optional, tag = "3")]
359    pub steamid: Option<u64>,
360}
361
362/// Delete role from user response
363#[derive(Clone, PartialEq, Message)]
364pub struct CChatRoomDeleteRoleFromUserResponse {}
365
366/// Invite friend to chat room group request
367#[derive(Clone, PartialEq, Message)]
368pub struct CChatRoomInviteFriendToChatRoomGroupRequest {
369    #[prost(uint64, optional, tag = "1")]
370    pub chat_group_id: Option<u64>,
371    #[prost(fixed64, optional, tag = "2")]
372    pub steamid: Option<u64>,
373    #[prost(uint64, optional, tag = "3")]
374    pub chat_id: Option<u64>,
375    #[prost(bool, optional, tag = "4")]
376    pub skip_friendsui_check: Option<bool>,
377}
378
379/// Incoming chat message notification
380#[derive(Clone, PartialEq, Message)]
381pub struct CChatRoomIncomingChatMessageNotification {
382    #[prost(uint64, optional, tag = "1")]
383    pub chat_group_id: Option<u64>,
384    #[prost(uint64, optional, tag = "2")]
385    pub chat_id: Option<u64>,
386    #[prost(fixed64, optional, tag = "3")]
387    pub steamid_sender: Option<u64>,
388    #[prost(string, optional, tag = "4")]
389    pub message: Option<String>,
390    #[prost(uint32, optional, tag = "5")]
391    pub timestamp: Option<u32>,
392    #[prost(message, optional, tag = "6")]
393    pub mentions: Option<CChatMentions>,
394    #[prost(uint32, optional, tag = "7")]
395    pub ordinal: Option<u32>,
396    #[prost(message, optional, tag = "8")]
397    pub server_message: Option<ServerMessage>,
398    #[prost(string, optional, tag = "9")]
399    pub message_no_bbcode: Option<String>,
400    #[prost(string, optional, tag = "10")]
401    pub chat_name: Option<String>,
402}
403
404#[derive(Clone, PartialEq, Message)]
405pub struct CChatMentions {
406    #[prost(bool, optional, tag = "1")]
407    pub mention_all: Option<bool>,
408    #[prost(bool, optional, tag = "2")]
409    pub mention_here: Option<bool>,
410    #[prost(uint32, repeated, tag = "3")]
411    pub mention_accountids: Vec<u32>,
412}
413
414#[derive(Clone, PartialEq, Message)]
415pub struct ServerMessage {
416    #[prost(int32, optional, tag = "1")]
417    pub message: Option<i32>,
418    #[prost(string, optional, tag = "2")]
419    pub string_param: Option<String>,
420    #[prost(uint32, optional, tag = "3")]
421    pub accountid_param: Option<u32>,
422}
423
424/// Member state change notification
425#[derive(Clone, PartialEq, Message)]
426pub struct CChatRoomMemberStateChangeNotification {
427    #[prost(uint64, optional, tag = "1")]
428    pub chat_group_id: Option<u64>,
429    #[prost(message, optional, tag = "2")]
430    pub member: Option<CChatRoomMember>,
431    #[prost(int32, optional, tag = "3")]
432    pub change: Option<i32>,
433}
434
435#[derive(Clone, PartialEq, Message)]
436pub struct CChatRoomMember {
437    #[prost(uint32, optional, tag = "1")]
438    pub accountid: Option<u32>,
439    #[prost(int32, optional, tag = "3")]
440    pub state: Option<i32>,
441    #[prost(int32, optional, tag = "4")]
442    pub rank: Option<i32>,
443    #[prost(uint32, optional, tag = "6")]
444    pub time_kick_expire: Option<u32>,
445    #[prost(uint64, repeated, tag = "7")]
446    pub role_ids: Vec<u64>,
447}
448
449/// Chat room group rooms change notification
450#[derive(Clone, PartialEq, Message)]
451pub struct CChatRoomChatRoomGroupRoomsChangeNotification {
452    #[prost(uint64, optional, tag = "1")]
453    pub chat_group_id: Option<u64>,
454    #[prost(uint64, optional, tag = "2")]
455    pub default_chat_id: Option<u64>,
456    #[prost(message, repeated, tag = "3")]
457    pub chat_rooms: Vec<CChatRoomState>,
458}
459
460#[derive(Clone, PartialEq, Message)]
461pub struct CChatRoomState {
462    #[prost(uint64, optional, tag = "1")]
463    pub chat_id: Option<u64>,
464    #[prost(string, optional, tag = "2")]
465    pub chat_name: Option<String>,
466    #[prost(bool, optional, tag = "3")]
467    pub voice_allowed: Option<bool>,
468    #[prost(uint32, repeated, tag = "4")]
469    pub members_in_voice: Vec<u32>,
470    #[prost(uint32, optional, tag = "5")]
471    pub time_last_message: Option<u32>,
472    #[prost(uint32, optional, tag = "6")]
473    pub sort_order: Option<u32>,
474    #[prost(string, optional, tag = "7")]
475    pub last_message: Option<String>,
476    #[prost(uint32, optional, tag = "8")]
477    pub accountid_last_message: Option<u32>,
478}
479
480/// Chat message modified notification
481#[derive(Clone, PartialEq, Message)]
482pub struct CChatRoomChatMessageModifiedNotification {
483    #[prost(uint64, optional, tag = "1")]
484    pub chat_group_id: Option<u64>,
485    #[prost(uint64, optional, tag = "2")]
486    pub chat_id: Option<u64>,
487    #[prost(message, repeated, tag = "3")]
488    pub messages: Vec<c_chat_room_chat_message_modified_notification::ChatMessage>,
489}
490
491pub mod c_chat_room_chat_message_modified_notification {
492    use prost::Message;
493
494    #[derive(Clone, PartialEq, Message)]
495    pub struct ChatMessage {
496        #[prost(uint32, optional, tag = "1")]
497        pub server_timestamp: Option<u32>,
498        #[prost(uint32, optional, tag = "2")]
499        pub ordinal: Option<u32>,
500        #[prost(bool, optional, tag = "3")]
501        pub deleted: Option<bool>,
502    }
503}
504
505/// Chat room header state notification
506#[derive(Clone, PartialEq, Message)]
507pub struct CChatRoomChatRoomHeaderStateNotification {
508    #[prost(message, optional, tag = "1")]
509    pub header_state: Option<CChatRoomGroupHeaderState>,
510}
511
512#[derive(Clone, PartialEq, Message)]
513pub struct CChatRoomGroupHeaderState {
514    #[prost(uint64, optional, tag = "1")]
515    pub chat_group_id: Option<u64>,
516    #[prost(string, optional, tag = "2")]
517    pub chat_name: Option<String>,
518    #[prost(fixed64, optional, tag = "3")]
519    pub steamid_owner: Option<u64>,
520    #[prost(uint32, optional, tag = "4")]
521    pub appid: Option<u32>,
522    #[prost(fixed64, optional, tag = "5")]
523    pub steamid_clan: Option<u64>,
524    #[prost(uint32, optional, tag = "6")]
525    pub chat_group_tagline: Option<u32>,
526    #[prost(bytes = "vec", optional, tag = "7")]
527    pub avatar_sha: Option<Vec<u8>>,
528    #[prost(uint32, optional, tag = "8")]
529    pub default_chat_id: Option<u32>,
530}