bancho_packets/
client.rs

1use crate::*;
2
3packet_struct!(
4    PacketId::OSU_USER_CHANGE_ACTION,
5    /// #0: OSU_USER_CHANGE_ACTION
6    UserChangeAction<'a> {
7        online_status: u8,
8        description: CowStr<'a>,
9        beatmap_md5: CowStr<'a>,
10        mods: u32,
11        mode: u8,
12        beatmap_id: i32,
13    }
14);
15
16packet_struct!(
17    PacketId::OSU_SEND_PUBLIC_MESSAGE,
18    /// #1: OSU_SEND_PUBLIC_MESSAGE
19    SendPublicMessage<'a> {
20        sender: CowStr<'a>,
21        content: CowStr<'a>,
22        target: CowStr<'a>,
23        sender_id: i32,
24    }
25);
26
27packet_struct!(
28    PacketId::OSU_USER_LOGOUT,
29    /// #2: OSU_USER_LOGOUT
30    UserLogout { user_id: i32 }
31);
32
33packet_struct!(
34    PacketId::OSU_USER_REQUEST_STATUS_UPDATE,
35    /// #3: OSU_USER_REQUEST_STATUS_UPDATE
36    UserRequestStatusUpdate {}
37);
38
39packet_struct!(
40    PacketId::OSU_PING,
41    /// #4: OSU_PING
42    Ping {}
43);
44
45packet_struct!(
46    PacketId::OSU_SPECTATE_START,
47    /// #16: OSU_SPECTATE_START
48    SpectateStart { target_id: i32 }
49);
50
51packet_struct!(
52    PacketId::OSU_SPECTATE_STOP,
53    /// #17: OSU_SPECTATE_STOP
54    SpectateStop {}
55);
56
57packet_struct!(
58    PacketId::OSU_SPECTATE_FRAMES,
59    /// #18: OSU_SPECTATE_FRAMES
60    SpceateFrames { data: Vec<u8> }
61);
62
63packet_struct!(
64    PacketId::OSU_ERROR_REPORT,
65    /// #20: OSU_ERROR_REPORT
66    ErrorReport { data: Vec<u8> }
67);
68
69packet_struct!(
70    PacketId::OSU_SPECTATE_CANT,
71    /// #21: OSU_SPECTATE_CANT
72    SpectateCant {}
73);
74
75packet_struct!(
76    PacketId::OSU_SEND_PRIVATE_MESSAGE,
77    /// #25: OSU_SEND_PRIVATE_MESSAGE
78    SendPrivateMessage<'a> {
79        sender: CowStr<'a>,
80        content: CowStr<'a>,
81        target: CowStr<'a>,
82        sender_id: i32,
83    }
84);
85
86packet_struct!(
87    PacketId::OSU_USER_PART_LOBBY,
88    /// #29: OSU_USER_PART_LOBBY
89    UserPartLobby {}
90);
91
92packet_struct!(
93    PacketId::OSU_USER_JOIN_LOBBY,
94    /// #30: OSU_USER_JOIN_LOBBY
95    UserJoinLobby {}
96);
97
98packet_struct!(
99    PacketId::OSU_USER_CREATE_MATCH,
100    /// #31: OSU_USER_CREATE_MATCH
101    UserCreateMatch<'a> {
102        id: i16,
103        in_progress: i8,
104        powerplay: i8,
105        mods: i32,
106        name: CowStr<'a>,
107        passwd: CowStr<'a>,
108        map_name: CowStr<'a>,
109        map_id: i32,
110        map_md5: CowStr<'a>,
111        slot_statuses: &'a [i8],
112        slot_teams: &'a [i8],
113    }
114);
115
116packet_struct!(
117    PacketId::OSU_USER_JOIN_MATCH,
118    /// #32: OSU_USER_JOIN_MATCH
119    UserJoinMatch<'a> {
120        match_id: i32,
121        match_password: CowStr<'a>
122    }
123);
124
125packet_struct!(
126    PacketId::OSU_USER_PART_MATCH,
127    /// #33: OSU_USER_PART_MATCH
128    UserPartMatch {}
129);
130
131packet_struct!(
132    PacketId::OSU_MATCH_CHANGE_SLOT,
133    /// #38: OSU_MATCH_CHANGE_SLOT
134    MatchChangeSlot { slot_id: i32 }
135);
136
137packet_struct!(
138    PacketId::OSU_USER_MATCH_READY,
139    /// #39: OSU_USER_MATCH_READY
140    UserMatchReady {}
141);
142
143packet_struct!(
144    PacketId::OSU_MATCH_LOCK,
145    /// #40: OSU_MATCH_LOCK
146    MatchLock { slot_id: i32 }
147);
148
149packet_struct!(
150    PacketId::OSU_MATCH_CHANGE_SETTINGS,
151    /// #41: OSU_MATCH_CHANGE_SETTINGS
152    MatchChangeSettings<'a> {
153        id: i16,
154        in_progress: i8,
155        powerplay: i8,
156        mods: i32,
157        name: CowStr<'a>,
158        passwd: CowStr<'a>,
159        map_name: CowStr<'a>,
160        map_id: i32,
161        map_md5: CowStr<'a>,
162        slot_statuses: &'a [i8],
163        slot_teams: &'a [i8],
164    }
165);
166
167packet_struct!(
168    PacketId::OSU_MATCH_START,
169    /// #44: OSU_MATCH_START
170    MatchStart {}
171);
172
173packet_struct!(
174    PacketId::OSU_MATCH_SCORE_UPDATE,
175    /// #47: OSU_MATCH_SCORE_UPDATE
176    MatchScoreUpdate {
177        play_data: Vec<u8>
178    }
179);
180
181packet_struct!(
182    PacketId::OSU_MATCH_COMPLETE,
183    /// #49: OSU_MATCH_COMPLETE
184    MatchComplete {}
185);
186
187packet_struct!(
188    PacketId::OSU_MATCH_CHANGE_MODS,
189    /// #51: OSU_MATCH_CHANGE_MODS
190    MatchChangeMods { mods: i32 }
191);
192
193packet_struct!(
194    PacketId::OSU_MATCH_LOAD_COMPLETE,
195    /// #52: OSU_MATCH_LOAD_COMPLETE
196    MatchLoadComplete {}
197);
198
199packet_struct!(
200    PacketId::OSU_MATCH_NO_BEATMAP,
201    /// #54: OSU_MATCH_NO_BEATMAP
202    MatchNoBeatmap {}
203);
204
205packet_struct!(
206    PacketId::OSU_MATCH_NOT_READY,
207    /// #55: OSU_MATCH_NOT_READY
208    MatchNotReady {}
209);
210
211packet_struct!(
212    PacketId::OSU_MATCH_FAILED,
213    /// #56: OSU_MATCH_FAILED
214    MatchFailed {}
215);
216
217packet_struct!(
218    PacketId::OSU_MATCH_HAS_BEATMAP,
219    /// #59: OSU_MATCH_HAS_BEATMAP
220    MatchHasBeatmap {}
221);
222
223packet_struct!(
224    PacketId::OSU_MATCH_SKIP_REQUEST,
225    /// #60: OSU_MATCH_SKIP_REQUEST
226    MatchSkipRequest {}
227);
228
229packet_struct!(
230    PacketId::OSU_USER_CHANNEL_JOIN,
231    /// #63: OSU_USER_CHANNEL_JOIN
232    UserChannelJoin<'a> {
233        channel_name: CowStr<'a>
234    }
235);
236
237packet_struct!(
238    PacketId::OSU_BEATMAP_INFO_REQUEST,
239    /// #68: OSU_BEATMAP_INFO_REQUEST
240    BeatmapInfoRequest<'a> {
241        beatmap_ids: &'a [i32]
242    }
243);
244
245packet_struct!(
246    PacketId::OSU_MATCH_TRANSFER_HOST,
247    /// #70: OSU_MATCH_TRANSFER_HOST
248    MatchTransferHost { slot_id: i32 }
249);
250
251packet_struct!(
252    PacketId::OSU_USER_FRIEND_ADD,
253    /// #73: OSU_USER_FRIEND_ADD
254    UserFriendAdd { target_id: i32 }
255);
256
257packet_struct!(
258    PacketId::OSU_USER_FRIEND_REMOVE,
259    /// #74: OSU_USER_FRIEND_REMOVE
260    UserFriendRemove { target_id: i32 }
261);
262
263packet_struct!(
264    PacketId::OSU_MATCH_CHANGE_TEAM,
265    /// #77: OSU_MATCH_CHANGE_TEAM
266    MatchChangeTeam {}
267);
268
269packet_struct!(
270    PacketId::OSU_USER_CHANNEL_PART,
271    /// #78: OSU_USER_CHANNEL_PART
272    UserChannelPart<'a> {
273        channel_name: CowStr<'a>
274    }
275);
276
277packet_struct!(
278    PacketId::OSU_USER_RECEIVE_UPDATES,
279    /// #79: OSU_USER_RECEIVE_UPDATES
280    UserReceiveUpdates { filter_val: i32 }
281);
282
283packet_struct!(
284    PacketId::OSU_USER_SET_AWAY_MESSAGE,
285    /// #82: OSU_USER_SET_AWAY_MESSAGE
286    UserSetAwayMessage<'a> {
287        sender: CowStr<'a>,
288        content: CowStr<'a>,
289        target: CowStr<'a>,
290        sender_id: i32,
291    }
292);
293
294packet_struct!(
295    PacketId::OSU_IRC_ONLY,
296    /// #84: OSU_IRC_ONLY
297    IrcOnly {}
298);
299
300packet_struct!(
301    PacketId::OSU_USER_STATS_REQUEST,
302    /// #85: OSU_USER_STATS_REQUEST
303    UserStatsRequest<'a> {
304        user_ids: &'a [i32]
305    }
306);
307
308packet_struct!(
309    PacketId::OSU_MATCH_INVITE,
310    /// #87: OSU_MATCH_INVITE
311    MatchInvite { user_id: i32 }
312);
313
314packet_struct!(
315    PacketId::OSU_MATCH_CHANGE_PASSWORD,
316    /// #90: OSU_MATCH_CHANGE_PASSWORD
317    MatchChangePassword<'a> {
318        password: CowStr<'a>
319    }
320);
321
322packet_struct!(
323    PacketId::OSU_TOURNAMENT_MATCH_INFO_REQUEST,
324    /// #93: OSU_TOURNAMENT_MATCH_INFO_REQUEST
325    TournamentMatchInfoRequest { match_id: i32 }
326);
327
328packet_struct!(
329    PacketId::OSU_USER_PRESENCE_REQUEST,
330    /// #97: OSU_USER_PRESENCE_REQUEST
331    UserPresenceRequest<'a> {
332        user_ids: &'a [i32]
333    }
334);
335
336packet_struct!(
337    PacketId::OSU_USER_PRESENCE_REQUEST_ALL,
338    /// #98: OSU_USER_PRESENCE_REQUEST_ALL
339    UserPresenceRequestAll { ingame_time: i32 }
340);
341
342packet_struct!(
343    PacketId::OSU_USER_TOGGLE_BLOCK_NON_FRIEND_DMS,
344    /// #99: OSU_USER_TOGGLE_BLOCK_NON_FRIEND_DMS
345    UserToggleBlockNonFriendDms { value: i32 }
346);
347
348packet_struct!(
349    PacketId::OSU_TOURNAMENT_JOIN_MATCH_CHANNEL,
350    /// #108: OSU_TOURNAMENT_JOIN_MATCH_CHANNEL
351    TournamentJoinMatchChannel { match_id: i32 }
352);
353
354packet_struct!(
355    PacketId::OSU_TOURNAMENT_LEAVE_MATCH_CHANNEL,
356    /// #109: OSU_TOURNAMENT_LEAVE_MATCH_CHANNEL
357    TournamentLeaveMatchChannel { match_id: i32 }
358);