1use std::collections::HashMap;
2
3#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
4pub enum ProtocolState {
5 Handshake,
6 Status,
7 Login,
8 Configuration,
9 Play,
10}
11
12#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
13pub enum Direction {
14 Serverbound,
15 Clientbound,
16}
17
18#[derive(Debug, Clone)]
19pub struct PacketMeta {
20 pub id: u8,
21 pub name: &'static str,
22}
23
24pub struct PacketRegistry {
25 map: HashMap<ProtocolState, HashMap<Direction, Vec<(u32, PacketMeta)>>>,
26}
27
28impl PacketRegistry {
29 pub fn new() -> Self {
30 Self {
31 map: HashMap::new(),
32 }
33 }
34
35 pub fn register(
36 &mut self,
37 proto: u32,
38 state: ProtocolState,
39 dir: Direction,
40 name: &'static str,
41 id: u8,
42 ) {
43 let state_map = self.map.entry(state).or_default();
44 let dir_vec = state_map.entry(dir).or_default();
45 if let Some((_, meta)) = dir_vec
46 .iter_mut()
47 .find(|(p, meta)| *p == proto && meta.name == name)
48 {
49 meta.id = id;
50 } else {
51 dir_vec.push((proto, PacketMeta { id, name }));
52 }
53 }
54
55 pub fn get_id(
56 &self,
57 proto: u32,
58 state: ProtocolState,
59 dir: Direction,
60 name: &'static str,
61 ) -> Option<u8> {
62 let state_map = self.map.get(&state)?;
63 let dir_vec = state_map.get(&dir)?;
64 dir_vec
65 .iter()
66 .find(|(p, meta)| *p == proto && meta.name == name)
67 .map(|(_, meta)| meta.id)
68 }
69
70 pub fn get_id_for_version(
71 &self,
72 proto: u32,
73 state: ProtocolState,
74 dir: Direction,
75 name: &'static str,
76 ) -> Option<u8> {
77 let state_map = self.map.get(&state)?;
78 let dir_vec = state_map.get(&dir)?;
79
80 if let Some((_, meta)) = dir_vec
81 .iter()
82 .find(|(p, meta)| *p == proto && meta.name == name)
83 {
84 return Some(meta.id);
85 }
86
87 let mut best_proto: Option<u32> = None;
88 let mut best_id: Option<u8> = None;
89 for (p, meta) in dir_vec {
90 if meta.name == name && *p <= proto && best_proto.map_or(true, |bp| *p > bp) {
91 best_proto = Some(*p);
92 best_id = Some(meta.id);
93 }
94 }
95 best_id
96 }
97
98 pub fn get_name_from_id(
99 &self,
100 proto: u32,
101 state: ProtocolState,
102 dir: Direction,
103 id: u8,
104 ) -> Option<&'static str> {
105 let state_map = self.map.get(&state)?;
106 let dir_vec = state_map.get(&dir)?;
107
108 if let Some((_, meta)) = dir_vec
109 .iter()
110 .find(|(p, meta)| *p == proto && meta.id == id)
111 {
112 return Some(meta.name);
113 }
114
115 let mut best_proto: Option<u32> = None;
116 let mut best_name: Option<&'static str> = None;
117 for (p, meta) in dir_vec {
118 if meta.id == id && *p <= proto && best_proto.map_or(true, |bp| *p > bp) {
119 best_proto = Some(*p);
120 best_name = Some(meta.name);
121 }
122 }
123 best_name
124 }
125}
126
127impl Default for PacketRegistry {
128 fn default() -> Self {
129 build_default_registry()
130 }
131}
132
133pub fn build_default_registry() -> PacketRegistry {
134 let mut r = PacketRegistry::new();
135
136 macro_rules! reg {
137 ($proto:expr, $state:ident, $dir:ident, $name:expr, $id:expr) => {
138 r.register($proto, ProtocolState::$state, Direction::$dir, $name, $id);
139 };
140 }
141
142 reg!(78, Login, Serverbound, "HandshakeC2S", 0x02);
143 reg!(78, Login, Clientbound, "EncryptionKeyRequestS2C", 0xFD);
144 reg!(78, Login, Serverbound, "EncryptionKeyResponseC2S", 0xFC);
145 reg!(78, Login, Clientbound, "LoginRequestS2C", 0x01);
146
147 reg!(5, Handshake, Serverbound, "ServerboundHandshake", 0x00);
148 reg!(5, Status, Serverbound, "ServerboundStatusRequest", 0x00);
149 reg!(5, Status, Serverbound, "ServerboundPingRequest", 0x01);
150 reg!(5, Status, Clientbound, "ClientboundStatusResponse", 0x00);
151 reg!(5, Status, Clientbound, "ClientboundPongResponse", 0x01);
152 reg!(5, Login, Serverbound, "ServerboundLoginStart", 0x00);
153 reg!(5, Login, Serverbound, "ServerboundEncryptionResponse", 0x01);
154 reg!(5, Login, Clientbound, "ClientboundLoginDisconnect", 0x00);
155 reg!(5, Login, Clientbound, "ClientboundEncryptionRequest", 0x01);
156 reg!(5, Login, Clientbound, "ClientboundLoginSuccess", 0x02);
157 reg!(5, Login, Clientbound, "ClientboundSetCompression", 0x03);
158
159 reg!(47, Handshake, Serverbound, "ServerboundHandshake", 0x00);
160 reg!(47, Status, Serverbound, "ServerboundStatusRequest", 0x00);
161 reg!(47, Status, Serverbound, "ServerboundPingRequest", 0x01);
162 reg!(47, Status, Clientbound, "ClientboundStatusResponse", 0x00);
163 reg!(47, Status, Clientbound, "ClientboundPongResponse", 0x01);
164 reg!(47, Login, Serverbound, "ServerboundLoginStart", 0x00);
165 reg!(
166 47,
167 Login,
168 Serverbound,
169 "ServerboundEncryptionResponse",
170 0x01
171 );
172 reg!(47, Login, Clientbound, "ClientboundLoginDisconnect", 0x00);
173 reg!(47, Login, Clientbound, "ClientboundEncryptionRequest", 0x01);
174 reg!(47, Login, Clientbound, "ClientboundLoginSuccess", 0x02);
175 reg!(47, Login, Clientbound, "ClientboundSetCompression", 0x03);
176
177 reg!(
179 335,
180 Play,
181 Clientbound,
182 "ClientboundLevelChunkWithLight",
183 0x20
184 );
185 reg!(335, Play, Clientbound, "SPacketChunkData", 0x20);
186 reg!(335, Play, Clientbound, "ClientboundJoinGame", 0x23);
187 reg!(335, Play, Clientbound, "ClientboundRespawn", 0x35);
188 reg!(335, Play, Clientbound, "ClientboundKeepAlive", 0x00);
189 reg!(335, Play, Clientbound, "ClientboundChatMessage", 0x0F);
190 reg!(335, Play, Clientbound, "ClientboundPluginMessage", 0x18);
191 reg!(335, Play, Clientbound, "ClientboundDisconnect", 0x40);
192 reg!(335, Play, Serverbound, "ServerboundKeepAlive", 0x0B);
193 reg!(335, Play, Serverbound, "ServerboundChatMessage", 0x02);
194 reg!(335, Play, Serverbound, "ServerboundPluginMessage", 0x09);
195
196 reg!(340, Handshake, Serverbound, "ServerboundHandshake", 0x00);
197 reg!(340, Status, Serverbound, "ServerboundStatusRequest", 0x00);
198 reg!(340, Status, Serverbound, "ServerboundPingRequest", 0x01);
199 reg!(340, Status, Clientbound, "ClientboundStatusResponse", 0x00);
200 reg!(340, Status, Clientbound, "ClientboundPongResponse", 0x01);
201 reg!(340, Login, Serverbound, "ServerboundLoginStart", 0x00);
202 reg!(
203 340,
204 Login,
205 Serverbound,
206 "ServerboundEncryptionResponse",
207 0x01
208 );
209 reg!(340, Login, Clientbound, "ClientboundLoginDisconnect", 0x00);
210 reg!(
211 340,
212 Login,
213 Clientbound,
214 "ClientboundEncryptionRequest",
215 0x01
216 );
217 reg!(340, Login, Clientbound, "ClientboundLoginSuccess", 0x02);
218 reg!(340, Login, Clientbound, "ClientboundSetCompression", 0x03);
219
220 reg!(754, Handshake, Serverbound, "ServerboundHandshake", 0x00);
221 reg!(754, Status, Serverbound, "ServerboundStatusRequest", 0x00);
222 reg!(754, Status, Serverbound, "ServerboundPingRequest", 0x01);
223 reg!(754, Status, Clientbound, "ClientboundStatusResponse", 0x00);
224 reg!(754, Status, Clientbound, "ClientboundPongResponse", 0x01);
225 reg!(754, Login, Serverbound, "ServerboundLoginStart", 0x00);
226 reg!(
227 754,
228 Login,
229 Serverbound,
230 "ServerboundEncryptionResponse",
231 0x01
232 );
233 reg!(754, Login, Clientbound, "ClientboundLoginDisconnect", 0x00);
234 reg!(
235 754,
236 Login,
237 Clientbound,
238 "ClientboundEncryptionRequest",
239 0x01
240 );
241 reg!(754, Login, Clientbound, "ClientboundLoginSuccess", 0x02);
242 reg!(754, Login, Clientbound, "ClientboundSetCompression", 0x03);
243
244 reg!(762, Handshake, Serverbound, "ServerboundHandshake", 0x00);
245 reg!(762, Status, Serverbound, "ServerboundStatusRequest", 0x00);
246 reg!(762, Status, Serverbound, "ServerboundPingRequest", 0x01);
247 reg!(762, Status, Clientbound, "ClientboundStatusResponse", 0x00);
248 reg!(762, Status, Clientbound, "ClientboundPongResponse", 0x01);
249 reg!(762, Login, Serverbound, "ServerboundLoginStart", 0x00);
250 reg!(
251 762,
252 Login,
253 Serverbound,
254 "ServerboundEncryptionResponse",
255 0x01
256 );
257 reg!(762, Login, Clientbound, "ClientboundLoginDisconnect", 0x00);
258 reg!(
259 762,
260 Login,
261 Clientbound,
262 "ClientboundEncryptionRequest",
263 0x01
264 );
265 reg!(762, Login, Clientbound, "ClientboundLoginSuccess", 0x02);
266 reg!(762, Login, Clientbound, "ClientboundSetCompression", 0x03);
267 reg!(
268 762,
269 Login,
270 Serverbound,
271 "ServerboundLoginPluginResponse",
272 0x02
273 );
274 reg!(
275 762,
276 Login,
277 Clientbound,
278 "ClientboundLoginPluginRequest",
279 0x04
280 );
281
282 reg!(765, Handshake, Serverbound, "ServerboundHandshake", 0x00);
283 reg!(765, Status, Serverbound, "ServerboundStatusRequest", 0x00);
284 reg!(765, Status, Serverbound, "ServerboundPingRequest", 0x01);
285 reg!(765, Status, Clientbound, "ClientboundStatusResponse", 0x00);
286 reg!(765, Status, Clientbound, "ClientboundPongResponse", 0x01);
287 reg!(765, Login, Serverbound, "ServerboundLoginStart", 0x00);
288 reg!(
289 765,
290 Login,
291 Serverbound,
292 "ServerboundEncryptionResponse",
293 0x01
294 );
295 reg!(765, Login, Clientbound, "ClientboundLoginDisconnect", 0x00);
296 reg!(
297 765,
298 Login,
299 Clientbound,
300 "ClientboundEncryptionRequest",
301 0x01
302 );
303 reg!(765, Login, Clientbound, "ClientboundLoginSuccess", 0x02);
304 reg!(765, Login, Clientbound, "ClientboundSetCompression", 0x03);
305 reg!(
306 765,
307 Login,
308 Serverbound,
309 "ServerboundLoginPluginResponse",
310 0x02
311 );
312 reg!(
313 765,
314 Login,
315 Clientbound,
316 "ClientboundLoginPluginRequest",
317 0x04
318 );
319 reg!(
320 765,
321 Login,
322 Serverbound,
323 "ServerboundLoginAcknowledged",
324 0x03
325 );
326 reg!(765, Configuration, Clientbound, "FinishConfiguration", 0x03);
327 reg!(
328 765,
329 Configuration,
330 Serverbound,
331 "AcknowledgeFinishConfiguration",
332 0x03
333 );
334
335 reg!(767, Handshake, Serverbound, "ServerboundHandshake", 0x00);
336 reg!(767, Status, Serverbound, "ServerboundStatusRequest", 0x00);
337 reg!(767, Status, Serverbound, "ServerboundPingRequest", 0x01);
338 reg!(767, Status, Clientbound, "ClientboundStatusResponse", 0x00);
339 reg!(767, Status, Clientbound, "ClientboundPongResponse", 0x01);
340 reg!(767, Login, Serverbound, "ServerboundLoginStart", 0x00);
341 reg!(
342 767,
343 Login,
344 Serverbound,
345 "ServerboundEncryptionResponse",
346 0x01
347 );
348 reg!(767, Login, Clientbound, "ClientboundLoginDisconnect", 0x00);
349 reg!(
350 767,
351 Login,
352 Clientbound,
353 "ClientboundEncryptionRequest",
354 0x01
355 );
356 reg!(767, Login, Clientbound, "ClientboundLoginSuccess", 0x02);
357 reg!(767, Login, Clientbound, "ClientboundSetCompression", 0x03);
358 reg!(
359 767,
360 Login,
361 Serverbound,
362 "ServerboundLoginPluginResponse",
363 0x02
364 );
365 reg!(
366 767,
367 Login,
368 Clientbound,
369 "ClientboundLoginPluginRequest",
370 0x04
371 );
372 reg!(
373 767,
374 Login,
375 Serverbound,
376 "ServerboundLoginAcknowledged",
377 0x03
378 );
379 reg!(767, Configuration, Clientbound, "FinishConfiguration", 0x03);
380 reg!(
381 767,
382 Configuration,
383 Serverbound,
384 "AcknowledgeFinishConfiguration",
385 0x03
386 );
387
388 reg!(754, Play, Clientbound, "ClientboundKeepAlive", 0x1F);
389 reg!(754, Play, Clientbound, "ClientboundJoinGame", 0x24);
390 reg!(754, Play, Clientbound, "ClientboundLogin", 0x24);
391 reg!(754, Play, Clientbound, "ClientboundChatMessage", 0x0E);
392 reg!(754, Play, Clientbound, "ClientboundSystemChat", 0x0E);
393 reg!(754, Play, Clientbound, "ClientboundPlayerPosition", 0x34);
394 reg!(754, Play, Clientbound, "ClientboundPluginMessage", 0x17);
395 reg!(754, Play, Clientbound, "ClientboundRespawn", 0x39);
396 reg!(754, Play, Clientbound, "ClientboundDisconnect", 0x19);
397 reg!(754, Play, Serverbound, "ServerboundKeepAlive", 0x10);
398 reg!(754, Play, Serverbound, "ServerboundChatMessage", 0x03);
399 reg!(754, Play, Serverbound, "ServerboundInteract", 0x0E);
400 reg!(754, Play, Serverbound, "ServerboundMovePlayerPos", 0x12);
401 reg!(754, Play, Serverbound, "ServerboundMovePlayerRot", 0x13);
402 reg!(754, Play, Serverbound, "ServerboundMovePlayerPosRot", 0x14);
403 reg!(754, Play, Serverbound, "ServerboundPluginMessage", 0x0B);
404
405 reg!(762, Play, Clientbound, "ClientboundBundle", 0x00);
406 reg!(765, Play, Clientbound, "ClientboundBundle", 0x00);
407 reg!(767, Play, Clientbound, "ClientboundBundle", 0x00);
408 reg!(5, Play, Clientbound, "ClientboundSpawnEntity", 0x0E);
409 reg!(47, Play, Clientbound, "ClientboundSpawnEntity", 0x0E);
410 reg!(762, Play, Clientbound, "ClientboundSpawnEntity", 0x01);
411 reg!(765, Play, Clientbound, "ClientboundSpawnEntity", 0x01);
412 reg!(767, Play, Clientbound, "ClientboundSpawnEntity", 0x01);
413 reg!(5, Play, Clientbound, "ClientboundSpawnExperienceOrb", 0x11);
414 reg!(47, Play, Clientbound, "ClientboundSpawnExperienceOrb", 0x11);
415 reg!(
416 762,
417 Play,
418 Clientbound,
419 "ClientboundSpawnExperienceOrb",
420 0x02
421 );
422 reg!(
423 765,
424 Play,
425 Clientbound,
426 "ClientboundSpawnExperienceOrb",
427 0x02
428 );
429 reg!(
430 767,
431 Play,
432 Clientbound,
433 "ClientboundSpawnExperienceOrb",
434 0x02
435 );
436 reg!(5, Play, Clientbound, "ClientboundSpawnPlayer", 0x0C);
437 reg!(47, Play, Clientbound, "ClientboundSpawnPlayer", 0x0C);
438 reg!(762, Play, Clientbound, "ClientboundSpawnPlayer", 0x03);
439 reg!(765, Play, Clientbound, "ClientboundSpawnPlayer", 0x03);
440 reg!(767, Play, Clientbound, "ClientboundSpawnPlayer", 0x03);
441 reg!(5, Play, Clientbound, "ClientboundEntityAnimation", 0x0B);
442 reg!(47, Play, Clientbound, "ClientboundEntityAnimation", 0x0B);
443 reg!(340, Play, Clientbound, "ClientboundEntityAnimation", 0x06);
444 reg!(762, Play, Clientbound, "ClientboundEntityAnimation", 0x04);
445 reg!(765, Play, Clientbound, "ClientboundEntityAnimation", 0x04);
446 reg!(767, Play, Clientbound, "ClientboundEntityAnimation", 0x04);
447 reg!(5, Play, Clientbound, "ClientboundAwardStats", 0x37);
448 reg!(47, Play, Clientbound, "ClientboundAwardStats", 0x37);
449 reg!(340, Play, Clientbound, "ClientboundAwardStats", 0x07);
450 reg!(762, Play, Clientbound, "ClientboundAwardStats", 0x05);
451 reg!(765, Play, Clientbound, "ClientboundAwardStats", 0x05);
452 reg!(767, Play, Clientbound, "ClientboundAwardStats", 0x05);
453 reg!(
454 762,
455 Play,
456 Clientbound,
457 "ClientboundAcknowledgeBlockChange",
458 0x06
459 );
460 reg!(
461 765,
462 Play,
463 Clientbound,
464 "ClientboundAcknowledgeBlockChange",
465 0x06
466 );
467 reg!(
468 767,
469 Play,
470 Clientbound,
471 "ClientboundAcknowledgeBlockChange",
472 0x06
473 );
474 reg!(5, Play, Clientbound, "ClientboundBlockDestroyStage", 0x25);
475 reg!(47, Play, Clientbound, "ClientboundBlockDestroyStage", 0x25);
476 reg!(340, Play, Clientbound, "ClientboundBlockDestroyStage", 0x08);
477 reg!(762, Play, Clientbound, "ClientboundBlockDestroyStage", 0x07);
478 reg!(765, Play, Clientbound, "ClientboundBlockDestroyStage", 0x07);
479 reg!(767, Play, Clientbound, "ClientboundBlockDestroyStage", 0x07);
480 reg!(5, Play, Clientbound, "ClientboundBlockEntityData", 0x35);
481 reg!(47, Play, Clientbound, "ClientboundBlockEntityData", 0x35);
482 reg!(340, Play, Clientbound, "ClientboundBlockEntityData", 0x09);
483 reg!(762, Play, Clientbound, "ClientboundBlockEntityData", 0x08);
484 reg!(765, Play, Clientbound, "ClientboundBlockEntityData", 0x08);
485 reg!(767, Play, Clientbound, "ClientboundBlockEntityData", 0x08);
486 reg!(5, Play, Clientbound, "ClientboundBlockAction", 0x24);
487 reg!(47, Play, Clientbound, "ClientboundBlockAction", 0x24);
488 reg!(340, Play, Clientbound, "ClientboundBlockAction", 0x0A);
489 reg!(762, Play, Clientbound, "ClientboundBlockAction", 0x09);
490 reg!(765, Play, Clientbound, "ClientboundBlockAction", 0x09);
491 reg!(767, Play, Clientbound, "ClientboundBlockAction", 0x09);
492 reg!(5, Play, Clientbound, "ClientboundBlockUpdate", 0x23);
493 reg!(47, Play, Clientbound, "ClientboundBlockUpdate", 0x23);
494 reg!(340, Play, Clientbound, "ClientboundBlockUpdate", 0x0B);
495 reg!(762, Play, Clientbound, "ClientboundBlockUpdate", 0x0A);
496 reg!(765, Play, Clientbound, "ClientboundBlockUpdate", 0x0A);
497 reg!(767, Play, Clientbound, "ClientboundBlockUpdate", 0x0A);
498 reg!(340, Play, Clientbound, "ClientboundBossBar", 0x0C);
499 reg!(762, Play, Clientbound, "ClientboundBossBar", 0x0B);
500 reg!(765, Play, Clientbound, "ClientboundBossBar", 0x0A);
501 reg!(767, Play, Clientbound, "ClientboundBossBar", 0x0B);
502 reg!(5, Play, Clientbound, "ClientboundSpawnMob", 0x0F);
503
504 reg!(5, Play, Clientbound, "ClientboundChangeDifficulty", 0x41);
505 reg!(47, Play, Clientbound, "ClientboundChangeDifficulty", 0x41);
506 reg!(340, Play, Clientbound, "ClientboundChangeDifficulty", 0x0D);
507 reg!(762, Play, Clientbound, "ClientboundChangeDifficulty", 0x0C);
508 reg!(765, Play, Clientbound, "ClientboundChangeDifficulty", 0x0C);
509 reg!(767, Play, Clientbound, "ClientboundChangeDifficulty", 0x0C);
510 reg!(
511 765,
512 Play,
513 Clientbound,
514 "ClientboundChunkBatchFinished",
515 0x0D
516 );
517 reg!(
518 767,
519 Play,
520 Clientbound,
521 "ClientboundChunkBatchFinished",
522 0x0D
523 );
524 reg!(765, Play, Clientbound, "ClientboundChunkBatchStart", 0x0E);
525 reg!(767, Play, Clientbound, "ClientboundChunkBatchStart", 0x0E);
526 reg!(762, Play, Clientbound, "ClientboundChunkBiomes", 0x0D);
527 reg!(765, Play, Clientbound, "ClientboundChunkBiomes", 0x0F);
528 reg!(767, Play, Clientbound, "ClientboundChunkBiomes", 0x0F);
529 reg!(762, Play, Clientbound, "ClientboundClearTitles", 0x0E);
530 reg!(765, Play, Clientbound, "ClientboundClearTitles", 0x10);
531 reg!(767, Play, Clientbound, "ClientboundClearTitles", 0x10);
532 reg!(5, Play, Clientbound, "ClientboundCommandSuggestions", 0x3A);
533 reg!(47, Play, Clientbound, "ClientboundCommandSuggestions", 0x3A);
534 reg!(
535 340,
536 Play,
537 Clientbound,
538 "ClientboundCommandSuggestions",
539 0x0E
540 );
541 reg!(
542 762,
543 Play,
544 Clientbound,
545 "ClientboundCommandSuggestions",
546 0x0F
547 );
548 reg!(
549 765,
550 Play,
551 Clientbound,
552 "ClientboundCommandSuggestions",
553 0x11
554 );
555 reg!(
556 767,
557 Play,
558 Clientbound,
559 "ClientboundCommandSuggestions",
560 0x11
561 );
562 reg!(762, Play, Clientbound, "ClientboundCommands", 0x10);
563 reg!(765, Play, Clientbound, "ClientboundCommands", 0x12);
564 reg!(767, Play, Clientbound, "ClientboundCommands", 0x12);
565 reg!(5, Play, Clientbound, "ClientboundContainerClose", 0x2E);
566 reg!(47, Play, Clientbound, "ClientboundContainerClose", 0x2E);
567 reg!(340, Play, Clientbound, "ClientboundContainerClose", 0x12);
568 reg!(762, Play, Clientbound, "ClientboundContainerClose", 0x11);
569 reg!(765, Play, Clientbound, "ClientboundContainerClose", 0x13);
570 reg!(767, Play, Clientbound, "ClientboundContainerClose", 0x13);
571 reg!(5, Play, Clientbound, "ClientboundContainerSetContent", 0x30);
572 reg!(
573 47,
574 Play,
575 Clientbound,
576 "ClientboundContainerSetContent",
577 0x30
578 );
579 reg!(
580 340,
581 Play,
582 Clientbound,
583 "ClientboundContainerSetContent",
584 0x14
585 );
586 reg!(
587 762,
588 Play,
589 Clientbound,
590 "ClientboundContainerSetContent",
591 0x12
592 );
593 reg!(
594 765,
595 Play,
596 Clientbound,
597 "ClientboundContainerSetContent",
598 0x14
599 );
600 reg!(
601 767,
602 Play,
603 Clientbound,
604 "ClientboundContainerSetContent",
605 0x14
606 );
607 reg!(
608 5,
609 Play,
610 Clientbound,
611 "ClientboundContainerSetProperty",
612 0x31
613 );
614 reg!(
615 47,
616 Play,
617 Clientbound,
618 "ClientboundContainerSetProperty",
619 0x31
620 );
621 reg!(
622 340,
623 Play,
624 Clientbound,
625 "ClientboundContainerSetProperty",
626 0x15
627 );
628 reg!(
629 762,
630 Play,
631 Clientbound,
632 "ClientboundContainerSetProperty",
633 0x13
634 );
635 reg!(
636 765,
637 Play,
638 Clientbound,
639 "ClientboundContainerSetProperty",
640 0x15
641 );
642 reg!(
643 767,
644 Play,
645 Clientbound,
646 "ClientboundContainerSetProperty",
647 0x15
648 );
649 reg!(5, Play, Clientbound, "ClientboundContainerSetSlot", 0x2F);
650 reg!(47, Play, Clientbound, "ClientboundContainerSetSlot", 0x2F);
651 reg!(340, Play, Clientbound, "ClientboundContainerSetSlot", 0x16);
652 reg!(762, Play, Clientbound, "ClientboundContainerSetSlot", 0x14);
653 reg!(765, Play, Clientbound, "ClientboundContainerSetSlot", 0x16);
654 reg!(767, Play, Clientbound, "ClientboundContainerSetSlot", 0x16);
655 reg!(767, Play, Clientbound, "ClientboundCookieRequest", 0x17);
656 reg!(340, Play, Clientbound, "ClientboundCooldown", 0x17);
657 reg!(762, Play, Clientbound, "ClientboundCooldown", 0x15);
658 reg!(765, Play, Clientbound, "ClientboundCooldown", 0x17);
659 reg!(767, Play, Clientbound, "ClientboundCooldown", 0x18);
660 reg!(
661 762,
662 Play,
663 Clientbound,
664 "ClientboundCustomChatCompletions",
665 0x16
666 );
667 reg!(
668 765,
669 Play,
670 Clientbound,
671 "ClientboundCustomChatCompletions",
672 0x18
673 );
674 reg!(
675 767,
676 Play,
677 Clientbound,
678 "ClientboundCustomChatCompletions",
679 0x19
680 );
681 reg!(5, Play, Clientbound, "ClientboundCustomPayload", 0x3F);
682 reg!(5, Play, Clientbound, "ClientboundPluginMessage", 0x3F);
683 reg!(47, Play, Clientbound, "ClientboundCustomPayload", 0x3F);
684 reg!(47, Play, Clientbound, "ClientboundPluginMessage", 0x3F);
685 reg!(340, Play, Clientbound, "ClientboundPluginMessage", 0x18);
686 reg!(762, Play, Clientbound, "ClientboundCustomPayload", 0x17);
687 reg!(762, Play, Clientbound, "ClientboundPluginMessage", 0x17);
688 reg!(765, Play, Clientbound, "ClientboundCustomPayload", 0x18);
689 reg!(765, Play, Clientbound, "ClientboundPluginMessage", 0x18);
690 reg!(767, Play, Clientbound, "ClientboundCustomPayload", 0x1A);
691 reg!(767, Play, Clientbound, "ClientboundPluginMessage", 0x1A);
692 reg!(762, Play, Clientbound, "ClientboundDamageEvent", 0x18);
693 reg!(765, Play, Clientbound, "ClientboundDamageEvent", 0x19);
694 reg!(767, Play, Clientbound, "ClientboundDamageEvent", 0x1B);
695 reg!(767, Play, Clientbound, "ClientboundDebugSample", 0x1C);
696 reg!(762, Play, Clientbound, "ClientboundDeleteChat", 0x19);
697 reg!(765, Play, Clientbound, "ClientboundDeleteChat", 0x1A);
698 reg!(767, Play, Clientbound, "ClientboundDeleteChat", 0x1D);
699 reg!(5, Play, Clientbound, "ClientboundDisconnect", 0x40);
700 reg!(47, Play, Clientbound, "ClientboundDisconnect", 0x40);
701 reg!(340, Play, Clientbound, "ClientboundDisconnect", 0x1A);
702 reg!(762, Play, Clientbound, "ClientboundDisconnect", 0x1A);
703 reg!(765, Play, Clientbound, "ClientboundDisconnect", 0x1B);
704 reg!(767, Play, Clientbound, "ClientboundDisconnect", 0x1E);
705 reg!(762, Play, Clientbound, "ClientboundDisguisedChat", 0x1B);
706 reg!(765, Play, Clientbound, "ClientboundDisguisedChat", 0x1C);
707 reg!(767, Play, Clientbound, "ClientboundDisguisedChat", 0x1F);
708 reg!(5, Play, Clientbound, "ClientboundEntityEvent", 0x1A);
709 reg!(47, Play, Clientbound, "ClientboundEntityEvent", 0x1A);
710 reg!(340, Play, Clientbound, "ClientboundEntityEvent", 0x1B);
711 reg!(762, Play, Clientbound, "ClientboundEntityEvent", 0x1C);
712 reg!(765, Play, Clientbound, "ClientboundEntityEvent", 0x1D);
713 reg!(767, Play, Clientbound, "ClientboundEntityEvent", 0x20);
714 reg!(5, Play, Clientbound, "ClientboundExplosion", 0x27);
715 reg!(47, Play, Clientbound, "ClientboundExplosion", 0x27);
716 reg!(340, Play, Clientbound, "ClientboundExplosion", 0x1C);
717 reg!(762, Play, Clientbound, "ClientboundExplosion", 0x1D);
718 reg!(765, Play, Clientbound, "ClientboundExplosion", 0x1E);
719 reg!(767, Play, Clientbound, "ClientboundExplosion", 0x21);
720 reg!(5, Play, Clientbound, "ClientboundForgetLevelChunk", 0x26);
721 reg!(47, Play, Clientbound, "ClientboundForgetLevelChunk", 0x26);
722 reg!(340, Play, Clientbound, "ClientboundForgetLevelChunk", 0x22);
723 reg!(762, Play, Clientbound, "ClientboundForgetLevelChunk", 0x1E);
724 reg!(765, Play, Clientbound, "ClientboundForgetLevelChunk", 0x1F);
725 reg!(767, Play, Clientbound, "ClientboundForgetLevelChunk", 0x22);
726 reg!(5, Play, Clientbound, "ClientboundGameEvent", 0x2B);
727 reg!(47, Play, Clientbound, "ClientboundGameEvent", 0x2B);
728 reg!(340, Play, Clientbound, "ClientboundGameEvent", 0x1E);
729 reg!(762, Play, Clientbound, "ClientboundGameEvent", 0x1F);
730 reg!(765, Play, Clientbound, "ClientboundGameEvent", 0x20);
731 reg!(767, Play, Clientbound, "ClientboundGameEvent", 0x23);
732 reg!(340, Play, Clientbound, "ClientboundHorseScreenOpen", 0x1F);
733 reg!(762, Play, Clientbound, "ClientboundHorseScreenOpen", 0x20);
734 reg!(765, Play, Clientbound, "ClientboundHorseScreenOpen", 0x21);
735 reg!(767, Play, Clientbound, "ClientboundHorseScreenOpen", 0x24);
736 reg!(762, Play, Clientbound, "ClientboundHurtAnimation", 0x21);
737 reg!(765, Play, Clientbound, "ClientboundHurtAnimation", 0x22);
738 reg!(767, Play, Clientbound, "ClientboundHurtAnimation", 0x25);
739 reg!(47, Play, Clientbound, "ClientboundInitializeBorder", 0x44);
740 reg!(340, Play, Clientbound, "ClientboundInitializeBorder", 0x38);
741 reg!(762, Play, Clientbound, "ClientboundInitializeBorder", 0x22);
742 reg!(765, Play, Clientbound, "ClientboundInitializeBorder", 0x23);
743 reg!(767, Play, Clientbound, "ClientboundInitializeBorder", 0x26);
744 reg!(5, Play, Clientbound, "ClientboundKeepAlive", 0x00);
745 reg!(47, Play, Clientbound, "ClientboundKeepAlive", 0x00);
746 reg!(340, Play, Clientbound, "ClientboundKeepAlive", 0x1F);
747 reg!(762, Play, Clientbound, "ClientboundKeepAlive", 0x24);
748 reg!(765, Play, Clientbound, "ClientboundKeepAlive", 0x26);
749 reg!(767, Play, Clientbound, "ClientboundKeepAlive", 0x29);
750 reg!(5, Play, Clientbound, "ClientboundLevelChunkWithLight", 0x21);
751 reg!(
752 47,
753 Play,
754 Clientbound,
755 "ClientboundLevelChunkWithLight",
756 0x21
757 );
758 reg!(
759 340,
760 Play,
761 Clientbound,
762 "ClientboundLevelChunkWithLight",
763 0x20
764 );
765 reg!(340, Play, Clientbound, "SPacketChunkData", 0x20);
766 reg!(
767 762,
768 Play,
769 Clientbound,
770 "ClientboundLevelChunkWithLight",
771 0x25
772 );
773 reg!(
774 765,
775 Play,
776 Clientbound,
777 "ClientboundLevelChunkWithLight",
778 0x27
779 );
780 reg!(
781 767,
782 Play,
783 Clientbound,
784 "ClientboundLevelChunkWithLight",
785 0x2A
786 );
787 reg!(5, Play, Clientbound, "ClientboundLevelEvent", 0x28);
788 reg!(47, Play, Clientbound, "ClientboundLevelEvent", 0x28);
789 reg!(340, Play, Clientbound, "ClientboundLevelEvent", 0x21);
790 reg!(762, Play, Clientbound, "ClientboundLevelEvent", 0x26);
791 reg!(765, Play, Clientbound, "ClientboundLevelEvent", 0x28);
792 reg!(767, Play, Clientbound, "ClientboundLevelEvent", 0x2B);
793 reg!(5, Play, Clientbound, "ClientboundLevelParticles", 0x2A);
794 reg!(47, Play, Clientbound, "ClientboundLevelParticles", 0x2A);
795 reg!(762, Play, Clientbound, "ClientboundLevelParticles", 0x27);
796 reg!(765, Play, Clientbound, "ClientboundLevelParticles", 0x29);
797 reg!(767, Play, Clientbound, "ClientboundLevelParticles", 0x2C);
798 reg!(762, Play, Clientbound, "ClientboundLightUpdate", 0x28);
799 reg!(765, Play, Clientbound, "ClientboundLightUpdate", 0x2A);
800 reg!(767, Play, Clientbound, "ClientboundLightUpdate", 0x2D);
801 reg!(5, Play, Clientbound, "ClientboundLoginPlay", 0x01);
802 reg!(5, Play, Clientbound, "ClientboundJoinGame", 0x01);
803 reg!(5, Play, Clientbound, "ClientboundLogin", 0x01);
804 reg!(47, Play, Clientbound, "ClientboundLoginPlay", 0x01);
805 reg!(47, Play, Clientbound, "ClientboundJoinGame", 0x01);
806 reg!(47, Play, Clientbound, "ClientboundLogin", 0x01);
807 reg!(340, Play, Clientbound, "ClientboundLoginPlay", 0x23);
808 reg!(340, Play, Clientbound, "ClientboundJoinGame", 0x23);
809 reg!(340, Play, Clientbound, "ClientboundLogin", 0x23);
810 reg!(762, Play, Clientbound, "ClientboundLoginPlay", 0x29);
811 reg!(762, Play, Clientbound, "ClientboundJoinGame", 0x29);
812 reg!(762, Play, Clientbound, "ClientboundLogin", 0x29);
813 reg!(765, Play, Clientbound, "ClientboundLoginPlay", 0x2B);
814 reg!(765, Play, Clientbound, "ClientboundJoinGame", 0x2B);
815 reg!(765, Play, Clientbound, "ClientboundLogin", 0x2B);
816 reg!(767, Play, Clientbound, "ClientboundLoginPlay", 0x2E);
817 reg!(767, Play, Clientbound, "ClientboundJoinGame", 0x2E);
818 reg!(767, Play, Clientbound, "ClientboundLogin", 0x2E);
819 reg!(5, Play, Clientbound, "ClientboundMapItemData", 0x34);
820 reg!(47, Play, Clientbound, "ClientboundMapItemData", 0x34);
821 reg!(340, Play, Clientbound, "ClientboundMapItemData", 0x24);
822 reg!(762, Play, Clientbound, "ClientboundMapItemData", 0x2A);
823 reg!(765, Play, Clientbound, "ClientboundMapItemData", 0x2C);
824 reg!(767, Play, Clientbound, "ClientboundMapItemData", 0x2F);
825 reg!(762, Play, Clientbound, "ClientboundMerchantOffers", 0x2B);
826 reg!(765, Play, Clientbound, "ClientboundMerchantOffers", 0x2D);
827 reg!(767, Play, Clientbound, "ClientboundMerchantOffers", 0x30);
828 reg!(5, Play, Clientbound, "ClientboundMoveEntityPos", 0x15);
829 reg!(47, Play, Clientbound, "ClientboundMoveEntityPos", 0x15);
830 reg!(340, Play, Clientbound, "ClientboundMoveEntityPos", 0x26);
831 reg!(762, Play, Clientbound, "ClientboundMoveEntityPos", 0x2C);
832 reg!(765, Play, Clientbound, "ClientboundMoveEntityPos", 0x2E);
833 reg!(767, Play, Clientbound, "ClientboundMoveEntityPos", 0x31);
834 reg!(5, Play, Clientbound, "ClientboundMoveEntityPosRot", 0x17);
835 reg!(47, Play, Clientbound, "ClientboundMoveEntityPosRot", 0x17);
836 reg!(340, Play, Clientbound, "ClientboundMoveEntityPosRot", 0x27);
837 reg!(762, Play, Clientbound, "ClientboundMoveEntityPosRot", 0x2D);
838 reg!(765, Play, Clientbound, "ClientboundMoveEntityPosRot", 0x2F);
839 reg!(767, Play, Clientbound, "ClientboundMoveEntityPosRot", 0x32);
840 reg!(5, Play, Clientbound, "ClientboundMoveEntityRot", 0x16);
841 reg!(47, Play, Clientbound, "ClientboundMoveEntityRot", 0x16);
842 reg!(340, Play, Clientbound, "ClientboundMoveEntityRot", 0x28);
843 reg!(762, Play, Clientbound, "ClientboundMoveEntityRot", 0x2E);
844 reg!(765, Play, Clientbound, "ClientboundMoveEntityRot", 0x30);
845 reg!(767, Play, Clientbound, "ClientboundMoveEntityRot", 0x33);
846 reg!(340, Play, Clientbound, "ClientboundMoveVehicle", 0x29);
847 reg!(762, Play, Clientbound, "ClientboundMoveVehicle", 0x2F);
848 reg!(765, Play, Clientbound, "ClientboundMoveVehicle", 0x31);
849 reg!(767, Play, Clientbound, "ClientboundMoveVehicle", 0x34);
850 reg!(762, Play, Clientbound, "ClientboundOpenBook", 0x30);
851 reg!(765, Play, Clientbound, "ClientboundOpenBook", 0x32);
852 reg!(767, Play, Clientbound, "ClientboundOpenBook", 0x35);
853 reg!(5, Play, Clientbound, "ClientboundOpenScreen", 0x2D);
854 reg!(47, Play, Clientbound, "ClientboundOpenScreen", 0x2D);
855 reg!(340, Play, Clientbound, "ClientboundOpenScreen", 0x13);
856 reg!(762, Play, Clientbound, "ClientboundOpenScreen", 0x31);
857 reg!(765, Play, Clientbound, "ClientboundOpenScreen", 0x33);
858 reg!(767, Play, Clientbound, "ClientboundOpenScreen", 0x36);
859 reg!(5, Play, Clientbound, "ClientboundOpenSignEditor", 0x36);
860 reg!(47, Play, Clientbound, "ClientboundOpenSignEditor", 0x36);
861 reg!(340, Play, Clientbound, "ClientboundOpenSignEditor", 0x2A);
862 reg!(762, Play, Clientbound, "ClientboundOpenSignEditor", 0x32);
863 reg!(765, Play, Clientbound, "ClientboundOpenSignEditor", 0x34);
864 reg!(767, Play, Clientbound, "ClientboundOpenSignEditor", 0x37);
865 reg!(762, Play, Clientbound, "ClientboundPing", 0x33);
866 reg!(765, Play, Clientbound, "ClientboundPing", 0x35);
867 reg!(767, Play, Clientbound, "ClientboundPing", 0x38);
868 reg!(340, Play, Clientbound, "ClientboundPlaceGhostRecipe", 0x31);
869 reg!(762, Play, Clientbound, "ClientboundPlaceGhostRecipe", 0x35);
870 reg!(765, Play, Clientbound, "ClientboundPlaceGhostRecipe", 0x37);
871 reg!(767, Play, Clientbound, "ClientboundPlaceGhostRecipe", 0x3A);
872 reg!(5, Play, Clientbound, "ClientboundPlayerAbilities", 0x39);
873 reg!(47, Play, Clientbound, "ClientboundPlayerAbilities", 0x39);
874 reg!(340, Play, Clientbound, "ClientboundPlayerAbilities", 0x2C);
875 reg!(762, Play, Clientbound, "ClientboundPlayerAbilities", 0x36);
876 reg!(765, Play, Clientbound, "ClientboundPlayerAbilities", 0x38);
877 reg!(767, Play, Clientbound, "ClientboundPlayerAbilities", 0x3B);
878 reg!(762, Play, Clientbound, "ClientboundPlayerChat", 0x37);
879 reg!(765, Play, Clientbound, "ClientboundPlayerChat", 0x39);
880 reg!(767, Play, Clientbound, "ClientboundPlayerChat", 0x3C);
881 reg!(5, Play, Clientbound, "ClientboundPlayerCombatEnd", 0x42);
882 reg!(47, Play, Clientbound, "ClientboundPlayerCombatEnd", 0x42);
883 reg!(340, Play, Clientbound, "ClientboundPlayerCombatEnd", 0x33);
884 reg!(762, Play, Clientbound, "ClientboundPlayerCombatEnd", 0x38);
885 reg!(765, Play, Clientbound, "ClientboundPlayerCombatEnd", 0x3A);
886 reg!(767, Play, Clientbound, "ClientboundPlayerCombatEnd", 0x3D);
887 reg!(5, Play, Clientbound, "ClientboundPlayerCombatEnter", 0x42);
888 reg!(47, Play, Clientbound, "ClientboundPlayerCombatEnter", 0x42);
889 reg!(340, Play, Clientbound, "ClientboundPlayerCombatEnter", 0x33);
890 reg!(762, Play, Clientbound, "ClientboundPlayerCombatEnter", 0x39);
891 reg!(765, Play, Clientbound, "ClientboundPlayerCombatEnter", 0x3B);
892 reg!(767, Play, Clientbound, "ClientboundPlayerCombatEnter", 0x3E);
893 reg!(5, Play, Clientbound, "ClientboundPlayerCombatKill", 0x42);
894 reg!(47, Play, Clientbound, "ClientboundPlayerCombatKill", 0x42);
895 reg!(340, Play, Clientbound, "ClientboundPlayerCombatKill", 0x33);
896 reg!(762, Play, Clientbound, "ClientboundPlayerCombatKill", 0x3A);
897 reg!(765, Play, Clientbound, "ClientboundPlayerCombatKill", 0x3C);
898 reg!(767, Play, Clientbound, "ClientboundPlayerCombatKill", 0x3F);
899 reg!(762, Play, Clientbound, "ClientboundPlayerInfoRemove", 0x3B);
900 reg!(765, Play, Clientbound, "ClientboundPlayerInfoRemove", 0x3D);
901 reg!(767, Play, Clientbound, "ClientboundPlayerInfoRemove", 0x40);
902 reg!(5, Play, Clientbound, "ClientboundPlayerInfoUpdate", 0x38);
903 reg!(47, Play, Clientbound, "ClientboundPlayerInfoUpdate", 0x38);
904 reg!(340, Play, Clientbound, "ClientboundPlayerInfoUpdate", 0x2E);
905 reg!(762, Play, Clientbound, "ClientboundPlayerInfoUpdate", 0x3C);
906 reg!(765, Play, Clientbound, "ClientboundPlayerInfoUpdate", 0x3E);
907 reg!(767, Play, Clientbound, "ClientboundPlayerInfoUpdate", 0x41);
908 reg!(762, Play, Clientbound, "ClientboundPlayerLookAt", 0x3D);
909 reg!(765, Play, Clientbound, "ClientboundPlayerLookAt", 0x3F);
910 reg!(767, Play, Clientbound, "ClientboundPlayerLookAt", 0x42);
911 reg!(5, Play, Clientbound, "ClientboundPlayerPosition", 0x08);
912 reg!(47, Play, Clientbound, "ClientboundPlayerPosition", 0x08);
913 reg!(762, Play, Clientbound, "ClientboundPlayerPosition", 0x3E);
914 reg!(765, Play, Clientbound, "ClientboundPlayerPosition", 0x40);
915 reg!(767, Play, Clientbound, "ClientboundPlayerPosition", 0x43);
916 reg!(
917 762,
918 Play,
919 Clientbound,
920 "ClientboundRecipeBookSettings",
921 0x3F
922 );
923 reg!(
924 765,
925 Play,
926 Clientbound,
927 "ClientboundRecipeBookSettings",
928 0x41
929 );
930 reg!(
931 767,
932 Play,
933 Clientbound,
934 "ClientboundRecipeBookSettings",
935 0x44
936 );
937 reg!(340, Play, Clientbound, "ClientboundRecipes", 0x34);
938 reg!(762, Play, Clientbound, "ClientboundRecipes", 0x40);
939 reg!(765, Play, Clientbound, "ClientboundRecipes", 0x42);
940 reg!(767, Play, Clientbound, "ClientboundRecipes", 0x45);
941 reg!(5, Play, Clientbound, "ClientboundRemoveEntities", 0x13);
942 reg!(47, Play, Clientbound, "ClientboundRemoveEntities", 0x13);
943 reg!(340, Play, Clientbound, "ClientboundRemoveEntities", 0x32);
944 reg!(762, Play, Clientbound, "ClientboundRemoveEntities", 0x41);
945 reg!(765, Play, Clientbound, "ClientboundRemoveEntities", 0x43);
946 reg!(767, Play, Clientbound, "ClientboundRemoveEntities", 0x46);
947 reg!(5, Play, Clientbound, "ClientboundRemoveEntityEffect", 0x1E);
948 reg!(47, Play, Clientbound, "ClientboundRemoveEntityEffect", 0x1E);
949 reg!(
950 340,
951 Play,
952 Clientbound,
953 "ClientboundRemoveEntityEffect",
954 0x36
955 );
956 reg!(
957 762,
958 Play,
959 Clientbound,
960 "ClientboundRemoveEntityEffect",
961 0x42
962 );
963 reg!(
964 765,
965 Play,
966 Clientbound,
967 "ClientboundRemoveEntityEffect",
968 0x44
969 );
970 reg!(
971 767,
972 Play,
973 Clientbound,
974 "ClientboundRemoveEntityEffect",
975 0x47
976 );
977 reg!(5, Play, Clientbound, "ClientboundResetScore", 0x3B);
978 reg!(47, Play, Clientbound, "ClientboundResetScore", 0x3B);
979 reg!(340, Play, Clientbound, "ClientboundResetScore", 0x4C);
980 reg!(767, Play, Clientbound, "ClientboundResetScore", 0x48);
981 reg!(765, Play, Clientbound, "ClientboundResourcePackPop", 0x46);
982 reg!(767, Play, Clientbound, "ClientboundResourcePackPop", 0x49);
983 reg!(5, Play, Clientbound, "ClientboundResourcePackPush", 0x48);
984 reg!(47, Play, Clientbound, "ClientboundResourcePackPush", 0x48);
985 reg!(340, Play, Clientbound, "ClientboundResourcePackPush", 0x3A);
986 reg!(762, Play, Clientbound, "ClientboundResourcePackPush", 0x43);
987 reg!(765, Play, Clientbound, "ClientboundResourcePackPush", 0x47);
988 reg!(767, Play, Clientbound, "ClientboundResourcePackPush", 0x4A);
989 reg!(5, Play, Clientbound, "ClientboundRespawn", 0x07);
990 reg!(47, Play, Clientbound, "ClientboundRespawn", 0x07);
991 reg!(340, Play, Clientbound, "ClientboundRespawn", 0x35);
992 reg!(762, Play, Clientbound, "ClientboundRespawn", 0x44);
993 reg!(765, Play, Clientbound, "ClientboundRespawn", 0x48);
994 reg!(767, Play, Clientbound, "ClientboundRespawn", 0x4B);
995 reg!(5, Play, Clientbound, "ClientboundRotateHead", 0x19);
996 reg!(47, Play, Clientbound, "ClientboundRotateHead", 0x19);
997 reg!(340, Play, Clientbound, "ClientboundRotateHead", 0x36);
998 reg!(762, Play, Clientbound, "ClientboundRotateHead", 0x45);
999 reg!(765, Play, Clientbound, "ClientboundRotateHead", 0x49);
1000 reg!(767, Play, Clientbound, "ClientboundRotateHead", 0x4C);
1001 reg!(5, Play, Clientbound, "ClientboundSectionBlocksUpdate", 0x22);
1002 reg!(
1003 47,
1004 Play,
1005 Clientbound,
1006 "ClientboundSectionBlocksUpdate",
1007 0x22
1008 );
1009 reg!(
1010 340,
1011 Play,
1012 Clientbound,
1013 "ClientboundSectionBlocksUpdate",
1014 0x10
1015 );
1016 reg!(
1017 762,
1018 Play,
1019 Clientbound,
1020 "ClientboundSectionBlocksUpdate",
1021 0x46
1022 );
1023 reg!(
1024 765,
1025 Play,
1026 Clientbound,
1027 "ClientboundSectionBlocksUpdate",
1028 0x4A
1029 );
1030 reg!(
1031 767,
1032 Play,
1033 Clientbound,
1034 "ClientboundSectionBlocksUpdate",
1035 0x4D
1036 );
1037 reg!(
1038 340,
1039 Play,
1040 Clientbound,
1041 "ClientboundSelectAdvancementsTab",
1042 0x37
1043 );
1044 reg!(
1045 762,
1046 Play,
1047 Clientbound,
1048 "ClientboundSelectAdvancementsTab",
1049 0x47
1050 );
1051 reg!(
1052 765,
1053 Play,
1054 Clientbound,
1055 "ClientboundSelectAdvancementsTab",
1056 0x4B
1057 );
1058 reg!(
1059 767,
1060 Play,
1061 Clientbound,
1062 "ClientboundSelectAdvancementsTab",
1063 0x4E
1064 );
1065 reg!(762, Play, Clientbound, "ClientboundServerData", 0x48);
1066 reg!(765, Play, Clientbound, "ClientboundServerData", 0x4C);
1067 reg!(767, Play, Clientbound, "ClientboundServerData", 0x4F);
1068 reg!(762, Play, Clientbound, "ClientboundSetActionBarText", 0x49);
1069 reg!(765, Play, Clientbound, "ClientboundSetActionBarText", 0x4D);
1070 reg!(767, Play, Clientbound, "ClientboundSetActionBarText", 0x50);
1071 reg!(47, Play, Clientbound, "ClientboundSetBorderCenter", 0x44);
1072 reg!(340, Play, Clientbound, "ClientboundSetBorderCenter", 0x38);
1073 reg!(762, Play, Clientbound, "ClientboundSetBorderCenter", 0x4A);
1074 reg!(765, Play, Clientbound, "ClientboundSetBorderCenter", 0x4E);
1075 reg!(767, Play, Clientbound, "ClientboundSetBorderCenter", 0x51);
1076 reg!(47, Play, Clientbound, "ClientboundSetBorderLerpSize", 0x44);
1077 reg!(340, Play, Clientbound, "ClientboundSetBorderLerpSize", 0x38);
1078 reg!(762, Play, Clientbound, "ClientboundSetBorderLerpSize", 0x4B);
1079 reg!(765, Play, Clientbound, "ClientboundSetBorderLerpSize", 0x4F);
1080 reg!(767, Play, Clientbound, "ClientboundSetBorderLerpSize", 0x52);
1081 reg!(47, Play, Clientbound, "ClientboundSetBorderSize", 0x44);
1082 reg!(340, Play, Clientbound, "ClientboundSetBorderSize", 0x38);
1083 reg!(762, Play, Clientbound, "ClientboundSetBorderSize", 0x4C);
1084 reg!(765, Play, Clientbound, "ClientboundSetBorderSize", 0x50);
1085 reg!(767, Play, Clientbound, "ClientboundSetBorderSize", 0x53);
1086 reg!(
1087 47,
1088 Play,
1089 Clientbound,
1090 "ClientboundSetBorderWarningDelay",
1091 0x44
1092 );
1093 reg!(
1094 340,
1095 Play,
1096 Clientbound,
1097 "ClientboundSetBorderWarningDelay",
1098 0x38
1099 );
1100 reg!(
1101 762,
1102 Play,
1103 Clientbound,
1104 "ClientboundSetBorderWarningDelay",
1105 0x4D
1106 );
1107 reg!(
1108 765,
1109 Play,
1110 Clientbound,
1111 "ClientboundSetBorderWarningDelay",
1112 0x51
1113 );
1114 reg!(
1115 767,
1116 Play,
1117 Clientbound,
1118 "ClientboundSetBorderWarningDelay",
1119 0x54
1120 );
1121 reg!(
1122 47,
1123 Play,
1124 Clientbound,
1125 "ClientboundSetBorderWarningDistance",
1126 0x44
1127 );
1128 reg!(
1129 340,
1130 Play,
1131 Clientbound,
1132 "ClientboundSetBorderWarningDistance",
1133 0x38
1134 );
1135 reg!(
1136 762,
1137 Play,
1138 Clientbound,
1139 "ClientboundSetBorderWarningDistance",
1140 0x4E
1141 );
1142 reg!(
1143 765,
1144 Play,
1145 Clientbound,
1146 "ClientboundSetBorderWarningDistance",
1147 0x52
1148 );
1149 reg!(
1150 767,
1151 Play,
1152 Clientbound,
1153 "ClientboundSetBorderWarningDistance",
1154 0x55
1155 );
1156 reg!(47, Play, Clientbound, "ClientboundSetCamera", 0x43);
1157 reg!(340, Play, Clientbound, "ClientboundSetCamera", 0x39);
1158 reg!(762, Play, Clientbound, "ClientboundSetCamera", 0x4F);
1159 reg!(765, Play, Clientbound, "ClientboundSetCamera", 0x53);
1160 reg!(767, Play, Clientbound, "ClientboundSetCamera", 0x56);
1161 reg!(767, Play, Clientbound, "ClientboundSetCursorItem", 0x57);
1162 reg!(5, Play, Clientbound, "ClientboundSetEntityLink", 0x1B);
1163 reg!(47, Play, Clientbound, "ClientboundSetEntityLink", 0x1B);
1164 reg!(340, Play, Clientbound, "ClientboundSetEntityLink", 0x3F);
1165 reg!(762, Play, Clientbound, "ClientboundSetEntityLink", 0x50);
1166 reg!(765, Play, Clientbound, "ClientboundSetEntityLink", 0x54);
1167 reg!(767, Play, Clientbound, "ClientboundSetEntityLink", 0x58);
1168 reg!(5, Play, Clientbound, "ClientboundSetEntityMotion", 0x12);
1169 reg!(47, Play, Clientbound, "ClientboundSetEntityMotion", 0x12);
1170 reg!(340, Play, Clientbound, "ClientboundSetEntityMotion", 0x3D);
1171 reg!(762, Play, Clientbound, "ClientboundSetEntityMotion", 0x51);
1172 reg!(765, Play, Clientbound, "ClientboundSetEntityMotion", 0x55);
1173 reg!(767, Play, Clientbound, "ClientboundSetEntityMotion", 0x59);
1174 reg!(5, Play, Clientbound, "ClientboundSetEquipment", 0x04);
1175 reg!(47, Play, Clientbound, "ClientboundSetEquipment", 0x04);
1176 reg!(340, Play, Clientbound, "ClientboundSetEquipment", 0x3F);
1177 reg!(762, Play, Clientbound, "ClientboundSetEquipment", 0x52);
1178 reg!(765, Play, Clientbound, "ClientboundSetEquipment", 0x56);
1179 reg!(767, Play, Clientbound, "ClientboundSetEquipment", 0x5A);
1180 reg!(5, Play, Clientbound, "ClientboundSetExperience", 0x1F);
1181 reg!(47, Play, Clientbound, "ClientboundSetExperience", 0x1F);
1182 reg!(340, Play, Clientbound, "ClientboundSetExperience", 0x40);
1183 reg!(762, Play, Clientbound, "ClientboundSetExperience", 0x53);
1184 reg!(765, Play, Clientbound, "ClientboundSetExperience", 0x57);
1185 reg!(767, Play, Clientbound, "ClientboundSetExperience", 0x5B);
1186 reg!(5, Play, Clientbound, "ClientboundSetHealth", 0x06);
1187 reg!(47, Play, Clientbound, "ClientboundSetHealth", 0x06);
1188 reg!(340, Play, Clientbound, "ClientboundSetHealth", 0x41);
1189 reg!(762, Play, Clientbound, "ClientboundSetHealth", 0x54);
1190 reg!(765, Play, Clientbound, "ClientboundSetHealth", 0x58);
1191 reg!(767, Play, Clientbound, "ClientboundSetHealth", 0x5C);
1192 reg!(5, Play, Clientbound, "ClientboundSetHeldItem", 0x09);
1193 reg!(5, Play, Clientbound, "ClientboundSetCarriedItem", 0x09);
1194 reg!(47, Play, Clientbound, "ClientboundSetHeldItem", 0x09);
1195 reg!(47, Play, Clientbound, "ClientboundSetCarriedItem", 0x09);
1196 reg!(340, Play, Clientbound, "ClientboundSetHeldItem", 0x3A);
1197 reg!(340, Play, Clientbound, "ClientboundSetCarriedItem", 0x3A);
1198 reg!(762, Play, Clientbound, "ClientboundSetHeldItem", 0x4A);
1199 reg!(762, Play, Clientbound, "ClientboundSetCarriedItem", 0x4A);
1200 reg!(765, Play, Clientbound, "ClientboundSetHeldItem", 0x4C);
1201 reg!(765, Play, Clientbound, "ClientboundSetCarriedItem", 0x4C);
1202 reg!(767, Play, Clientbound, "ClientboundSetHeldItem", 0x5D);
1203 reg!(767, Play, Clientbound, "ClientboundSetCarriedItem", 0x5D);
1204 reg!(
1205 767,
1206 Play,
1207 Clientbound,
1208 "ClientboundSetPlayerInventory",
1209 0x5E
1210 );
1211 reg!(
1212 5,
1213 Play,
1214 Clientbound,
1215 "ClientboundSetScoreboardObjective",
1216 0x3B
1217 );
1218 reg!(
1219 47,
1220 Play,
1221 Clientbound,
1222 "ClientboundSetScoreboardObjective",
1223 0x3B
1224 );
1225 reg!(
1226 340,
1227 Play,
1228 Clientbound,
1229 "ClientboundSetScoreboardObjective",
1230 0x42
1231 );
1232 reg!(
1233 762,
1234 Play,
1235 Clientbound,
1236 "ClientboundSetScoreboardObjective",
1237 0x55
1238 );
1239 reg!(
1240 765,
1241 Play,
1242 Clientbound,
1243 "ClientboundSetScoreboardObjective",
1244 0x59
1245 );
1246 reg!(
1247 767,
1248 Play,
1249 Clientbound,
1250 "ClientboundSetScoreboardObjective",
1251 0x5F
1252 );
1253 reg!(5, Play, Clientbound, "ClientboundSetScoreboardScore", 0x3C);
1254 reg!(47, Play, Clientbound, "ClientboundSetScoreboardScore", 0x3C);
1255 reg!(
1256 340,
1257 Play,
1258 Clientbound,
1259 "ClientboundSetScoreboardScore",
1260 0x44
1261 );
1262 reg!(
1263 762,
1264 Play,
1265 Clientbound,
1266 "ClientboundSetScoreboardScore",
1267 0x56
1268 );
1269 reg!(
1270 765,
1271 Play,
1272 Clientbound,
1273 "ClientboundSetScoreboardScore",
1274 0x5A
1275 );
1276 reg!(
1277 767,
1278 Play,
1279 Clientbound,
1280 "ClientboundSetScoreboardScore",
1281 0x60
1282 );
1283 reg!(
1284 762,
1285 Play,
1286 Clientbound,
1287 "ClientboundSetSimulationDistance",
1288 0x57
1289 );
1290 reg!(
1291 765,
1292 Play,
1293 Clientbound,
1294 "ClientboundSetSimulationDistance",
1295 0x5B
1296 );
1297 reg!(
1298 767,
1299 Play,
1300 Clientbound,
1301 "ClientboundSetSimulationDistance",
1302 0x61
1303 );
1304 reg!(762, Play, Clientbound, "ClientboundSetSubtitleText", 0x58);
1305 reg!(765, Play, Clientbound, "ClientboundSetSubtitleText", 0x5C);
1306 reg!(767, Play, Clientbound, "ClientboundSetSubtitleText", 0x62);
1307 reg!(5, Play, Clientbound, "ClientboundSetTime", 0x03);
1308 reg!(47, Play, Clientbound, "ClientboundSetTime", 0x03);
1309 reg!(340, Play, Clientbound, "ClientboundSetTime", 0x47);
1310 reg!(762, Play, Clientbound, "ClientboundSetTime", 0x59);
1311 reg!(765, Play, Clientbound, "ClientboundSetTime", 0x5D);
1312 reg!(767, Play, Clientbound, "ClientboundSetTime", 0x63);
1313 reg!(762, Play, Clientbound, "ClientboundSetTitleText", 0x5A);
1314 reg!(765, Play, Clientbound, "ClientboundSetTitleText", 0x5E);
1315 reg!(767, Play, Clientbound, "ClientboundSetTitleText", 0x64);
1316 reg!(
1317 762,
1318 Play,
1319 Clientbound,
1320 "ClientboundSetTitleAnimationTimes",
1321 0x5B
1322 );
1323 reg!(
1324 765,
1325 Play,
1326 Clientbound,
1327 "ClientboundSetTitleAnimationTimes",
1328 0x5F
1329 );
1330 reg!(
1331 767,
1332 Play,
1333 Clientbound,
1334 "ClientboundSetTitleAnimationTimes",
1335 0x65
1336 );
1337 reg!(762, Play, Clientbound, "ClientboundSoundEntity", 0x5C);
1338 reg!(765, Play, Clientbound, "ClientboundSoundEntity", 0x60);
1339 reg!(767, Play, Clientbound, "ClientboundSoundEntity", 0x66);
1340 reg!(5, Play, Clientbound, "ClientboundSound", 0x29);
1341 reg!(47, Play, Clientbound, "ClientboundSound", 0x29);
1342 reg!(340, Play, Clientbound, "ClientboundSound", 0x49);
1343 reg!(762, Play, Clientbound, "ClientboundSound", 0x5D);
1344 reg!(765, Play, Clientbound, "ClientboundSound", 0x61);
1345 reg!(767, Play, Clientbound, "ClientboundSound", 0x67);
1346 reg!(
1347 765,
1348 Play,
1349 Clientbound,
1350 "ClientboundStartConfiguration",
1351 0x62
1352 );
1353 reg!(
1354 767,
1355 Play,
1356 Clientbound,
1357 "ClientboundStartConfiguration",
1358 0x68
1359 );
1360 reg!(340, Play, Clientbound, "ClientboundStopSound", 0x4A);
1361 reg!(762, Play, Clientbound, "ClientboundStopSound", 0x5E);
1362 reg!(765, Play, Clientbound, "ClientboundStopSound", 0x63);
1363 reg!(767, Play, Clientbound, "ClientboundStopSound", 0x69);
1364 reg!(767, Play, Clientbound, "ClientboundStoreCookie", 0x6A);
1365 reg!(5, Play, Clientbound, "ClientboundSystemChat", 0x02);
1366 reg!(5, Play, Clientbound, "ClientboundChatMessage", 0x02);
1367 reg!(47, Play, Clientbound, "ClientboundSystemChat", 0x02);
1368 reg!(47, Play, Clientbound, "ClientboundChatMessage", 0x02);
1369 reg!(340, Play, Clientbound, "ClientboundSystemChat", 0x0F);
1370 reg!(340, Play, Clientbound, "ClientboundChatMessage", 0x0F);
1371 reg!(762, Play, Clientbound, "ClientboundSystemChat", 0x62);
1372 reg!(762, Play, Clientbound, "ClientboundChatMessage", 0x62);
1373 reg!(765, Play, Clientbound, "ClientboundSystemChat", 0x64);
1374 reg!(765, Play, Clientbound, "ClientboundChatMessage", 0x64);
1375 reg!(767, Play, Clientbound, "ClientboundSystemChat", 0x6B);
1376 reg!(767, Play, Clientbound, "ClientboundChatMessage", 0x6B);
1377 reg!(5, Play, Clientbound, "ClientboundTabList", 0x47);
1378 reg!(47, Play, Clientbound, "ClientboundTabList", 0x47);
1379 reg!(340, Play, Clientbound, "ClientboundTabList", 0x4A);
1380 reg!(762, Play, Clientbound, "ClientboundTabList", 0x63);
1381 reg!(765, Play, Clientbound, "ClientboundTabList", 0x65);
1382 reg!(767, Play, Clientbound, "ClientboundTabList", 0x6C);
1383 reg!(762, Play, Clientbound, "ClientboundTagQuery", 0x64);
1384 reg!(765, Play, Clientbound, "ClientboundTagQuery", 0x66);
1385 reg!(767, Play, Clientbound, "ClientboundTagQuery", 0x6D);
1386 reg!(5, Play, Clientbound, "ClientboundTakeItemEntity", 0x0D);
1387 reg!(47, Play, Clientbound, "ClientboundTakeItemEntity", 0x0D);
1388 reg!(340, Play, Clientbound, "ClientboundTakeItemEntity", 0x4B);
1389 reg!(762, Play, Clientbound, "ClientboundTakeItemEntity", 0x65);
1390 reg!(765, Play, Clientbound, "ClientboundTakeItemEntity", 0x67);
1391 reg!(767, Play, Clientbound, "ClientboundTakeItemEntity", 0x6E);
1392 reg!(5, Play, Clientbound, "ClientboundTeleportEntity", 0x18);
1393 reg!(47, Play, Clientbound, "ClientboundTeleportEntity", 0x18);
1394 reg!(340, Play, Clientbound, "ClientboundTeleportEntity", 0x4C);
1395 reg!(762, Play, Clientbound, "ClientboundTeleportEntity", 0x66);
1396 reg!(765, Play, Clientbound, "ClientboundTeleportEntity", 0x68);
1397 reg!(767, Play, Clientbound, "ClientboundTeleportEntity", 0x6F);
1398 reg!(765, Play, Clientbound, "ClientboundTickingState", 0x69);
1399 reg!(767, Play, Clientbound, "ClientboundTickingState", 0x70);
1400 reg!(765, Play, Clientbound, "ClientboundTickingStep", 0x6A);
1401 reg!(767, Play, Clientbound, "ClientboundTickingStep", 0x71);
1402 reg!(767, Play, Clientbound, "ClientboundTransfer", 0x72);
1403 reg!(
1404 340,
1405 Play,
1406 Clientbound,
1407 "ClientboundUpdateAdvancements",
1408 0x4E
1409 );
1410 reg!(
1411 762,
1412 Play,
1413 Clientbound,
1414 "ClientboundUpdateAdvancements",
1415 0x67
1416 );
1417 reg!(
1418 765,
1419 Play,
1420 Clientbound,
1421 "ClientboundUpdateAdvancements",
1422 0x6B
1423 );
1424 reg!(
1425 767,
1426 Play,
1427 Clientbound,
1428 "ClientboundUpdateAdvancements",
1429 0x73
1430 );
1431 reg!(5, Play, Clientbound, "ClientboundUpdateAttributes", 0x20);
1432 reg!(47, Play, Clientbound, "ClientboundUpdateAttributes", 0x20);
1433 reg!(340, Play, Clientbound, "ClientboundUpdateAttributes", 0x4F);
1434 reg!(762, Play, Clientbound, "ClientboundUpdateAttributes", 0x68);
1435 reg!(765, Play, Clientbound, "ClientboundUpdateAttributes", 0x6C);
1436 reg!(767, Play, Clientbound, "ClientboundUpdateAttributes", 0x74);
1437 reg!(5, Play, Clientbound, "ClientboundUpdateEffects", 0x1D);
1438 reg!(47, Play, Clientbound, "ClientboundUpdateEffects", 0x1D);
1439 reg!(340, Play, Clientbound, "ClientboundUpdateEffects", 0x51);
1440 reg!(762, Play, Clientbound, "ClientboundUpdateEffects", 0x69);
1441 reg!(765, Play, Clientbound, "ClientboundUpdateEffects", 0x6D);
1442 reg!(767, Play, Clientbound, "ClientboundUpdateEffects", 0x75);
1443 reg!(762, Play, Clientbound, "ClientboundUpdateRecipes", 0x6A);
1444 reg!(765, Play, Clientbound, "ClientboundUpdateRecipes", 0x6E);
1445 reg!(767, Play, Clientbound, "ClientboundUpdateRecipes", 0x76);
1446 reg!(762, Play, Clientbound, "ClientboundUpdateTags", 0x6B);
1447 reg!(765, Play, Clientbound, "ClientboundUpdateTags", 0x6F);
1448 reg!(767, Play, Clientbound, "ClientboundUpdateTags", 0x77);
1449
1450 reg!(340, Play, Serverbound, "ServerboundTeleportConfirm", 0x00);
1451 reg!(
1452 340,
1453 Play,
1454 Serverbound,
1455 "ServerboundAcceptTeleportation",
1456 0x00
1457 );
1458 reg!(762, Play, Serverbound, "ServerboundTeleportConfirm", 0x00);
1459 reg!(
1460 762,
1461 Play,
1462 Serverbound,
1463 "ServerboundAcceptTeleportation",
1464 0x00
1465 );
1466 reg!(765, Play, Serverbound, "ServerboundTeleportConfirm", 0x00);
1467 reg!(
1468 765,
1469 Play,
1470 Serverbound,
1471 "ServerboundAcceptTeleportation",
1472 0x00
1473 );
1474 reg!(767, Play, Serverbound, "ServerboundTeleportConfirm", 0x00);
1475 reg!(
1476 767,
1477 Play,
1478 Serverbound,
1479 "ServerboundAcceptTeleportation",
1480 0x00
1481 );
1482 reg!(
1483 5,
1484 Play,
1485 Serverbound,
1486 "ServerboundMovePlayerStatusOnly",
1487 0x03
1488 );
1489 reg!(
1490 47,
1491 Play,
1492 Serverbound,
1493 "ServerboundMovePlayerStatusOnly",
1494 0x03
1495 );
1496 reg!(
1497 340,
1498 Play,
1499 Serverbound,
1500 "ServerboundMovePlayerStatusOnly",
1501 0x0C
1502 );
1503 reg!(
1504 762,
1505 Play,
1506 Serverbound,
1507 "ServerboundMovePlayerStatusOnly",
1508 0x13
1509 );
1510 reg!(
1511 765,
1512 Play,
1513 Serverbound,
1514 "ServerboundMovePlayerStatusOnly",
1515 0x15
1516 );
1517 reg!(
1518 767,
1519 Play,
1520 Serverbound,
1521 "ServerboundMovePlayerStatusOnly",
1522 0x16
1523 );
1524 reg!(5, Play, Serverbound, "ServerboundMovePlayerPos", 0x04);
1525 reg!(47, Play, Serverbound, "ServerboundMovePlayerPos", 0x04);
1526 reg!(340, Play, Serverbound, "ServerboundMovePlayerPos", 0x0D);
1527 reg!(762, Play, Serverbound, "ServerboundMovePlayerPos", 0x14);
1528 reg!(765, Play, Serverbound, "ServerboundMovePlayerPos", 0x16);
1529 reg!(767, Play, Serverbound, "ServerboundMovePlayerPos", 0x17);
1530 reg!(5, Play, Serverbound, "ServerboundMovePlayerPosRot", 0x06);
1531 reg!(47, Play, Serverbound, "ServerboundMovePlayerPosRot", 0x06);
1532 reg!(340, Play, Serverbound, "ServerboundMovePlayerPosRot", 0x0F);
1533 reg!(762, Play, Serverbound, "ServerboundMovePlayerPosRot", 0x16);
1534 reg!(765, Play, Serverbound, "ServerboundMovePlayerPosRot", 0x18);
1535 reg!(767, Play, Serverbound, "ServerboundMovePlayerPosRot", 0x19);
1536 reg!(5, Play, Serverbound, "ServerboundMovePlayerRot", 0x05);
1537 reg!(47, Play, Serverbound, "ServerboundMovePlayerRot", 0x05);
1538 reg!(340, Play, Serverbound, "ServerboundMovePlayerRot", 0x0E);
1539 reg!(762, Play, Serverbound, "ServerboundMovePlayerRot", 0x15);
1540 reg!(765, Play, Serverbound, "ServerboundMovePlayerRot", 0x17);
1541 reg!(767, Play, Serverbound, "ServerboundMovePlayerRot", 0x18);
1542 reg!(340, Play, Serverbound, "ServerboundVehicleMove", 0x10);
1543 reg!(762, Play, Serverbound, "ServerboundVehicleMove", 0x17);
1544 reg!(765, Play, Serverbound, "ServerboundVehicleMove", 0x19);
1545 reg!(767, Play, Serverbound, "ServerboundVehicleMove", 0x1A);
1546 reg!(340, Play, Serverbound, "ServerboundSteerBoat", 0x11);
1547 reg!(762, Play, Serverbound, "ServerboundSteerBoat", 0x18);
1548 reg!(765, Play, Serverbound, "ServerboundSteerBoat", 0x1A);
1549 reg!(767, Play, Serverbound, "ServerboundSteerBoat", 0x1B);
1550 reg!(5, Play, Serverbound, "ServerboundPlayerAbilities", 0x13);
1551 reg!(47, Play, Serverbound, "ServerboundPlayerAbilities", 0x13);
1552 reg!(340, Play, Serverbound, "ServerboundPlayerAbilities", 0x13);
1553 reg!(762, Play, Serverbound, "ServerboundPlayerAbilities", 0x1B);
1554 reg!(765, Play, Serverbound, "ServerboundPlayerAbilities", 0x1D);
1555 reg!(767, Play, Serverbound, "ServerboundPlayerAbilities", 0x1E);
1556 reg!(5, Play, Serverbound, "ServerboundPlayerAction", 0x07);
1557 reg!(47, Play, Serverbound, "ServerboundPlayerAction", 0x07);
1558 reg!(340, Play, Serverbound, "ServerboundPlayerAction", 0x14);
1559 reg!(762, Play, Serverbound, "ServerboundPlayerAction", 0x1C);
1560 reg!(765, Play, Serverbound, "ServerboundPlayerAction", 0x1E);
1561 reg!(767, Play, Serverbound, "ServerboundPlayerAction", 0x1F);
1562 reg!(5, Play, Serverbound, "ServerboundEntityAction", 0x0B);
1563 reg!(47, Play, Serverbound, "ServerboundEntityAction", 0x0B);
1564 reg!(340, Play, Serverbound, "ServerboundEntityAction", 0x15);
1565 reg!(762, Play, Serverbound, "ServerboundEntityAction", 0x1D);
1566 reg!(765, Play, Serverbound, "ServerboundEntityAction", 0x1F);
1567 reg!(767, Play, Serverbound, "ServerboundEntityAction", 0x20);
1568 reg!(5, Play, Serverbound, "ServerboundSteerVehicle", 0x0C);
1569 reg!(47, Play, Serverbound, "ServerboundSteerVehicle", 0x0C);
1570 reg!(340, Play, Serverbound, "ServerboundSteerVehicle", 0x16);
1571 reg!(762, Play, Serverbound, "ServerboundSteerVehicle", 0x1E);
1572 reg!(765, Play, Serverbound, "ServerboundSteerVehicle", 0x20);
1573 reg!(767, Play, Serverbound, "ServerboundSteerVehicle", 0x21);
1574 reg!(5, Play, Serverbound, "ServerboundInteract", 0x02);
1575 reg!(47, Play, Serverbound, "ServerboundInteract", 0x02);
1576 reg!(340, Play, Serverbound, "ServerboundInteract", 0x0A);
1577 reg!(762, Play, Serverbound, "ServerboundInteract", 0x11);
1578 reg!(765, Play, Serverbound, "ServerboundInteract", 0x13);
1579 reg!(767, Play, Serverbound, "ServerboundInteract", 0x14);
1580 reg!(
1581 767,
1582 Play,
1583 Serverbound,
1584 "ServerboundPlayerWeaponAttack",
1585 0x22
1586 );
1587 reg!(5, Play, Serverbound, "ServerboundAnimation", 0x0A);
1588 reg!(5, Play, Serverbound, "ServerboundSwingArm", 0x0A);
1589 reg!(47, Play, Serverbound, "ServerboundAnimation", 0x0A);
1590 reg!(47, Play, Serverbound, "ServerboundSwingArm", 0x0A);
1591 reg!(340, Play, Serverbound, "ServerboundAnimation", 0x1D);
1592 reg!(340, Play, Serverbound, "ServerboundSwingArm", 0x1D);
1593 reg!(762, Play, Serverbound, "ServerboundAnimation", 0x2C);
1594 reg!(762, Play, Serverbound, "ServerboundSwingArm", 0x2C);
1595 reg!(765, Play, Serverbound, "ServerboundAnimation", 0x2E);
1596 reg!(765, Play, Serverbound, "ServerboundSwingArm", 0x2E);
1597 reg!(767, Play, Serverbound, "ServerboundAnimation", 0x32);
1598 reg!(767, Play, Serverbound, "ServerboundSwingArm", 0x32);
1599 reg!(47, Play, Serverbound, "ServerboundSpectate", 0x18);
1600 reg!(340, Play, Serverbound, "ServerboundSpectate", 0x1E);
1601 reg!(762, Play, Serverbound, "ServerboundSpectate", 0x2D);
1602 reg!(765, Play, Serverbound, "ServerboundSpectate", 0x2F);
1603 reg!(767, Play, Serverbound, "ServerboundSpectate", 0x33);
1604 reg!(
1605 5,
1606 Play,
1607 Serverbound,
1608 "ServerboundPlayerBlockPlacement",
1609 0x08
1610 );
1611 reg!(5, Play, Serverbound, "ServerboundUseItemOn", 0x08);
1612 reg!(
1613 47,
1614 Play,
1615 Serverbound,
1616 "ServerboundPlayerBlockPlacement",
1617 0x08
1618 );
1619 reg!(47, Play, Serverbound, "ServerboundUseItemOn", 0x08);
1620 reg!(
1621 340,
1622 Play,
1623 Serverbound,
1624 "ServerboundPlayerBlockPlacement",
1625 0x1F
1626 );
1627 reg!(340, Play, Serverbound, "ServerboundUseItemOn", 0x1F);
1628 reg!(
1629 762,
1630 Play,
1631 Serverbound,
1632 "ServerboundPlayerBlockPlacement",
1633 0x2E
1634 );
1635 reg!(762, Play, Serverbound, "ServerboundUseItemOn", 0x2E);
1636 reg!(
1637 765,
1638 Play,
1639 Serverbound,
1640 "ServerboundPlayerBlockPlacement",
1641 0x30
1642 );
1643 reg!(765, Play, Serverbound, "ServerboundUseItemOn", 0x30);
1644 reg!(
1645 767,
1646 Play,
1647 Serverbound,
1648 "ServerboundPlayerBlockPlacement",
1649 0x34
1650 );
1651 reg!(767, Play, Serverbound, "ServerboundUseItemOn", 0x34);
1652 reg!(340, Play, Serverbound, "ServerboundUseItem", 0x20);
1653 reg!(762, Play, Serverbound, "ServerboundUseItem", 0x2F);
1654 reg!(765, Play, Serverbound, "ServerboundUseItem", 0x31);
1655 reg!(767, Play, Serverbound, "ServerboundUseItem", 0x35);
1656 reg!(5, Play, Serverbound, "ServerboundCloseWindow", 0x0D);
1657 reg!(47, Play, Serverbound, "ServerboundCloseWindow", 0x0D);
1658 reg!(340, Play, Serverbound, "ServerboundCloseWindow", 0x08);
1659 reg!(762, Play, Serverbound, "ServerboundCloseWindow", 0x0B);
1660 reg!(765, Play, Serverbound, "ServerboundCloseWindow", 0x0C);
1661 reg!(767, Play, Serverbound, "ServerboundCloseWindow", 0x0E);
1662 reg!(5, Play, Serverbound, "ServerboundClickWindow", 0x0E);
1663 reg!(47, Play, Serverbound, "ServerboundClickWindow", 0x0E);
1664 reg!(340, Play, Serverbound, "ServerboundClickWindow", 0x07);
1665 reg!(762, Play, Serverbound, "ServerboundClickWindow", 0x0A);
1666 reg!(765, Play, Serverbound, "ServerboundClickWindow", 0x0B);
1667 reg!(767, Play, Serverbound, "ServerboundClickWindow", 0x0D);
1668 reg!(5, Play, Serverbound, "ServerboundClickWindowButton", 0x11);
1669 reg!(47, Play, Serverbound, "ServerboundClickWindowButton", 0x11);
1670 reg!(340, Play, Serverbound, "ServerboundClickWindowButton", 0x06);
1671 reg!(762, Play, Serverbound, "ServerboundClickWindowButton", 0x09);
1672 reg!(765, Play, Serverbound, "ServerboundClickWindowButton", 0x0A);
1673 reg!(767, Play, Serverbound, "ServerboundClickWindowButton", 0x0C);
1674 reg!(
1675 5,
1676 Play,
1677 Serverbound,
1678 "ServerboundCreativeInventoryAction",
1679 0x10
1680 );
1681 reg!(
1682 47,
1683 Play,
1684 Serverbound,
1685 "ServerboundCreativeInventoryAction",
1686 0x10
1687 );
1688 reg!(
1689 340,
1690 Play,
1691 Serverbound,
1692 "ServerboundCreativeInventoryAction",
1693 0x1B
1694 );
1695 reg!(
1696 762,
1697 Play,
1698 Serverbound,
1699 "ServerboundCreativeInventoryAction",
1700 0x28
1701 );
1702 reg!(
1703 765,
1704 Play,
1705 Serverbound,
1706 "ServerboundCreativeInventoryAction",
1707 0x2A
1708 );
1709 reg!(
1710 767,
1711 Play,
1712 Serverbound,
1713 "ServerboundCreativeInventoryAction",
1714 0x2E
1715 );
1716 reg!(5, Play, Serverbound, "ServerboundHeldItemChange", 0x09);
1717 reg!(47, Play, Serverbound, "ServerboundHeldItemChange", 0x09);
1718 reg!(340, Play, Serverbound, "ServerboundHeldItemChange", 0x1A);
1719 reg!(762, Play, Serverbound, "ServerboundHeldItemChange", 0x25);
1720 reg!(765, Play, Serverbound, "ServerboundHeldItemChange", 0x27);
1721 reg!(767, Play, Serverbound, "ServerboundHeldItemChange", 0x2B);
1722 reg!(
1723 767,
1724 Play,
1725 Serverbound,
1726 "ServerboundSetCreativeModeSlot",
1727 0x2C
1728 );
1729 reg!(5, Play, Serverbound, "ServerboundKeepAlive", 0x00);
1730 reg!(47, Play, Serverbound, "ServerboundKeepAlive", 0x00);
1731 reg!(340, Play, Serverbound, "ServerboundKeepAlive", 0x0B);
1732 reg!(762, Play, Serverbound, "ServerboundKeepAlive", 0x12);
1733 reg!(765, Play, Serverbound, "ServerboundKeepAlive", 0x14);
1734 reg!(767, Play, Serverbound, "ServerboundKeepAlive", 0x15);
1735 reg!(5, Play, Serverbound, "ServerboundChatMessage", 0x01);
1736 reg!(47, Play, Serverbound, "ServerboundChatMessage", 0x01);
1737 reg!(340, Play, Serverbound, "ServerboundChatMessage", 0x02);
1738 reg!(762, Play, Serverbound, "ServerboundChatMessage", 0x04);
1739 reg!(765, Play, Serverbound, "ServerboundChatMessage", 0x05);
1740 reg!(767, Play, Serverbound, "ServerboundChatMessage", 0x06);
1741 reg!(762, Play, Serverbound, "ServerboundChatCommand", 0x03);
1742 reg!(765, Play, Serverbound, "ServerboundChatCommand", 0x04);
1743 reg!(767, Play, Serverbound, "ServerboundChatCommand", 0x05);
1744 reg!(762, Play, Serverbound, "ServerboundChatSessionUpdate", 0x05);
1745 reg!(765, Play, Serverbound, "ServerboundChatSessionUpdate", 0x06);
1746 reg!(767, Play, Serverbound, "ServerboundChatSessionUpdate", 0x07);
1747 reg!(5, Play, Serverbound, "ServerboundClientStatus", 0x16);
1748 reg!(47, Play, Serverbound, "ServerboundClientStatus", 0x16);
1749 reg!(340, Play, Serverbound, "ServerboundClientStatus", 0x03);
1750 reg!(762, Play, Serverbound, "ServerboundClientStatus", 0x06);
1751 reg!(765, Play, Serverbound, "ServerboundClientStatus", 0x07);
1752 reg!(767, Play, Serverbound, "ServerboundClientStatus", 0x08);
1753 reg!(5, Play, Serverbound, "ServerboundClientSettings", 0x15);
1754 reg!(5, Play, Serverbound, "ServerboundClientInformation", 0x15);
1755 reg!(47, Play, Serverbound, "ServerboundClientSettings", 0x15);
1756 reg!(47, Play, Serverbound, "ServerboundClientInformation", 0x15);
1757 reg!(340, Play, Serverbound, "ServerboundClientSettings", 0x04);
1758 reg!(340, Play, Serverbound, "ServerboundClientInformation", 0x04);
1759 reg!(762, Play, Serverbound, "ServerboundClientSettings", 0x07);
1760 reg!(762, Play, Serverbound, "ServerboundClientInformation", 0x07);
1761 reg!(765, Play, Serverbound, "ServerboundClientSettings", 0x08);
1762 reg!(765, Play, Serverbound, "ServerboundClientInformation", 0x08);
1763 reg!(767, Play, Serverbound, "ServerboundClientSettings", 0x09);
1764 reg!(767, Play, Serverbound, "ServerboundClientInformation", 0x09);
1765 reg!(5, Play, Serverbound, "ServerboundPluginMessage", 0x17);
1766 reg!(47, Play, Serverbound, "ServerboundPluginMessage", 0x17);
1767 reg!(340, Play, Serverbound, "ServerboundPluginMessage", 0x09);
1768 reg!(762, Play, Serverbound, "ServerboundPluginMessage", 0x0C);
1769 reg!(765, Play, Serverbound, "ServerboundPluginMessage", 0x0D);
1770 reg!(767, Play, Serverbound, "ServerboundPluginMessage", 0x0F);
1771 reg!(5, Play, Serverbound, "ServerboundResourcePackStatus", 0x19);
1772 reg!(47, Play, Serverbound, "ServerboundResourcePackStatus", 0x19);
1773 reg!(
1774 340,
1775 Play,
1776 Serverbound,
1777 "ServerboundResourcePackStatus",
1778 0x19
1779 );
1780 reg!(
1781 762,
1782 Play,
1783 Serverbound,
1784 "ServerboundResourcePackStatus",
1785 0x24
1786 );
1787 reg!(
1788 765,
1789 Play,
1790 Serverbound,
1791 "ServerboundResourcePackStatus",
1792 0x26
1793 );
1794 reg!(
1795 767,
1796 Play,
1797 Serverbound,
1798 "ServerboundResourcePackStatus",
1799 0x2A
1800 );
1801 reg!(762, Play, Serverbound, "ServerboundPong", 0x20);
1802 reg!(765, Play, Serverbound, "ServerboundPong", 0x22);
1803 reg!(767, Play, Serverbound, "ServerboundPong", 0x24);
1804 reg!(
1805 765,
1806 Play,
1807 Serverbound,
1808 "ServerboundConfigurationAcknowledged",
1809 0x0B
1810 );
1811 reg!(
1812 767,
1813 Play,
1814 Serverbound,
1815 "ServerboundConfigurationAcknowledged",
1816 0x0B
1817 );
1818 reg!(767, Play, Serverbound, "ServerboundButtonPressed", 0x0C);
1819 reg!(5, Play, Serverbound, "ServerboundCommandSuggestion", 0x14);
1820 reg!(47, Play, Serverbound, "ServerboundCommandSuggestion", 0x14);
1821 reg!(340, Play, Serverbound, "ServerboundCommandSuggestion", 0x01);
1822 reg!(762, Play, Serverbound, "ServerboundCommandSuggestion", 0x09);
1823 reg!(765, Play, Serverbound, "ServerboundCommandSuggestion", 0x09);
1824 reg!(767, Play, Serverbound, "ServerboundCommandSuggestion", 0x0A);
1825 reg!(762, Play, Serverbound, "ServerboundDifficultyChange", 0x02);
1826 reg!(765, Play, Serverbound, "ServerboundDifficultyChange", 0x02);
1827 reg!(767, Play, Serverbound, "ServerboundDifficultyChange", 0x02);
1828 reg!(762, Play, Serverbound, "ServerboundDifficultyLock", 0x10);
1829 reg!(765, Play, Serverbound, "ServerboundDifficultyLock", 0x11);
1830 reg!(767, Play, Serverbound, "ServerboundDifficultyLock", 0x12);
1831 reg!(762, Play, Serverbound, "ServerboundEditBook", 0x0D);
1832 reg!(765, Play, Serverbound, "ServerboundEditBook", 0x0E);
1833 reg!(767, Play, Serverbound, "ServerboundEditBook", 0x10);
1834 reg!(762, Play, Serverbound, "ServerboundEntityTagQuery", 0x0E);
1835 reg!(765, Play, Serverbound, "ServerboundEntityTagQuery", 0x0F);
1836 reg!(767, Play, Serverbound, "ServerboundEntityTagQuery", 0x11);
1837 reg!(762, Play, Serverbound, "ServerboundJigsawGenerate", 0x0F);
1838 reg!(765, Play, Serverbound, "ServerboundJigsawGenerate", 0x10);
1839 reg!(767, Play, Serverbound, "ServerboundJigsawGenerate", 0x13);
1840 reg!(762, Play, Serverbound, "ServerboundPaddleBoat", 0x18);
1841 reg!(765, Play, Serverbound, "ServerboundPaddleBoat", 0x1A);
1842 reg!(767, Play, Serverbound, "ServerboundPaddleBoat", 0x1B);
1843 reg!(340, Play, Serverbound, "ServerboundPickItem", 0x12);
1844 reg!(762, Play, Serverbound, "ServerboundPickItem", 0x19);
1845 reg!(765, Play, Serverbound, "ServerboundPickItem", 0x1B);
1846 reg!(767, Play, Serverbound, "ServerboundPickItem", 0x1C);
1847 reg!(340, Play, Serverbound, "ServerboundPlaceRecipe", 0x13);
1848 reg!(762, Play, Serverbound, "ServerboundPlaceRecipe", 0x1A);
1849 reg!(765, Play, Serverbound, "ServerboundPlaceRecipe", 0x1C);
1850 reg!(767, Play, Serverbound, "ServerboundPlaceRecipe", 0x1D);
1851 reg!(
1852 340,
1853 Play,
1854 Serverbound,
1855 "ServerboundRecipeBookChangeSettings",
1856 0x17
1857 );
1858 reg!(
1859 762,
1860 Play,
1861 Serverbound,
1862 "ServerboundRecipeBookChangeSettings",
1863 0x21
1864 );
1865 reg!(
1866 765,
1867 Play,
1868 Serverbound,
1869 "ServerboundRecipeBookChangeSettings",
1870 0x23
1871 );
1872 reg!(
1873 767,
1874 Play,
1875 Serverbound,
1876 "ServerboundRecipeBookChangeSettings",
1877 0x26
1878 );
1879 reg!(
1880 340,
1881 Play,
1882 Serverbound,
1883 "ServerboundRecipeBookSeenRecipe",
1884 0x18
1885 );
1886 reg!(
1887 762,
1888 Play,
1889 Serverbound,
1890 "ServerboundRecipeBookSeenRecipe",
1891 0x22
1892 );
1893 reg!(
1894 765,
1895 Play,
1896 Serverbound,
1897 "ServerboundRecipeBookSeenRecipe",
1898 0x24
1899 );
1900 reg!(
1901 767,
1902 Play,
1903 Serverbound,
1904 "ServerboundRecipeBookSeenRecipe",
1905 0x27
1906 );
1907 reg!(762, Play, Serverbound, "ServerboundRenameItem", 0x23);
1908 reg!(765, Play, Serverbound, "ServerboundRenameItem", 0x25);
1909 reg!(767, Play, Serverbound, "ServerboundRenameItem", 0x29);
1910 reg!(340, Play, Serverbound, "ServerboundSelectTrade", 0x1C);
1911 reg!(762, Play, Serverbound, "ServerboundSelectTrade", 0x26);
1912 reg!(765, Play, Serverbound, "ServerboundSelectTrade", 0x28);
1913 reg!(767, Play, Serverbound, "ServerboundSelectTrade", 0x2D);
1914 reg!(340, Play, Serverbound, "ServerboundSetBeaconEffect", 0x1A);
1915 reg!(762, Play, Serverbound, "ServerboundSetBeaconEffect", 0x27);
1916 reg!(765, Play, Serverbound, "ServerboundSetBeaconEffect", 0x29);
1917 reg!(767, Play, Serverbound, "ServerboundSetBeaconEffect", 0x2F);
1918 reg!(340, Play, Serverbound, "ServerboundSetStructureBlock", 0x21);
1919 reg!(762, Play, Serverbound, "ServerboundSetStructureBlock", 0x30);
1920 reg!(765, Play, Serverbound, "ServerboundSetStructureBlock", 0x32);
1921 reg!(767, Play, Serverbound, "ServerboundSetStructureBlock", 0x36);
1922 reg!(767, Play, Serverbound, "ServerboundSetMerchantTrade", 0x2D);
1923 reg!(
1924 340,
1925 Play,
1926 Serverbound,
1927 "ServerboundUpdateCommandBlock",
1928 0x22
1929 );
1930 reg!(
1931 762,
1932 Play,
1933 Serverbound,
1934 "ServerboundUpdateCommandBlock",
1935 0x2A
1936 );
1937 reg!(
1938 765,
1939 Play,
1940 Serverbound,
1941 "ServerboundUpdateCommandBlock",
1942 0x2C
1943 );
1944 reg!(
1945 767,
1946 Play,
1947 Serverbound,
1948 "ServerboundUpdateCommandBlock",
1949 0x30
1950 );
1951 reg!(
1952 340,
1953 Play,
1954 Serverbound,
1955 "ServerboundUpdateCommandBlockMinecart",
1956 0x23
1957 );
1958 reg!(
1959 762,
1960 Play,
1961 Serverbound,
1962 "ServerboundUpdateCommandBlockMinecart",
1963 0x2B
1964 );
1965 reg!(
1966 765,
1967 Play,
1968 Serverbound,
1969 "ServerboundUpdateCommandBlockMinecart",
1970 0x2D
1971 );
1972 reg!(
1973 767,
1974 Play,
1975 Serverbound,
1976 "ServerboundUpdateCommandBlockMinecart",
1977 0x31
1978 );
1979 reg!(5, Play, Serverbound, "ServerboundUpdateSign", 0x12);
1980 reg!(47, Play, Serverbound, "ServerboundUpdateSign", 0x12);
1981 reg!(340, Play, Serverbound, "ServerboundUpdateSign", 0x1C);
1982 reg!(762, Play, Serverbound, "ServerboundUpdateSign", 0x2A);
1983 reg!(765, Play, Serverbound, "ServerboundUpdateSign", 0x33);
1984 reg!(767, Play, Serverbound, "ServerboundUpdateSign", 0x37);
1985 reg!(5, Play, Serverbound, "ServerboundConfirmTransaction", 0x0F);
1986 reg!(47, Play, Serverbound, "ServerboundConfirmTransaction", 0x0F);
1987 reg!(
1988 340,
1989 Play,
1990 Serverbound,
1991 "ServerboundConfirmTransaction",
1992 0x05
1993 );
1994 reg!(5, Play, Serverbound, "ServerboundEnchantItem", 0x11);
1995 reg!(47, Play, Serverbound, "ServerboundEnchantItem", 0x11);
1996
1997 reg!(340, Play, Serverbound, "ServerboundEnchantItem", 0x06);
1998 reg!(340, Play, Serverbound, "ServerboundChatMessage", 0x02);
1999 reg!(340, Play, Serverbound, "ServerboundCustomPayload", 0x0A);
2000 reg!(340, Play, Clientbound, "ClientboundCustomPayload", 0x18);
2001 reg!(340, Play, Clientbound, "ClientboundPlayerPosition", 0x2F);
2002 reg!(340, Play, Clientbound, "ClientboundLevelParticles", 0x22);
2003 reg!(340, Play, Clientbound, "ClientboundSpawnEntity", 0x00);
2004 reg!(
2005 340,
2006 Play,
2007 Clientbound,
2008 "ClientboundSpawnExperienceOrb",
2009 0x01
2010 );
2011 reg!(340, Play, Clientbound, "ClientboundSpawnGlobalEntity", 0x02);
2012 reg!(340, Play, Clientbound, "ClientboundSpawnMob", 0x03);
2013 reg!(340, Play, Clientbound, "ClientboundSpawnPainting", 0x04);
2014 reg!(340, Play, Clientbound, "ClientboundSpawnPlayer", 0x05);
2015
2016 reg!(
2017 340,
2018 Login,
2019 Clientbound,
2020 "ClientboundLoginPluginRequest",
2021 0xFF
2022 );
2023 reg!(
2024 340,
2025 Login,
2026 Serverbound,
2027 "ServerboundLoginPluginResponse",
2028 0xFF
2029 );
2030 reg!(
2031 340,
2032 Login,
2033 Serverbound,
2034 "ServerboundLoginAcknowledged",
2035 0xFF
2036 );
2037 reg!(
2038 340,
2039 Configuration,
2040 Serverbound,
2041 "AcknowledgeFinishConfiguration",
2042 0xFF
2043 );
2044
2045 r
2046}