1use crate::*;
2
3packet_struct!(
4 PacketId::OSU_USER_CHANGE_ACTION,
5 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 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 UserLogout { user_id: i32 }
31);
32
33packet_struct!(
34 PacketId::OSU_USER_REQUEST_STATUS_UPDATE,
35 UserRequestStatusUpdate {}
37);
38
39packet_struct!(
40 PacketId::OSU_PING,
41 Ping {}
43);
44
45packet_struct!(
46 PacketId::OSU_SPECTATE_START,
47 SpectateStart { target_id: i32 }
49);
50
51packet_struct!(
52 PacketId::OSU_SPECTATE_STOP,
53 SpectateStop {}
55);
56
57packet_struct!(
58 PacketId::OSU_SPECTATE_FRAMES,
59 SpceateFrames { data: Vec<u8> }
61);
62
63packet_struct!(
64 PacketId::OSU_ERROR_REPORT,
65 ErrorReport { data: Vec<u8> }
67);
68
69packet_struct!(
70 PacketId::OSU_SPECTATE_CANT,
71 SpectateCant {}
73);
74
75packet_struct!(
76 PacketId::OSU_SEND_PRIVATE_MESSAGE,
77 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 UserPartLobby {}
90);
91
92packet_struct!(
93 PacketId::OSU_USER_JOIN_LOBBY,
94 UserJoinLobby {}
96);
97
98packet_struct!(
99 PacketId::OSU_USER_CREATE_MATCH,
100 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 UserJoinMatch<'a> {
120 match_id: i32,
121 match_password: CowStr<'a>
122 }
123);
124
125packet_struct!(
126 PacketId::OSU_USER_PART_MATCH,
127 UserPartMatch {}
129);
130
131packet_struct!(
132 PacketId::OSU_MATCH_CHANGE_SLOT,
133 MatchChangeSlot { slot_id: i32 }
135);
136
137packet_struct!(
138 PacketId::OSU_USER_MATCH_READY,
139 UserMatchReady {}
141);
142
143packet_struct!(
144 PacketId::OSU_MATCH_LOCK,
145 MatchLock { slot_id: i32 }
147);
148
149packet_struct!(
150 PacketId::OSU_MATCH_CHANGE_SETTINGS,
151 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 MatchStart {}
171);
172
173packet_struct!(
174 PacketId::OSU_MATCH_SCORE_UPDATE,
175 MatchScoreUpdate {
177 play_data: Vec<u8>
178 }
179);
180
181packet_struct!(
182 PacketId::OSU_MATCH_COMPLETE,
183 MatchComplete {}
185);
186
187packet_struct!(
188 PacketId::OSU_MATCH_CHANGE_MODS,
189 MatchChangeMods { mods: i32 }
191);
192
193packet_struct!(
194 PacketId::OSU_MATCH_LOAD_COMPLETE,
195 MatchLoadComplete {}
197);
198
199packet_struct!(
200 PacketId::OSU_MATCH_NO_BEATMAP,
201 MatchNoBeatmap {}
203);
204
205packet_struct!(
206 PacketId::OSU_MATCH_NOT_READY,
207 MatchNotReady {}
209);
210
211packet_struct!(
212 PacketId::OSU_MATCH_FAILED,
213 MatchFailed {}
215);
216
217packet_struct!(
218 PacketId::OSU_MATCH_HAS_BEATMAP,
219 MatchHasBeatmap {}
221);
222
223packet_struct!(
224 PacketId::OSU_MATCH_SKIP_REQUEST,
225 MatchSkipRequest {}
227);
228
229packet_struct!(
230 PacketId::OSU_USER_CHANNEL_JOIN,
231 UserChannelJoin<'a> {
233 channel_name: CowStr<'a>
234 }
235);
236
237packet_struct!(
238 PacketId::OSU_BEATMAP_INFO_REQUEST,
239 BeatmapInfoRequest<'a> {
241 beatmap_ids: &'a [i32]
242 }
243);
244
245packet_struct!(
246 PacketId::OSU_MATCH_TRANSFER_HOST,
247 MatchTransferHost { slot_id: i32 }
249);
250
251packet_struct!(
252 PacketId::OSU_USER_FRIEND_ADD,
253 UserFriendAdd { target_id: i32 }
255);
256
257packet_struct!(
258 PacketId::OSU_USER_FRIEND_REMOVE,
259 UserFriendRemove { target_id: i32 }
261);
262
263packet_struct!(
264 PacketId::OSU_MATCH_CHANGE_TEAM,
265 MatchChangeTeam {}
267);
268
269packet_struct!(
270 PacketId::OSU_USER_CHANNEL_PART,
271 UserChannelPart<'a> {
273 channel_name: CowStr<'a>
274 }
275);
276
277packet_struct!(
278 PacketId::OSU_USER_RECEIVE_UPDATES,
279 UserReceiveUpdates { filter_val: i32 }
281);
282
283packet_struct!(
284 PacketId::OSU_USER_SET_AWAY_MESSAGE,
285 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 IrcOnly {}
298);
299
300packet_struct!(
301 PacketId::OSU_USER_STATS_REQUEST,
302 UserStatsRequest<'a> {
304 user_ids: &'a [i32]
305 }
306);
307
308packet_struct!(
309 PacketId::OSU_MATCH_INVITE,
310 MatchInvite { user_id: i32 }
312);
313
314packet_struct!(
315 PacketId::OSU_MATCH_CHANGE_PASSWORD,
316 MatchChangePassword<'a> {
318 password: CowStr<'a>
319 }
320);
321
322packet_struct!(
323 PacketId::OSU_TOURNAMENT_MATCH_INFO_REQUEST,
324 TournamentMatchInfoRequest { match_id: i32 }
326);
327
328packet_struct!(
329 PacketId::OSU_USER_PRESENCE_REQUEST,
330 UserPresenceRequest<'a> {
332 user_ids: &'a [i32]
333 }
334);
335
336packet_struct!(
337 PacketId::OSU_USER_PRESENCE_REQUEST_ALL,
338 UserPresenceRequestAll { ingame_time: i32 }
340);
341
342packet_struct!(
343 PacketId::OSU_USER_TOGGLE_BLOCK_NON_FRIEND_DMS,
344 UserToggleBlockNonFriendDms { value: i32 }
346);
347
348packet_struct!(
349 PacketId::OSU_TOURNAMENT_JOIN_MATCH_CHANNEL,
350 TournamentJoinMatchChannel { match_id: i32 }
352);
353
354packet_struct!(
355 PacketId::OSU_TOURNAMENT_LEAVE_MATCH_CHANNEL,
356 TournamentLeaveMatchChannel { match_id: i32 }
358);