minecraft-data 3.76.0 → 3.78.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/data.js +51 -2
  2. package/doc/history.md +8 -0
  3. package/index.d.ts +3 -0
  4. package/minecraft-data/README.md +2 -2
  5. package/minecraft-data/data/bedrock/1.21.30/proto.yml +4291 -0
  6. package/minecraft-data/data/bedrock/1.21.30/types.yml +2406 -0
  7. package/minecraft-data/data/bedrock/1.21.42/protocol.json +12754 -0
  8. package/minecraft-data/data/bedrock/1.21.42/version.json +6 -0
  9. package/minecraft-data/data/bedrock/common/protocolVersions.json +6 -0
  10. package/minecraft-data/data/bedrock/common/versions.json +2 -1
  11. package/minecraft-data/data/bedrock/latest/proto.yml +53 -19
  12. package/minecraft-data/data/bedrock/latest/types.yml +16 -0
  13. package/minecraft-data/data/dataPaths.json +51 -2
  14. package/minecraft-data/data/pc/1.20.3/proto.yml +7 -2
  15. package/minecraft-data/data/pc/1.20.3/protocol.json +29 -5
  16. package/minecraft-data/data/pc/1.20.5/enchantments.json +28 -28
  17. package/minecraft-data/data/pc/1.20.5/items.json +67 -67
  18. package/minecraft-data/data/pc/1.20.5/proto.yml +3446 -0
  19. package/minecraft-data/data/pc/1.20.5/protocol.json +98 -60
  20. package/minecraft-data/data/pc/1.21.1/blocks.json +39811 -0
  21. package/minecraft-data/data/pc/1.21.1/enchantments.json +959 -0
  22. package/minecraft-data/data/pc/1.21.1/foods.json +412 -0
  23. package/minecraft-data/data/pc/1.21.1/items.json +8780 -0
  24. package/minecraft-data/data/pc/1.21.1/language.json +6883 -0
  25. package/minecraft-data/data/pc/1.21.1/materials.json +134 -0
  26. package/minecraft-data/data/pc/1.21.1/protocol.json +9224 -0
  27. package/minecraft-data/data/pc/1.21.1/recipes.json +28095 -0
  28. package/minecraft-data/data/pc/1.21.1/sounds.json +6446 -0
  29. package/minecraft-data/data/pc/1.21.1/tints.json +447 -0
  30. package/minecraft-data/data/pc/1.21.1/version.json +6 -0
  31. package/minecraft-data/data/pc/common/features.json +5 -0
  32. package/minecraft-data/data/pc/common/protocolVersions.json +48 -0
  33. package/minecraft-data/data/pc/common/versions.json +2 -1
  34. package/minecraft-data/data/pc/latest/proto.yml +106 -18
  35. package/minecraft-data/doc/add-data-new-version.md +1 -0
  36. package/minecraft-data/doc/history.md +7 -0
  37. package/minecraft-data/tools/js/incrementVersion.js +1 -1
  38. package/package.json +1 -1
@@ -0,0 +1,3446 @@
1
+ !version: 1.20.5
2
+ !StartDocs: true
3
+
4
+ ^types:
5
+ varint: native
6
+ varlong: native
7
+ optvarint: varint
8
+ pstring: native
9
+ buffer: native
10
+ u8: native
11
+ u16: native
12
+ u32: native
13
+ u64: native
14
+ i8: native
15
+ i16: native
16
+ i32: native
17
+ i64: native
18
+ bool: native
19
+ f32: native
20
+ f64: native
21
+ UUID: native
22
+ option: native
23
+ entityMetadataLoop: native
24
+ topBitSetTerminatedArray: native
25
+ bitfield: native
26
+ container: native
27
+ switch: native
28
+ void: native
29
+ array: native
30
+ restBuffer: native
31
+ anonymousNbt: native
32
+ anonOptionalNbt: native
33
+ arrayWithLengthOffset: native
34
+ ByteArray: ["buffer", { "countType": "varint" }]
35
+ string: [
36
+ "pstring",
37
+ {
38
+ "countType": "varint"
39
+ }
40
+ ]
41
+ vec3f:
42
+ x: f32
43
+ y: f32
44
+ z: f32
45
+ vec4f:
46
+ x: f32
47
+ y: f32
48
+ z: f32
49
+ w: f32
50
+ vec3f64:
51
+ x: f64
52
+ y: f64
53
+ z: f64
54
+
55
+ SlotComponentType: varint =>
56
+ - custom_data
57
+ - max_stack_size
58
+ - max_damage
59
+ - damage
60
+ - unbreakable
61
+ - custom_name
62
+ - item_name
63
+ - lore
64
+ - rarity
65
+ - enchantments
66
+ - can_place_on
67
+ - can_break
68
+ - attribute_modifiers
69
+ - custom_model_data
70
+ - hide_additional_tooltip
71
+ - hide_tooltip
72
+ - repair_cost
73
+ - creative_slot_lock
74
+ - enchantment_glint_override
75
+ - intangible_projectile
76
+ - food
77
+ - fire_resistant
78
+ - tool
79
+ - stored_enchantments
80
+ - dyed_color
81
+ - map_color
82
+ - map_id
83
+ - map_decorations
84
+ - map_post_processing
85
+ - charged_projectiles
86
+ - bundle_contents
87
+ - potion_contents
88
+ - suspicious_stew_effects
89
+ - writable_book_content
90
+ - written_book_content
91
+ - trim
92
+ - debug_stick_state
93
+ - entity_data
94
+ - bucket_entity_data
95
+ - block_entity_data
96
+ - instrument
97
+ - ominous_bottle_amplifier
98
+ - jukebox_playable
99
+ - recipes
100
+ - lodestone_tracker
101
+ - firework_explosion
102
+ - fireworks
103
+ - profile
104
+ - note_block_sound
105
+ - banner_patterns
106
+ - base_color
107
+ - pot_decorations
108
+ - container
109
+ - block_state
110
+ - bees
111
+ - lock
112
+ - container_loot
113
+
114
+ SlotComponent:
115
+ type: SlotComponentType
116
+ data: type ?
117
+ # TODO: look into how nbt works here
118
+ if custom_data: anonymousNbt
119
+ if max_stack_size: varint
120
+ if max_damage: varint
121
+ if damage: varint
122
+ if unbreakable: bool
123
+ if custom_name: anonymousNbt
124
+ if item_name: anonymousNbt
125
+ if lore: anonOptionalNbt[]varint
126
+ if rarity: varint
127
+ if enchantments:
128
+ enchantments: []varint
129
+ id: varint
130
+ level: varint
131
+ showTooltip: bool
132
+ if can_place_on or can_break:
133
+ predicates: BlockPredicate[]varint
134
+ showTooltip: bool
135
+ if attribute_modifiers:
136
+ attributes: []varint
137
+ typeId: varint
138
+ uniqueId: UUID
139
+ name: string
140
+ value: f64
141
+ operation: varint =>
142
+ - add
143
+ - multiply_base
144
+ - multiply_total
145
+ slot: varint =>
146
+ - any
147
+ - main_hand
148
+ - off_hand
149
+ - hand
150
+ - feet
151
+ - legs
152
+ - chest
153
+ - head
154
+ - armor
155
+ - body
156
+ showTooltip: bool
157
+ if custom_model_data: varint
158
+ if hide_additional_tooltip: void
159
+ if hide_tooltip: void
160
+ if repair_cost: varint
161
+ if creative_slot_lock: void
162
+ if enchantment_glint_override: bool
163
+ if intangible_projectile: void
164
+ # Name Type Description
165
+ # Nutrition VarInt Non-negative
166
+ # Saturation Modifier Float How much saturation will be given after consuming the item.
167
+ # Can Always Eat Boolean Whether the item can always be eaten, even at full hunger.
168
+ # Seconds To Eat Float How long it takes to consume the item.
169
+ # Using converts to Slot Data This specifies the item produced after consuming the current item. In the Notchian server, this is used for stews, which turn into bowls. Set this to Air if the item should be consumed normally without leaving any other item after.
170
+ # Number of effects VarInt Number of elements in the following array.
171
+ # Effect Type ID Array Potion Effect The potion effect. See Potion Effect.
172
+ # Probability Float The probability for this effect to be chosen.
173
+ if food:
174
+ nutrition: varint
175
+ saturationModifier: f32
176
+ canAlwaysEat: bool
177
+ secondsToEat: f32
178
+ usingConvertsTo: Slot
179
+ effects: []varint
180
+ effect: varint
181
+ probability: f32
182
+ if fire_resistant: void
183
+ # Name Type Description
184
+ # Number of Rules VarInt The number of elements in the following array.
185
+ # Rule
186
+ # Blocks Array Block Set The block this rule applies to. See Block Set.
187
+ # Has Speed Boolean
188
+ # Speed Optional Float The speed at which the tool breaks this rules' blocks. Only present if Has Speed is true.
189
+ # Has Correct Drop For Blocks Boolean
190
+ # Correct Drop For Blocks Optional Boolean Whether items should drop only if this is the correct tool. Only present if Has Correct Drop For Blocks is true.
191
+ # Default Mining Speed Float The mining speed in case none of the previous rule were matched.
192
+ # Damage Per Block VarInt The amount of damage the item takes per block break.
193
+ if tool:
194
+ rules: []varint
195
+ blocks: BlockSet[]varint
196
+ hasSpeed: bool
197
+ speed: f32
198
+ hasCorrectDropForBlocks: bool
199
+ correctDropForBlocks: bool
200
+ defaultMiningSpeed: f32
201
+ damagePerBlock: varint
202
+ # Name Type Description
203
+ # Number of enchantments VarInt Number of elements in the following array.
204
+ # Enchantment Type ID Array VarInt Enum The ID of the enchantment in the enchantment registry.
205
+ # Level VarInt The level of the enchantment.
206
+ # Show In Tooltip Boolean Whether the list of enchantments should be shown on the item's tooltip.
207
+ if stored_enchantments:
208
+ enchantments: []varint
209
+ id: varint
210
+ level: varint
211
+ showInTooltip: bool
212
+ if dyed_color:
213
+ color: varint
214
+ showTooltip: bool
215
+ if map_color: varint
216
+ if map_id: varint
217
+ if map_decorations: anonOptionalNbt
218
+ if map_post_processing: varint
219
+ if charged_projectiles:
220
+ projectiles: Slot[]varint
221
+ if bundle_contents:
222
+ contents: Slot[]varint
223
+ # Name Type Description
224
+ # Has Potion ID Boolean Whether this potion has an ID in the potion registry. If true, it has the default effects associated with the potion type.
225
+ # Potion ID Optional VarInt The ID of the potion type in the potion registry. Only present if Has Potion ID is true.
226
+ # Has Custom Color Boolean Whether this potion has a custom color. If false, it uses the default color associated with the potion type.
227
+ # Custom Color Optional Int The RGB components of the color, encoded as an integer. Only present if Has Custom Color is true.
228
+ # Number Of Custom Effects VarInt The number of elements in the following array.
229
+ # Custom Effects Array of Potion Effect Any custom effects the potion might have. See Potion Effect.
230
+ if potion_contents:
231
+ hasPotionId: bool
232
+ potionId: optvarint
233
+ hasCustomColor: bool
234
+ customColor: optvarint
235
+ customEffects: []varint
236
+ effect: varint
237
+ details: EffectDetail
238
+ # Name Type Description
239
+ # Number Of Effects VarInt Number of elements in the following array.
240
+ # Effect Type ID Array VarInt Enum The ID of the effect in the potion effect type registry.
241
+ # Duration VarInt The duration of the effect.
242
+ if suspicious_stew_effects:
243
+ effects: []varint
244
+ effect: varint
245
+ duration: varint
246
+ # Name Type Description
247
+ # Number Of Pages VarInt Number of elements in the following array.
248
+ # Page Raw Content Array (100) String (1024) The raw text of the page.
249
+ # Has Filtered Content Boolean
250
+ # Filtered Content Optional String (1024) The content after passing through chat filters. Only present if Has Filtered Content is true.
251
+ if writable_book_content:
252
+ pages: BookPage[]varint
253
+ # Name Type Description
254
+ # Raw Title String (32) The raw title of the book.
255
+ # Has Filtered Title Boolean
256
+ # Filtered Title Optional String (32) The title after going through chat filters. Only present if Has Filtered Title is true.
257
+ # Author String
258
+ # Generation VarInt
259
+ # Number Of Pages VarInt Number of elements in the following array.
260
+ # Page Raw Content Array (100) TextComponent (1024) The raw text of the page.
261
+ # Has Filtered Content Boolean
262
+ # Filtered Content Optional Text Component (1024) The content after passing through chat filters. Only present if Has Filtered Content is true.
263
+ # Resolved Boolean Whether entity selectors have already been resolved.
264
+ if written_book_content:
265
+ rawTitle: string
266
+ filteredTitle?: string
267
+ author: string
268
+ generation: varint
269
+ pages: BookPage[]varint
270
+ # Whether entity selectors have already been resolved.
271
+ resolved: bool
272
+ # Name Type Description
273
+ # Trim Material Type VarInt Identifier used to determine the data that follows. It can be either:
274
+ # 0 - Directly represents a trim material, with the necessary data following.
275
+ # Anything else - References a trim material in its registry, by the ID of Trim Material Type - 1.
276
+ # Asset Name Optional String See Armor Trim Material Registry. Only present if Trim Material Type is 0.
277
+ # Ingredient Optional VarInt See Armor Trim Material Registry. Only present if Trim Material Type is 0.
278
+ # Item Model Index Optional Float See Armor Trim Material Registry. Only present if Trim Material Type is 0.
279
+ # Number of Overrides Optional VarInt See Armor Trim Material Registry. Only present if Trim Material Type is 0.
280
+ # Override Armor Material Type Optional Array VarInt Enum See Armor Trim Material Registry. Only present if Trim Material Type is 0.
281
+ # Overriden Asset Name String See Armor Trim Material Registry. Only present if Trim Material Type is 0.
282
+ # Description Optional Text Component See Armor Trim Material Registry. Only present if Trim Material Type is 0.
283
+ # Trim Pattern Type VarInt Identifier used to determine the data that follows. It can be either:
284
+ # 0 - Directly represents a trim pattern, with the necessary data following.
285
+ # Anything else - References a trim pattern in its registry, by the ID of Trim Pattern Type - 1.
286
+ # Asset Name Optional String See Armor Trim Pattern Registry. Only present if Trim Pattern Type is 0.
287
+ # Template Item Optional VarInt See Armor Trim Pattern Registry. Only present if Trim Pattern Type is 0.
288
+ # Description Optional Text Component See Armor Trim Pattern Registry. Only present if Trim Pattern Type is 0.
289
+ # Decal Optional Boolean See Armor Trim Pattern Registry. Only present if Trim Pattern Type is 0.
290
+ # Show In Tooltip Boolean Whether the trim information should be shown on the item's tooltip.
291
+ if trim:
292
+ # Identifier used to determine the data that follows. It can be either:
293
+ # 0 - Directly represents a trim material, with the necessary data following.
294
+ # Anything else - References a trim material in its registry, by the ID of Trim Material Type - 1.
295
+ materialType: varint
296
+ _: materialType ?
297
+ if 0:
298
+ assetName: string
299
+ ingredientId: varint
300
+ itemModelIndex: f32
301
+ numberOfOverrides: optvarint
302
+ override: []varint
303
+ armorMaterialType: varint
304
+ overridenAssetName: string
305
+ description: string
306
+ trimPatternType: varint
307
+ _: trimPatternType ?
308
+ if 0:
309
+ assetName: string
310
+ templateItem: varint
311
+ description: string
312
+ decal: bool
313
+ showInTooltip: bool
314
+ if debug_stick_state: anonymousNbt
315
+ if entity_data: anonymousNbt
316
+ if bucket_entity_data: anonymousNbt
317
+ if block_entity_data: anonymousNbt
318
+ # Name Type Description
319
+ # Instrument Type VarInt Identifier used to determine the data that follows. It can be either:
320
+ # 0 - Directly represents an instrument, with the necessary data following.
321
+ # Anything else - References an instrument in its registry, by the ID of Instrument Type - 1.
322
+ # Sound Event Optional Sound Event The sound to be played. Only present if Instrument Type is 0.
323
+ # Use duration Optional Float The maximum range of the sound. Only present if Instrument Type is 0.
324
+ # Range Optional Float The range of the instrument. Only present if Instrument Type is 0.
325
+ if instrument:
326
+ instrumentType: varint
327
+ _: instrumentType ?
328
+ if 0:
329
+ soundEvent: string
330
+ useDuration: f32
331
+ range: f32
332
+ if ominous_bottle_amplifier: varint
333
+ # Name Type Description
334
+ # Direct Mode Boolean Whether the jukebox song is specified directly, or just referenced by name.
335
+ # Jukebox Song Name Optional Identifier The name of the jukebox song in its respective registry. Only present if Direct Mode is false.
336
+ # Jukebox Song Type Optional VarInt Identifier used to determine the data that follows. It can be either:
337
+ # 0 - Directly represents a jukebox song, with the necessary data following.
338
+ # Anything else - References a jukebox song in its registry, by the ID of Jukebox Song Type - 1.
339
+ # Only present if Direct Mode is true.
340
+ # Sound Event Optional Sound Event The sound to be played. Only present if Direct Mode is true and Jukebox Song Type is 0.
341
+ # Description Optional Text Component The description shown in the item lore. Only present if Direct Mode is true and Jukebox Song Type is 0.
342
+ # Duration Optional Float The duration the songs should play for, in seconds. Only present if Direct Mode is true and Jukebox Song Type is 0.
343
+ # Output Optional VarInt The output strength given by a comparator. Between 0 and 15. Only present if Direct Mode is true and Jukebox Song Type is 0.
344
+ # Show In Tooltip Boolean Whether the song should be shown on the item's tooltip.
345
+ if jukebox_playable:
346
+ directMode: bool
347
+ _: directMode ?
348
+ if true:
349
+ jukeboxSongName: string
350
+ jukeboxSongType: varint
351
+ _: jukeboxSongType ?
352
+ if 0:
353
+ soundEvent:
354
+ soundEventType: varint
355
+ _: soundEventType ?
356
+ if 0:
357
+ soundName: string
358
+ fixedRange?: f32
359
+ description: anonymousNbt
360
+ duration: f32
361
+ output: varint
362
+ if false:
363
+ songLocation: string
364
+ showInTooltip: bool
365
+ if recipes: anonymousNbt
366
+ # Name Type Description
367
+ # Has Global Position Boolean Whether this lodestone points to a position, otherwise it spins randomly.
368
+ # Dimension Identifier The dimension the compass points to. Only present if Has Global Position is true.
369
+ # Position Position The position the compass points to. Only present if Has Global Position is true.
370
+ # Tracked Boolean Whether the component is removed when the associated lodestone is broken.
371
+ if lodestone_tracker:
372
+ globalPosition?:
373
+ dimension: string
374
+ position: vec3f
375
+ tracked: bool
376
+ # Name Type Description
377
+ # Shape VarInt Enum Can be one of the following:
378
+ # 0 - Small ball
379
+ # 1 - Large ball
380
+ # 2 - Star
381
+ # 3 - Creeper
382
+ # 4 - Burst
383
+ # Number Of Colors VarInt The number of elements in the following array.
384
+ # Colors Array of Int The RGB components of the color, encoded as an integer.
385
+ # Number Of Fade Colors VarInt The number of elements in the following array.
386
+ # Fade Colors Array of Int The RGB components of the color, encoded as an integer.
387
+ # Has Trail Boolean
388
+ # Has Twinkle Boolean
389
+ if firework_explosion: FireworkExplosion
390
+ if fireworks:
391
+ flightDuration: varint
392
+ explosions: FireworkExplosion[]varint
393
+ # Name Type Description
394
+ # Has Name Boolean
395
+ # Name Optional String (16) Only present if Has Name is true.
396
+ # Has Unique ID Boolean
397
+ # Unique ID Optional UUID Only present if Has Unique ID is true.
398
+ # Number of Properties VarInt Number of elements in the following array.
399
+ # Property Name Array String (64)
400
+ # Value String
401
+ # Has Signature Boolean
402
+ # Signature String (1024) Only present if Has Signature is true.
403
+ if profile:
404
+ hasName: bool
405
+ name: string
406
+ hasUniqueId: bool
407
+ uniqueId: UUID
408
+ properties: []varint
409
+ property: string
410
+ value: string
411
+ hasSignature: bool
412
+ signature: string
413
+ if note_block_sound: string
414
+ # Name Type Description
415
+ # Number of Layers VarInt Number of elements in the following array.
416
+ # Layer Pattern Type Array VarInt Identifier used to determine the data that follows. It can be either:
417
+ # 0 - Directly represents a pattern, with the necessary data following.
418
+ # Anything else - References a pattern in its registry, by the ID of Pattern Type - 1.
419
+ # Asset ID Optional Identifier Identifier of the asset. Only present if Pattern Type is 0.
420
+ # Translation Key Optional String Only present if Pattern Type is 0.
421
+ # Color Dye Color See Dye Color.
422
+ if banner_patterns:
423
+ layers: []varint
424
+ patternType: varint
425
+ _: patternType ?
426
+ if 0:
427
+ assetId: string
428
+ translationKey: string
429
+ color: varint
430
+ if base_color: varint
431
+ if pot_decorations:
432
+ # The ID of the items in the item registry.
433
+ decorations: varint[]varint
434
+ if container:
435
+ contents: Slot[]varint
436
+ # Name Type Description
437
+ # Number of Properties VarInt Number of elements in the following array.
438
+ # Property Name Array String
439
+ # Value String
440
+ if block_state:
441
+ properties: []varint
442
+ property: string
443
+ value: string
444
+ # Name Type Description
445
+ # Number of Bees VarInt Number of elements in the following array.
446
+ # Bee Entity Data Array NBT
447
+ # Ticks In Hive VarInt
448
+ # Min Ticks In Hive VarInt
449
+ if bees:
450
+ bees: []varint
451
+ # Custom data for the entity, always a Compound Tag. Same structure as the minecraft:custom_data component.
452
+ nbtData: anonymousNbt
453
+ ticksInHive: varint
454
+ minTicksInHive: varint
455
+ if lock: anonymousNbt
456
+ if container_loot: anonymousNbt
457
+
458
+ Slot:
459
+ itemCount: i8
460
+ _: itemCount ?
461
+ if 0: void
462
+ default:
463
+ itemId: varint
464
+ # https://wiki.vg/Slot_Data#Structured_components
465
+ # + public static final DataComponentType<CompoundTag> CUSTOM_DATA = new DataComponentType<>(ItemCodecHelper::readAnyTag, ItemCodecHelper::writeAnyTag, ObjectDataComponent::new);
466
+ # + public static final IntComponentType MAX_STACK_SIZE = new IntComponentType(ItemCodecHelper::readVarInt, ItemCodecHelper::writeVarInt, IntDataComponent::new);
467
+ # + public static final IntComponentType MAX_DAMAGE = new IntComponentType(ItemCodecHelper::readVarInt, ItemCodecHelper::writeVarInt, IntDataComponent::new);
468
+ # + public static final IntComponentType DAMAGE = new IntComponentType(ItemCodecHelper::readVarInt, ItemCodecHelper::writeVarInt, IntDataComponent::new);
469
+ # + public static final BooleanComponentType UNBREAKABLE = new BooleanComponentType(ByteBuf::readBoolean, ByteBuf::writeBoolean, BooleanDataComponent::new);
470
+ # + public static final DataComponentType<Component> CUSTOM_NAME = new DataComponentType<>(ItemCodecHelper::readComponent, ItemCodecHelper::writeComponent, ObjectDataComponent::new);
471
+ # + public static final DataComponentType<Component> ITEM_NAME = new DataComponentType<>(ItemCodecHelper::readComponent, ItemCodecHelper::writeComponent, ObjectDataComponent::new);
472
+ # + public static final DataComponentType<List<Component>> LORE = new DataComponentType<>(listReader(ItemCodecHelper::readComponent), listWriter(ItemCodecHelper::writeComponent), ObjectDataComponent::new);
473
+ # + public static final IntComponentType RARITY = new IntComponentType(ItemCodecHelper::readVarInt, ItemCodecHelper::writeVarInt, IntDataComponent::new);
474
+ # + public static final DataComponentType<ItemEnchantments> ENCHANTMENTS = new DataComponentType<>(ItemCodecHelper::readItemEnchantments, ItemCodecHelper::writeItemEnchantments, ObjectDataComponent::new);
475
+ # + public static final DataComponentType<AdventureModePredicate> CAN_PLACE_ON = new DataComponentType<>(ItemCodecHelper::readAdventureModePredicate, ItemCodecHelper::writeAdventureModePredicate, ObjectDataComponent::new);
476
+ # + public static final DataComponentType<AdventureModePredicate> CAN_BREAK = new DataComponentType<>(ItemCodecHelper::readAdventureModePredicate, ItemCodecHelper::writeAdventureModePredicate, ObjectDataComponent::new);
477
+ # + public static final DataComponentType<ItemAttributeModifiers> ATTRIBUTE_MODIFIERS = new DataComponentType<>(ItemCodecHelper::readItemAttributeModifiers, ItemCodecHelper::writeItemAttributeModifiers, ObjectDataComponent::new);
478
+ # + public static final IntComponentType CUSTOM_MODEL_DATA = new IntComponentType(ItemCodecHelper::readVarInt, ItemCodecHelper::writeVarInt, IntDataComponent::new);
479
+ # + public static final DataComponentType<Unit> HIDE_ADDITIONAL_TOOLTIP = new DataComponentType<>(unitReader(), unitWriter(), ObjectDataComponent::new);
480
+ # + public static final DataComponentType<Unit> HIDE_TOOLTIP = new DataComponentType<>(unitReader(), unitWriter(), ObjectDataComponent::new);
481
+ # + public static final IntComponentType REPAIR_COST = new IntComponentType(ItemCodecHelper::readVarInt, ItemCodecHelper::writeVarInt, IntDataComponent::new);
482
+ # + public static final DataComponentType<Unit> CREATIVE_SLOT_LOCK = new DataComponentType<>(unitReader(), unitWriter(), ObjectDataComponent::new);
483
+ # + public static final BooleanComponentType ENCHANTMENT_GLINT_OVERRIDE = new BooleanComponentType(ByteBuf::readBoolean, ByteBuf::writeBoolean, BooleanDataComponent::new);
484
+ # + public static final DataComponentType<CompoundTag> INTANGIBLE_PROJECTILE = new DataComponentType<>(ItemCodecHelper::readAnyTag, ItemCodecHelper::writeAnyTag, ObjectDataComponent::new);
485
+ # + public static final DataComponentType<FoodProperties> FOOD = new DataComponentType<>(ItemCodecHelper::readFoodProperties, ItemCodecHelper::writeFoodProperties, ObjectDataComponent::new);
486
+ # + public static final DataComponentType<Unit> FIRE_RESISTANT = new DataComponentType<>(unitReader(), unitWriter(), ObjectDataComponent::new);
487
+ # + public static final DataComponentType<ToolData> TOOL = new DataComponentType<>(ItemCodecHelper::readToolData, ItemCodecHelper::writeToolData, ObjectDataComponent::new);
488
+ # + public static final DataComponentType<ItemEnchantments> STORED_ENCHANTMENTS = new DataComponentType<>(ItemCodecHelper::readItemEnchantments, ItemCodecHelper::writeItemEnchantments, ObjectDataComponent::new);
489
+ # + public static final DataComponentType<DyedItemColor> DYED_COLOR = new DataComponentType<>(ItemCodecHelper::readDyedItemColor, ItemCodecHelper::writeDyedItemColor, ObjectDataComponent::new);
490
+ # + public static final IntComponentType MAP_COLOR = new IntComponentType((helper, input) -> input.readInt(), (helper, output, value) -> output.writeInt(value), IntDataComponent::new);
491
+ # + public static final IntComponentType MAP_ID = new IntComponentType(ItemCodecHelper::readVarInt, ItemCodecHelper::writeVarInt, IntDataComponent::new);
492
+ # + public static final DataComponentType<CompoundTag> MAP_DECORATIONS = new DataComponentType<>(ItemCodecHelper::readAnyTag, ItemCodecHelper::writeAnyTag, ObjectDataComponent::new);
493
+ # + public static final IntComponentType MAP_POST_PROCESSING = new IntComponentType(ItemCodecHelper::readVarInt, ItemCodecHelper::writeVarInt, IntDataComponent::new);
494
+ # + public static final DataComponentType<List<ItemStack>> CHARGED_PROJECTILES = new DataComponentType<>(listReader(ItemCodecHelper::readItemStack), listWriter(ItemCodecHelper::writeItemStack), ObjectDataComponent::new);
495
+ # + public static final DataComponentType<List<ItemStack>> BUNDLE_CONTENTS = new DataComponentType<>(listReader(ItemCodecHelper::readItemStack), listWriter(ItemCodecHelper::writeItemStack), ObjectDataComponent::new);
496
+ # + public static final DataComponentType<PotionContents> POTION_CONTENTS = new DataComponentType<>(ItemCodecHelper::readPotionContents, ItemCodecHelper::writePotionContents, ObjectDataComponent::new);
497
+ # + public static final DataComponentType<List<SuspiciousStewEffect>> SUSPICIOUS_STEW_EFFECTS = new DataComponentType<>(listReader(ItemCodecHelper::readStewEffect), listWriter(ItemCodecHelper::writeStewEffect), ObjectDataComponent::new);
498
+ # + public static final DataComponentType<WritableBookContent> WRITABLE_BOOK_CONTENT = new DataComponentType<>(ItemCodecHelper::readWritableBookContent, ItemCodecHelper::writeWritableBookContent, ObjectDataComponent::new);
499
+ # + public static final DataComponentType<WrittenBookContent> WRITTEN_BOOK_CONTENT = new DataComponentType<>(ItemCodecHelper::readWrittenBookContent, ItemCodecHelper::writeWrittenBookContent, ObjectDataComponent::new);
500
+ # + public static final DataComponentType<ArmorTrim> TRIM = new DataComponentType<>(ItemCodecHelper::readArmorTrim, ItemCodecHelper::writeArmorTrim, ObjectDataComponent::new);
501
+ # + public static final DataComponentType<CompoundTag> DEBUG_STICK_STATE = new DataComponentType<>(ItemCodecHelper::readAnyTag, ItemCodecHelper::writeAnyTag, ObjectDataComponent::new);
502
+ # + public static final DataComponentType<CompoundTag> ENTITY_DATA = new DataComponentType<>(ItemCodecHelper::readAnyTag, ItemCodecHelper::writeAnyTag, ObjectDataComponent::new);
503
+ # + public static final DataComponentType<CompoundTag> BUCKET_ENTITY_DATA = new DataComponentType<>(ItemCodecHelper::readAnyTag, ItemCodecHelper::writeAnyTag, ObjectDataComponent::new);
504
+ # + public static final DataComponentType<CompoundTag> BLOCK_ENTITY_DATA = new DataComponentType<>(ItemCodecHelper::readAnyTag, ItemCodecHelper::writeAnyTag, ObjectDataComponent::new);
505
+ # + public static final DataComponentType<Holder<Instrument>> INSTRUMENT = new DataComponentType<>(ItemCodecHelper::readInstrument, ItemCodecHelper::writeInstrument, ObjectDataComponent::new);
506
+ # + public static final IntComponentType OMINOUS_BOTTLE_AMPLIFIER = new IntComponentType(ItemCodecHelper::readVarInt, ItemCodecHelper::writeVarInt, IntDataComponent::new);
507
+ # + public static final DataComponentType<ListTag> RECIPES = new DataComponentType<>(ItemCodecHelper::readRecipes, ItemCodecHelper::writeRecipes, ObjectDataComponent::new);
508
+ # + public static final DataComponentType<LodestoneTracker> LODESTONE_TRACKER = new DataComponentType<>(ItemCodecHelper::readLodestoneTarget, ItemCodecHelper::writeLodestoneTarget, ObjectDataComponent::new);
509
+ # + public static final DataComponentType<Fireworks.FireworkExplosion> FIREWORK_EXPLOSION = new DataComponentType<>(ItemCodecHelper::readFireworkExplosion, ItemCodecHelper::writeFireworkExplosion, ObjectDataComponent::new);
510
+ # + public static final DataComponentType<Fireworks> FIREWORKS = new DataComponentType<>(ItemCodecHelper::readFireworks, ItemCodecHelper::writeFireworks, ObjectDataComponent::new);
511
+ # + public static final DataComponentType<GameProfile> PROFILE = new DataComponentType<>(ItemCodecHelper::readResolvableProfile, ItemCodecHelper::writeResolvableProfile, ObjectDataComponent::new);
512
+ # + public static final DataComponentType<String> NOTE_BLOCK_SOUND = new DataComponentType<>(ItemCodecHelper::readResourceLocation, ItemCodecHelper::writeResourceLocation, ObjectDataComponent::new);
513
+ # + public static final DataComponentType<List<BannerPatternLayer>> BANNER_PATTERNS = new DataComponentType<>(listReader(ItemCodecHelper::readBannerPatternLayer), listWriter(ItemCodecHelper::writeBannerPatternLayer), ObjectDataComponent::new);
514
+ # + public static final IntComponentType BASE_COLOR = new IntComponentType(ItemCodecHelper::readVarInt, ItemCodecHelper::writeVarInt, IntDataComponent::new);
515
+ # + public static final DataComponentType<List<Integer>> POT_DECORATIONS = new DataComponentType<>(listReader(ItemCodecHelper::readVarInt), listWriter(ItemCodecHelper::writeVarInt), ObjectDataComponent::new);
516
+ # + public static final DataComponentType<List<ItemStack>> CONTAINER = new DataComponentType<>(listReader(ItemCodecHelper::readOptionalItemStack), listWriter(MinecraftCodecHelper::writeOptionalItemStack), ObjectDataComponent::new);
517
+ # + public static final DataComponentType<BlockStateProperties> BLOCK_STATE = new DataComponentType<>(ItemCodecHelper::readBlockStateProperties, ItemCodecHelper::writeBlockStateProperties, ObjectDataComponent::new);
518
+ # + public static final DataComponentType<List<BeehiveOccupant>> BEES = new DataComponentType<>(listReader(ItemCodecHelper::readBeehiveOccupant), listWriter(ItemCodecHelper::writeBeehiveOccupant), ObjectDataComponent::new);
519
+ # + public static final DataComponentType<StringTag> LOCK = new DataComponentType<>(ItemCodecHelper::readLock, ItemCodecHelper::writeLock, ObjectDataComponent::new);
520
+ # + public static final DataComponentType<CompoundTag> CONTAINER_LOOT = new DataComponentType<>(ItemCodecHelper::readAnyTag, ItemCodecHelper::writeAnyTag, ObjectDataComponent::new);
521
+ addedComponentCount: varint
522
+ removedComponentCount: varint
523
+ components: SlotComponent[]$addedComponentCount
524
+ removeComponents: []$removedComponentCount
525
+ type: SlotComponentType
526
+
527
+ FireworkExplosion:
528
+ shape: varint =>
529
+ - small_ball
530
+ - large_ball
531
+ - star
532
+ - creeper
533
+ - burst
534
+ colors: i32[]varint
535
+ fadeColors: i32[]varint
536
+ hasTrail: bool
537
+ hasTwinkle: bool
538
+
539
+ BookPage:
540
+ content: string
541
+ filteredContent?: string
542
+
543
+ EffectDetail:
544
+ amplifier: varint
545
+ duration: varint
546
+ ambient: bool
547
+ showParticles: bool
548
+ showIcon: bool
549
+ hiddenEffect?: EffectDetail
550
+
551
+ BlockSet:
552
+ type: varint
553
+ name: type ?
554
+ if 0: string
555
+ default: void
556
+ # TODO: This will require a custom type ; we need type - 1 length of blockIds
557
+ blockIds: type ?
558
+ if 0: void
559
+ default: ["arrayWithLengthOffset", {"count": "type", "type": "varint", "lengthOffset": -1}]
560
+
561
+ BlockProperty:
562
+ # Name of the block state property.
563
+ name: string
564
+ # Whether this is an exact value match, as opposed to ranged.
565
+ isExactMatch: bool
566
+ # Value of the block state property. Only present in exact match mode.
567
+ exactValue?: string
568
+ # Minimum value of the block state property range. Only present in ranged match mode.
569
+ minValue?: string
570
+ # Maximum value of the block state property range. Only present in ranged match mode.
571
+ maxValue?: string
572
+
573
+ BlockPredicate:
574
+ blockSet?: BlockSet[]varint
575
+ properties?: BlockProperty[]varint
576
+ nbt: anonOptionalNbt
577
+
578
+ Particle:
579
+ # See client/net/minecraft/core/particles/ParticleTypes.java
580
+ type: varint =>
581
+ - angry_villager
582
+ - block
583
+ - block_marker
584
+ - bubble
585
+ - cloud
586
+ - crit
587
+ - damage_indicator
588
+ - dragon_breath
589
+ - dripping_lava
590
+ - falling_lava
591
+ - landing_lava
592
+ - dripping_water
593
+ - falling_water
594
+ - dust
595
+ - dust_color_transition
596
+ - effect
597
+ - elder_guardian
598
+ - enchanted_hit
599
+ - enchant
600
+ - end_rod
601
+ - entity_effect
602
+ - explosion_emitter
603
+ - explosion
604
+ - gust
605
+ - small_gust
606
+ - gust_emitter_large
607
+ - gust_emitter_small
608
+ - sonic_boom
609
+ - falling_dust
610
+ - firework
611
+ - fishing
612
+ - flame
613
+ - infested
614
+ - cherry_leaves
615
+ - sculk_soul
616
+ - sculk_charge
617
+ - sculk_charge_pop
618
+ - soul_fire_flame
619
+ - soul
620
+ - flash
621
+ - happy_villager
622
+ - composter
623
+ - heart
624
+ - instant_effect
625
+ - item
626
+ - vibration
627
+ - item_slime
628
+ - item_cobweb
629
+ - item_snowball
630
+ - large_smoke
631
+ - lava
632
+ - mycelium
633
+ - note
634
+ - poof
635
+ - portal
636
+ - rain
637
+ - smoke
638
+ - white_smoke
639
+ - sneeze
640
+ - spit
641
+ - squid_ink
642
+ - sweep_attack
643
+ - totem_of_undying
644
+ - underwater
645
+ - splash
646
+ - witch
647
+ - bubble_pop
648
+ - current_down
649
+ - bubble_column_up
650
+ - nautilus
651
+ - dolphin
652
+ - campfire_cosy_smoke
653
+ - campfire_signal_smoke
654
+ - dripping_honey
655
+ - falling_honey
656
+ - landing_honey
657
+ - falling_nectar
658
+ - falling_spore_blossom
659
+ - ash
660
+ - crimson_spore
661
+ - warped_spore
662
+ - spore_blossom_air
663
+ - dripping_obsidian_tear
664
+ - falling_obsidian_tear
665
+ - landing_obsidian_tear
666
+ - reverse_portal
667
+ - white_ash
668
+ - small_flame
669
+ - snowflake
670
+ - dripping_dripstone_lava
671
+ - falling_dripstone_lava
672
+ - dripping_dripstone_water
673
+ - falling_dripstone_water
674
+ - glow_squid_ink
675
+ - glow
676
+ - wax_on
677
+ - wax_off
678
+ - electric_spark
679
+ - scrape
680
+ - shriek
681
+ - egg_crack
682
+ - dust_plume
683
+ - trial_spawner_detected_player
684
+ - trial_spawner_detected_player_ominous
685
+ - vault_connection
686
+ - dust_pillar
687
+ - ominous_spawning
688
+ - raid_omen
689
+ - trial_omen
690
+ ## ## Tips for reviewing particle data (as of 1.20.5)
691
+ ## Inside the registry code, each particle can have an associated "options" type and
692
+ ## each options type can add additional data to be encoded.
693
+ ## For example, this line
694
+ ## public static final ParticleType<BlockParticleOption> BLOCK = register("block", false, BlockParticleOption::codec, BlockParticleOption::streamCodec);
695
+ ## will read the stream codec from BlockParticleOption.java's streamCodec member; then we see
696
+ ## return ByteBufCodecs.idMapper(Block.BLOCK_STATE_REGISTRY).map(var1 -> new BlockParticleOption(var0, var1), var0x -> var0x.state);
697
+ ## this encodes with the ByteBufCodecs.idMapper function. Inside this function we find
698
+ ## public void encode(ByteBuf var1x, T var2) {
699
+ ## int var3 = var1.applyAsInt(var2);
700
+ ## VarInt.write(var1x, var3);
701
+ ## }
702
+ ## which as we can see writes the varint to the buffer.
703
+ ## If you want to see all the serializers try regexp searching "StreamCodec.*Particle"
704
+ data: type ?
705
+ if block or block_marker or falling_dust or dust_pillar: varint
706
+ if dust:
707
+ red: f32
708
+ green: f32
709
+ blue: f32
710
+ scale: f32
711
+ if dust_color_transition:
712
+ fromRed: f32
713
+ fromGreen: f32
714
+ fromBlue: f32
715
+ scale: f32
716
+ toRed: f32
717
+ toGreen: f32
718
+ toBlue: f32
719
+ if entity_effect: i32
720
+ if item: Slot
721
+ if sculk_charge: f32
722
+ if shriek: varint
723
+ if vibration:
724
+ position: string
725
+ entityId: varint
726
+ ingredient: Slot[]varint
727
+ position: [
728
+ "bitfield",
729
+ [
730
+ {
731
+ "name": "x",
732
+ "size": 26,
733
+ "signed": true
734
+ },
735
+ {
736
+ "name": "z",
737
+ "size": 26,
738
+ "signed": true
739
+ },
740
+ {
741
+ "name": "y",
742
+ "size": 12,
743
+ "signed": true
744
+ }
745
+ ]
746
+ ]
747
+ soundSource: varint =>
748
+ 0: master
749
+ 1: music
750
+ 2: record
751
+ 3: weather
752
+ 4: block
753
+ 5: hostile
754
+ 6: neutral
755
+ 7: player
756
+ 8: ambient
757
+ 9: voice
758
+ packedChunkPos:
759
+ z: i32
760
+ x: i32
761
+ previousMessages: []varint
762
+ id: varint
763
+ signature: id ?
764
+ if 0: [
765
+ "buffer",
766
+ {
767
+ "count": 256
768
+ }
769
+ ]
770
+ default: void
771
+ entityMetadataEntry:
772
+ key: u8
773
+ type: varint =>
774
+ - byte
775
+ - int
776
+ - long
777
+ - float
778
+ - string
779
+ - component
780
+ - optional_component
781
+ - item_stack
782
+ - boolean
783
+ - rotations
784
+ - block_pos
785
+ - optional_block_pos
786
+ - direction
787
+ - optional_uuid
788
+ - block_state
789
+ - optional_block_state
790
+ - compound_tag
791
+ - particle
792
+ - particles
793
+ - villager_data
794
+ - optional_unsigned_int
795
+ - pose
796
+ - cat_variant
797
+ - wolf_variant
798
+ - frog_variant
799
+ - optional_global_pos
800
+ - painting_variant
801
+ - sniffer_state
802
+ - armadillo_state
803
+ - vector3
804
+ - quaternion
805
+ value: type ?
806
+ if byte: i8
807
+ if int: varint
808
+ if long: varlong
809
+ if float: f32
810
+ if string: string
811
+ if component: anonymousNbt
812
+ if optional_component: ["option", "anonymousNbt"]
813
+ if item_stack: Slot
814
+ if boolean: bool
815
+ if rotations:
816
+ pitch: f32
817
+ yaw: f32
818
+ roll: f32
819
+ if block_pos: position
820
+ if optional_block_pos: ["option", "position"]
821
+ if direction: varint
822
+ if optional_uuid: ["option", "UUID"]
823
+ if block_state: varint
824
+ if optional_block_state: optvarint
825
+ if compound_tag: anonymousNbt
826
+ if particle: Particle
827
+ if particles: Particle[]varint
828
+ if villager_data:
829
+ villagerType: varint
830
+ villagerProfession: varint
831
+ level: varint
832
+ if optional_unsigned_int: optvarint
833
+ if pose: varint
834
+ if cat_variant: varint
835
+ if wolf_variant: varint
836
+ if frog_variant: varint
837
+ if optional_global_pos: ["option", "string"]
838
+ if painting_variant: varint
839
+ if sniffer_state: varint
840
+ if armadillo_state: varint
841
+ if vector3: vec3f
842
+ if quaternion: vec4f
843
+ entityMetadata: ["entityMetadataLoop", { "endVal": 255, "type": "entityMetadataEntry" }]
844
+ minecraft_simple_recipe_format:
845
+ category: varint
846
+ minecraft_smelting_format:
847
+ group: string
848
+ category: varint
849
+ ingredient: ingredient
850
+ result: Slot
851
+ experience: f32
852
+ cookTime: varint
853
+ tags: []varint
854
+ tagName: string
855
+ entries: varint[]varint
856
+ chunkBlockEntity:
857
+ _: [
858
+ "bitfield",
859
+ [
860
+ {
861
+ "name": "x",
862
+ "size": 4,
863
+ "signed": false
864
+ },
865
+ {
866
+ "name": "z",
867
+ "size": 4,
868
+ "signed": false
869
+ }
870
+ ]
871
+ ]
872
+ y: i16
873
+ type: varint
874
+ nbtData: anonOptionalNbt
875
+ chat_session?:
876
+ uuid: UUID
877
+ publicKey:
878
+ expireTime: i64
879
+ keyBytes: [
880
+ "buffer",
881
+ {
882
+ "countType": "varint"
883
+ }
884
+ ]
885
+ keySignature: [
886
+ "buffer",
887
+ {
888
+ "countType": "varint"
889
+ }
890
+ ]
891
+ game_profile:
892
+ name: string
893
+ properties: []varint
894
+ key: string
895
+ value: string
896
+ signature?: string
897
+ command_node:
898
+ flags: [
899
+ "bitfield",
900
+ [
901
+ {
902
+ "name": "unused",
903
+ "size": 3,
904
+ "signed": false
905
+ },
906
+ {
907
+ "name": "has_custom_suggestions",
908
+ "size": 1,
909
+ "signed": false
910
+ },
911
+ {
912
+ "name": "has_redirect_node",
913
+ "size": 1,
914
+ "signed": false
915
+ },
916
+ {
917
+ "name": "has_command",
918
+ "size": 1,
919
+ "signed": false
920
+ },
921
+ {
922
+ "name": "command_node_type",
923
+ "size": 2,
924
+ "signed": false
925
+ }
926
+ ]
927
+ ]
928
+ children: varint[]varint
929
+ redirectNode: flags/has_redirect_node ?
930
+ if 1: varint
931
+ default: void
932
+ extraNodeData: flags/command_node_type ?
933
+ if 0: void
934
+ if 1:
935
+ name: string
936
+ if 2:
937
+ name: string
938
+ parser: varint =>
939
+ - brigadier:bool
940
+ - brigadier:float
941
+ - brigadier:double
942
+ - brigadier:integer
943
+ - brigadier:long
944
+ - brigadier:string
945
+ - minecraft:entity
946
+ - minecraft:game_profile
947
+ - minecraft:block_pos
948
+ - minecraft:column_pos
949
+ - minecraft:vec3
950
+ - minecraft:vec2
951
+ - minecraft:block_state
952
+ - minecraft:block_predicate
953
+ - minecraft:item_stack
954
+ - minecraft:item_predicate
955
+ - minecraft:color
956
+ - minecraft:component
957
+ - minecraft:style
958
+ - minecraft:message
959
+ - minecraft:nbt
960
+ - minecraft:nbt_tag
961
+ - minecraft:nbt_path
962
+ - minecraft:objective
963
+ - minecraft:objective_criteria
964
+ - minecraft:operation
965
+ - minecraft:particle
966
+ - minecraft:angle
967
+ - minecraft:rotation
968
+ - minecraft:scoreboard_slot
969
+ - minecraft:score_holder
970
+ - minecraft:swizzle
971
+ - minecraft:team
972
+ - minecraft:item_slot
973
+ - minecraft:item_slots # 1.20.5
974
+ - minecraft:resource_location
975
+ - minecraft:function
976
+ - minecraft:entity_anchor
977
+ - minecraft:int_range
978
+ - minecraft:float_range
979
+ - minecraft:dimension
980
+ - minecraft:gamemode
981
+ - minecraft:time
982
+ - minecraft:resource_or_tag
983
+ - minecraft:resource_or_tag_key
984
+ - minecraft:resource
985
+ - minecraft:resource_key
986
+ - minecraft:template_mirror
987
+ - minecraft:template_rotation
988
+ - minecraft:heightmap
989
+ - minecraft:loot_table # 1.20.5
990
+ - minecraft:loot_predicate # 1.20.5
991
+ - minecraft:loot_modifier # 1.20.5
992
+ - minecraft:uuid
993
+ properties: parser ?
994
+ if brigadier:bool: void
995
+ if brigadier:float:
996
+ flags: [
997
+ "bitfield",
998
+ [
999
+ {
1000
+ "name": "unused",
1001
+ "size": 6,
1002
+ "signed": false
1003
+ },
1004
+ {
1005
+ "name": "max_present",
1006
+ "size": 1,
1007
+ "signed": false
1008
+ },
1009
+ {
1010
+ "name": "min_present",
1011
+ "size": 1,
1012
+ "signed": false
1013
+ }
1014
+ ]
1015
+ ]
1016
+ min: flags/min_present ?
1017
+ if 1: f32
1018
+ default: void
1019
+ max: flags/max_present ?
1020
+ if 1: f32
1021
+ default: void
1022
+ if brigadier:double:
1023
+ flags: [
1024
+ "bitfield",
1025
+ [
1026
+ {
1027
+ "name": "unused",
1028
+ "size": 6,
1029
+ "signed": false
1030
+ },
1031
+ {
1032
+ "name": "max_present",
1033
+ "size": 1,
1034
+ "signed": false
1035
+ },
1036
+ {
1037
+ "name": "min_present",
1038
+ "size": 1,
1039
+ "signed": false
1040
+ }
1041
+ ]
1042
+ ]
1043
+ min: flags/min_present ?
1044
+ if 1: f64
1045
+ default: void
1046
+ max: flags/max_present ?
1047
+ if 1: f64
1048
+ default: void
1049
+ if brigadier:integer:
1050
+ flags: [
1051
+ "bitfield",
1052
+ [
1053
+ {
1054
+ "name": "unused",
1055
+ "size": 6,
1056
+ "signed": false
1057
+ },
1058
+ {
1059
+ "name": "max_present",
1060
+ "size": 1,
1061
+ "signed": false
1062
+ },
1063
+ {
1064
+ "name": "min_present",
1065
+ "size": 1,
1066
+ "signed": false
1067
+ }
1068
+ ]
1069
+ ]
1070
+ min: flags/min_present ?
1071
+ if 1: i32
1072
+ default: void
1073
+ max: flags/max_present ?
1074
+ if 1: i32
1075
+ default: void
1076
+ if brigadier:long:
1077
+ flags: [
1078
+ "bitfield",
1079
+ [
1080
+ {
1081
+ "name": "unused",
1082
+ "size": 6,
1083
+ "signed": false
1084
+ },
1085
+ {
1086
+ "name": "max_present",
1087
+ "size": 1,
1088
+ "signed": false
1089
+ },
1090
+ {
1091
+ "name": "min_present",
1092
+ "size": 1,
1093
+ "signed": false
1094
+ }
1095
+ ]
1096
+ ]
1097
+ min: flags/min_present ?
1098
+ if 1: i64
1099
+ default: void
1100
+ max: flags/max_present ?
1101
+ if 1: i64
1102
+ default: void
1103
+ if brigadier:string: varint =>
1104
+ 0: SINGLE_WORD
1105
+ 1: QUOTABLE_PHRASE
1106
+ 2: GREEDY_PHRASE
1107
+ if minecraft:entity: [
1108
+ "bitfield",
1109
+ [
1110
+ {
1111
+ "name": "unused",
1112
+ "size": 6,
1113
+ "signed": false
1114
+ },
1115
+ {
1116
+ "name": "onlyAllowPlayers",
1117
+ "size": 1,
1118
+ "signed": false
1119
+ },
1120
+ {
1121
+ "name": "onlyAllowEntities",
1122
+ "size": 1,
1123
+ "signed": false
1124
+ }
1125
+ ]
1126
+ ]
1127
+ if minecraft:game_profile: void
1128
+ if minecraft:block_pos: void
1129
+ if minecraft:column_pos: void
1130
+ if minecraft:vec3: void
1131
+ if minecraft:vec2: void
1132
+ if minecraft:block_state: void
1133
+ if minecraft:block_predicate: void
1134
+ if minecraft:item_stack: void
1135
+ if minecraft:item_predicate: void
1136
+ if minecraft:color: void
1137
+ if minecraft:component: void
1138
+ if minecraft:message: void
1139
+ if minecraft:nbt: void
1140
+ if minecraft:nbt_path: void
1141
+ if minecraft:objective: void
1142
+ if minecraft:objective_criteria: void
1143
+ if minecraft:operation: void
1144
+ if minecraft:particle: void
1145
+ if minecraft:angle: void
1146
+ if minecraft:rotation: void
1147
+ if minecraft:scoreboard_slot: void
1148
+ if minecraft:score_holder: [
1149
+ "bitfield",
1150
+ [
1151
+ {
1152
+ "name": "unused",
1153
+ "size": 7,
1154
+ "signed": false
1155
+ },
1156
+ {
1157
+ "name": "allowMultiple",
1158
+ "size": 1,
1159
+ "signed": false
1160
+ }
1161
+ ]
1162
+ ]
1163
+ if minecraft:swizzle: void
1164
+ if minecraft:team: void
1165
+ if minecraft:item_slot: void
1166
+ if minecraft:resource_location: void
1167
+ if minecraft:function: void
1168
+ if minecraft:entity_anchor: void
1169
+ if minecraft:int_range: void
1170
+ if minecraft:float_range: void
1171
+ if minecraft:dimension: void
1172
+ if minecraft:gamemode: void
1173
+ if minecraft:time:
1174
+ min: i32
1175
+ if minecraft:resource_or_tag:
1176
+ registry: string
1177
+ if minecraft:resource_or_tag_key:
1178
+ registry: string
1179
+ if minecraft:resource:
1180
+ registry: string
1181
+ if minecraft:resource_key:
1182
+ registry: string
1183
+ if minecraft:template_mirror: void
1184
+ if minecraft:template_rotation: void
1185
+ if minecraft:heightmap: void
1186
+ if minecraft:uuid: void
1187
+ suggestionType: ../flags/has_custom_suggestions ?
1188
+ if 1: string
1189
+ default: void
1190
+ # # Shared Packets
1191
+ # These are packets that are shared between multiple states.
1192
+ # They are defined here to avoid duplication.
1193
+ # =====
1194
+ # MC: ClientboundCookieRequestPacket
1195
+ packet_common_cookie_request:
1196
+ cookie: string
1197
+ # MC: ClientboundStoreCookiePacket
1198
+ packet_common_store_cookie:
1199
+ key: string
1200
+ value: ByteArray
1201
+ # MC: ClientboundTransferPacket
1202
+ packet_common_transfer:
1203
+ host: string
1204
+ port: varint
1205
+ # MC: ServerboundCookieResponsePacket
1206
+ packet_common_cookie_response:
1207
+ key: string
1208
+ value: ByteArray
1209
+ # MC: ServerboundSelectKnownPacks
1210
+ # MC: ClientboundSelectKnownPacks
1211
+ packet_common_select_known_packs:
1212
+ packs: []varint
1213
+ namespace: string
1214
+ id: string
1215
+ version: string
1216
+
1217
+ ^handshaking.toClient.types:
1218
+ packet:
1219
+ name: varint =>
1220
+ params: ["switch",{"compareTo":"name","fields":{}}]
1221
+ ^handshaking.toServer.types:
1222
+ packet_set_protocol:
1223
+ protocolVersion: varint
1224
+ serverHost: string
1225
+ serverPort: u16
1226
+ nextState: varint
1227
+ packet_legacy_server_list_ping:
1228
+ payload: u8
1229
+ packet:
1230
+ name: varint =>
1231
+ 0x00: set_protocol
1232
+ 0xfe: legacy_server_list_ping
1233
+ params: name ?
1234
+ if set_protocol: packet_set_protocol
1235
+ if legacy_server_list_ping: packet_legacy_server_list_ping
1236
+ ^status.toClient.types:
1237
+ # MC: ClientboundStatusResponsePacket
1238
+ packet_server_info:
1239
+ response: string
1240
+ # MC: ClientboundPongResponsePacket
1241
+ packet_ping:
1242
+ time: i64
1243
+ packet:
1244
+ name: varint =>
1245
+ 0x00: server_info
1246
+ 0x01: ping
1247
+ params: name ?
1248
+ if server_info: packet_server_info
1249
+ if ping: packet_ping
1250
+ ^status.toServer.types:
1251
+ # MC: ServerboundStatusRequestPacket
1252
+ packet_ping_start:
1253
+ # Empty
1254
+ # MC: ServerboundPingRequestPacket
1255
+ packet_ping:
1256
+ time: i64
1257
+ packet:
1258
+ name: varint =>
1259
+ 0x00: ping_start
1260
+ 0x01: ping
1261
+ params: name ?
1262
+ if ping_start: packet_ping_start
1263
+ if ping: packet_ping
1264
+ ^login.toClient.types:
1265
+ # MC: ClientboundLoginDisconnectPacket
1266
+ packet_disconnect:
1267
+ reason: string
1268
+ # MC: ClientboundHelloPacket
1269
+ packet_encryption_begin:
1270
+ serverId: string
1271
+ publicKey: [
1272
+ "buffer",
1273
+ {
1274
+ "countType": "varint"
1275
+ }
1276
+ ]
1277
+ verifyToken: [
1278
+ "buffer",
1279
+ {
1280
+ "countType": "varint"
1281
+ }
1282
+ ]
1283
+ shouldAuthenticate: bool
1284
+ # MC: ClientboundGameProfilePacket
1285
+ packet_success:
1286
+ uuid: UUID
1287
+ username: string
1288
+ properties: []varint
1289
+ name: string
1290
+ value: string
1291
+ signature?: string
1292
+ strictErrorHandling: bool
1293
+ # MC: ClientboundLoginCompressionPacket
1294
+ packet_compress:
1295
+ threshold: varint
1296
+ # MC: ClientboundCustomQueryPacket
1297
+ packet_login_plugin_request:
1298
+ messageId: varint
1299
+ channel: string
1300
+ data: restBuffer
1301
+ ## (Cookie Request is Common) ##
1302
+ packet:
1303
+ name: varint =>
1304
+ - disconnect
1305
+ - encryption_begin
1306
+ - success
1307
+ - compress
1308
+ - login_plugin_request
1309
+ - cookie_request
1310
+ params: name ?
1311
+ if disconnect: packet_disconnect
1312
+ if encryption_begin: packet_encryption_begin
1313
+ if success: packet_success
1314
+ if compress: packet_compress
1315
+ if login_plugin_request: packet_login_plugin_request
1316
+ if cookie_request: packet_common_cookie_request
1317
+ ^login.toServer.types:
1318
+ # MC: ServerboundHelloPacket
1319
+ packet_login_start:
1320
+ username: string
1321
+ playerUUID: UUID
1322
+ # MC: ServerboundKeyPacket
1323
+ packet_encryption_begin:
1324
+ sharedSecret: [
1325
+ "buffer",
1326
+ {
1327
+ "countType": "varint"
1328
+ }
1329
+ ]
1330
+ verifyToken: [
1331
+ "buffer",
1332
+ {
1333
+ "countType": "varint"
1334
+ }
1335
+ ]
1336
+ # MC: ServerboundCustomQueryAnswerPacket
1337
+ packet_login_plugin_response:
1338
+ messageId: varint
1339
+ data?: restBuffer
1340
+ # MC: ServerboundLoginAcknowledgedPacket
1341
+ packet_login_acknowledged:
1342
+ # Empty
1343
+ ## (Cookie Response is Common) ##
1344
+ packet:
1345
+ name: varint =>
1346
+ - login_start
1347
+ - encryption_begin
1348
+ - login_plugin_response
1349
+ - login_acknowledged
1350
+ - cookie_response
1351
+ params: name ?
1352
+ if login_start: packet_login_start
1353
+ if encryption_begin: packet_encryption_begin
1354
+ if login_plugin_response: packet_login_plugin_response
1355
+ if login_acknowledged: packet_login_acknowledged
1356
+ if cookie_response: packet_common_cookie_response
1357
+ ^configuration.toClient.types:
1358
+ ## (Cookie Request is common)
1359
+ # MC: ClientboundCustomPayloadPacket
1360
+ packet_custom_payload:
1361
+ channel: string
1362
+ data: restBuffer
1363
+ # MC: ClientboundDisconnectPacket
1364
+ packet_disconnect:
1365
+ reason: anonymousNbt
1366
+ # MC: ClientboundFinishConfigurationPacket
1367
+ packet_finish_configuration:
1368
+ # Empty
1369
+ # MC: ClientboundKeepAlivePacket
1370
+ packet_keep_alive:
1371
+ keepAliveId: i64
1372
+ # MC: ClientboundPingPacket
1373
+ packet_ping:
1374
+ id: i32
1375
+ # MC: ClientboundResetChatPacket
1376
+ packet_reset_chat:
1377
+ # Empty
1378
+ # MC: ClientboundRegistryDataPacket
1379
+ packet_registry_data:
1380
+ # The server can send multiple registries
1381
+ id: string
1382
+ entries: []varint
1383
+ key: string
1384
+ value?: anonymousNbt
1385
+ # MC: ClientboundResourcePackPopPacket
1386
+ packet_remove_resource_pack:
1387
+ uuid?: UUID
1388
+ # MC: ClientboundResourcePackPushPacket
1389
+ packet_add_resource_pack:
1390
+ uuid: UUID
1391
+ url: string
1392
+ hash: string
1393
+ forced: bool
1394
+ promptMessage?: anonymousNbt
1395
+ ## (Store cookie and Transfer are Common) ##
1396
+ # MC: ClientboundUpdateEnabledFeaturesPacket
1397
+ packet_feature_flags:
1398
+ features: string[]varint
1399
+ # MC: ClientboundUpdateTagsPacket
1400
+ packet_tags:
1401
+ tags: []varint
1402
+ tagType: string
1403
+ tags: tags
1404
+ ## (Select known packs is common)
1405
+ packet:
1406
+ name: varint =>
1407
+ - cookie_request
1408
+ - custom_payload
1409
+ - disconnect
1410
+ - finish_configuration
1411
+ - keep_alive
1412
+ - ping
1413
+ - reset_chat
1414
+ - registry_data
1415
+ - remove_resource_pack
1416
+ - add_resource_pack
1417
+ - store_cookie
1418
+ - transfer
1419
+ - feature_flags
1420
+ - tags
1421
+ - select_known_packs
1422
+ params: name ?
1423
+ if cookie_request: packet_common_cookie_request
1424
+ if custom_payload: packet_custom_payload
1425
+ if disconnect: packet_disconnect
1426
+ if finish_configuration: packet_finish_configuration
1427
+ if keep_alive: packet_keep_alive
1428
+ if ping: packet_ping
1429
+ if reset_chat: packet_reset_chat
1430
+ if registry_data: packet_registry_data
1431
+ if remove_resource_pack: packet_remove_resource_pack
1432
+ if add_resource_pack: packet_add_resource_pack
1433
+ if store_cookie: packet_common_store_cookie
1434
+ if transfer: packet_common_transfer
1435
+ if feature_flags: packet_feature_flags
1436
+ if tags: packet_tags
1437
+ if select_known_packs: packet_common_select_known_packs
1438
+ ^configuration.toServer.types:
1439
+ # MC: ServerboundClientInformationPacket
1440
+ packet_settings:
1441
+ locale: string
1442
+ viewDistance: i8
1443
+ chatFlags: varint
1444
+ chatColors: bool
1445
+ skinParts: u8
1446
+ mainHand: varint
1447
+ enableTextFiltering: bool
1448
+ enableServerListing: bool
1449
+ ## (Cookie Response is Common) ##
1450
+ # MC: ServerboundCustomPayloadPacket
1451
+ packet_custom_payload:
1452
+ channel: string
1453
+ data: restBuffer
1454
+ # MC: ServerboundFinishConfigurationPacket
1455
+ packet_finish_configuration:
1456
+ # Empty
1457
+ # MC: ServerboundKeepAlivePacket
1458
+ packet_keep_alive:
1459
+ keepAliveId: i64
1460
+ # MC: ServerboundPongPacket
1461
+ packet_pong:
1462
+ id: i32
1463
+ # MC: ServerboundResourcePackPacket
1464
+ packet_resource_pack_receive:
1465
+ uuid: UUID
1466
+ result: varint
1467
+ packet:
1468
+ name: varint =>
1469
+ - settings
1470
+ - cookie_response
1471
+ - custom_payload
1472
+ - finish_configuration
1473
+ - keep_alive
1474
+ - pong
1475
+ - resource_pack_receive
1476
+ - select_known_packs
1477
+ params: name ?
1478
+ if settings: packet_settings
1479
+ if cookie_response: packet_common_cookie_response
1480
+ if custom_payload: packet_custom_payload
1481
+ if finish_configuration: packet_finish_configuration
1482
+ if keep_alive: packet_keep_alive
1483
+ if pong: packet_pong
1484
+ if resource_pack_receive: packet_resource_pack_receive
1485
+ if select_known_packs: packet_common_select_known_packs
1486
+ ^play.toClient.types:
1487
+ # World state information for spawn and respawn packets
1488
+ SpawnInfo:
1489
+ dimension: varint
1490
+ name: string
1491
+ hashedSeed: i64
1492
+ gamemode: i8 =>
1493
+ - survival
1494
+ - creative
1495
+ - adventure
1496
+ - spectator
1497
+ previousGamemode: u8
1498
+ isDebug: bool
1499
+ isFlat: bool
1500
+ death?:
1501
+ dimensionName: string
1502
+ location: position
1503
+ portalCooldown: varint
1504
+
1505
+ # MC: ClientboundAddEntityPacket
1506
+ packet_spawn_entity:
1507
+ entityId: varint
1508
+ objectUUID: UUID
1509
+ type: varint
1510
+ x: f64
1511
+ y: f64
1512
+ z: f64
1513
+ pitch: i8
1514
+ yaw: i8
1515
+ headPitch: i8
1516
+ objectData: varint
1517
+ velocityX: i16
1518
+ velocityY: i16
1519
+ velocityZ: i16
1520
+ # MC: ClientboundAddExperienceOrbPacket
1521
+ packet_spawn_entity_experience_orb:
1522
+ entityId: varint
1523
+ x: f64
1524
+ y: f64
1525
+ z: f64
1526
+ count: i16
1527
+ # MC: ClientboundAnimatePacket
1528
+ packet_animation:
1529
+ entityId: varint
1530
+ animation: u8
1531
+ # MC: ClientboundAwardStatsPacket
1532
+ packet_statistics:
1533
+ entries: []varint
1534
+ categoryId: varint
1535
+ statisticId: varint
1536
+ value: varint
1537
+ # MC: ClientboundBlockChangedAckPacket
1538
+ packet_acknowledge_player_digging:
1539
+ sequenceId: varint
1540
+ # MC: ClientboundBlockDestructionPacket
1541
+ packet_block_break_animation:
1542
+ entityId: varint
1543
+ location: position
1544
+ destroyStage: i8
1545
+ # MC: ClientboundBlockEntityDataPacket
1546
+ packet_tile_entity_data:
1547
+ location: position
1548
+ action: varint
1549
+ nbtData: anonOptionalNbt
1550
+ # MC: ClientboundBlockEventPacket
1551
+ packet_block_action:
1552
+ location: position
1553
+ byte1: u8
1554
+ byte2: u8
1555
+ blockId: varint
1556
+ # MC: ClientboundBlockUpdatePacket
1557
+ packet_block_change:
1558
+ location: position
1559
+ type: varint
1560
+ # MC: ClientboundBossEventPacket
1561
+ packet_boss_bar:
1562
+ entityUUID: UUID
1563
+ action: varint
1564
+ title: action ?
1565
+ if 0: anonymousNbt
1566
+ if 3: anonymousNbt
1567
+ default: void
1568
+ health: action ?
1569
+ if 0: f32
1570
+ if 2: f32
1571
+ default: void
1572
+ color: action ?
1573
+ if 0: varint
1574
+ if 4: varint
1575
+ default: void
1576
+ dividers: action ?
1577
+ if 0: varint
1578
+ if 4: varint
1579
+ default: void
1580
+ flags: action ?
1581
+ if 0: u8
1582
+ if 5: u8
1583
+ default: void
1584
+ # MC: ClientboundChangeDifficultyPacket
1585
+ packet_difficulty:
1586
+ difficulty: u8
1587
+ difficultyLocked: bool
1588
+ # MC: ClientboundChunkBatchFinishedPacket
1589
+ packet_chunk_batch_finished:
1590
+ batchSize: varint
1591
+ # MC: ClientboundChunkBatchStartPacket
1592
+ packet_chunk_batch_start:
1593
+ # Empty
1594
+ # MC: ClientboundChunksBiomesPacket
1595
+ packet_chunk_biomes:
1596
+ biomes: []varint
1597
+ position: packedChunkPos
1598
+ data: ByteArray
1599
+ # MC: ClientboundClearTitlesPacket
1600
+ packet_clear_titles:
1601
+ reset: bool
1602
+ # MC: ClientboundCommandSuggestionsPacket
1603
+ packet_tab_complete:
1604
+ transactionId: varint
1605
+ start: varint
1606
+ length: varint
1607
+ matches: []varint
1608
+ match: string
1609
+ tooltip?: anonymousNbt
1610
+ # MC: ClientboundCommandsPacket
1611
+ packet_declare_commands:
1612
+ nodes: command_node[]varint
1613
+ rootIndex: varint
1614
+ # MC: ClientboundContainerClosePacket
1615
+ packet_close_window:
1616
+ windowId: u8
1617
+ # MC: ClientboundContainerSetContentPacket
1618
+ packet_window_items:
1619
+ windowId: u8
1620
+ stateId: varint
1621
+ items: Slot[]varint
1622
+ carriedItem: Slot
1623
+ # MC: ClientboundContainerSetDataPacket
1624
+ packet_craft_progress_bar:
1625
+ windowId: u8
1626
+ property: i16
1627
+ value: i16
1628
+ # MC: ClientboundContainerSetSlotPacket
1629
+ packet_set_slot:
1630
+ windowId: i8
1631
+ stateId: varint
1632
+ slot: i16
1633
+ item: Slot
1634
+ ## (Cookie Request is Common)
1635
+ # MC: ClientboundCooldownPacket
1636
+ packet_set_cooldown:
1637
+ itemID: varint
1638
+ cooldownTicks: varint
1639
+ # MC: ClientboundCustomChatCompletionsPacket
1640
+ packet_chat_suggestions:
1641
+ action: varint
1642
+ entries: string[]varint
1643
+ # MC: ClientboundCustomPayloadPacket
1644
+ packet_custom_payload:
1645
+ channel: string
1646
+ data: restBuffer
1647
+ # MC: ClientboundDamageEventPacket
1648
+ packet_damage_event:
1649
+ entityId: varint
1650
+ sourceTypeId: varint
1651
+ sourceCauseId: varint
1652
+ sourceDirectId: varint
1653
+ sourcePosition?: vec3f64
1654
+ # MC: ClientboundDebugSamplePacket
1655
+ packet_debug_sample:
1656
+ sample: i64[]varint
1657
+ type: varint
1658
+ # MC: ClientboundDeleteChatPacket
1659
+ packet_hide_message:
1660
+ id: varint
1661
+ signature: id ?
1662
+ if 0: [
1663
+ "buffer",
1664
+ {
1665
+ "count": 256
1666
+ }
1667
+ ]
1668
+ default: void
1669
+ # MC: ClientboundDisconnectPacket
1670
+ packet_kick_disconnect:
1671
+ reason: anonymousNbt
1672
+ # MC: ClientboundDisguisedChatPacket
1673
+ packet_profileless_chat:
1674
+ message: anonymousNbt
1675
+ type: varint
1676
+ name: anonymousNbt
1677
+ target?: anonymousNbt
1678
+ # MC: ClientboundEntityEventPacket
1679
+ packet_entity_status:
1680
+ entityId: i32
1681
+ entityStatus: i8
1682
+ # MC: ClientboundExplodePacket
1683
+ packet_explosion:
1684
+ x: f64
1685
+ y: f64
1686
+ z: f64
1687
+ radius: f32
1688
+ affectedBlockOffsets: []varint
1689
+ x: i8
1690
+ y: i8
1691
+ z: i8
1692
+ playerMotionX: f32
1693
+ playerMotionY: f32
1694
+ playerMotionZ: f32
1695
+ block_interaction_type: varint
1696
+ small_explosion_particle: Particle
1697
+ large_explosion_particle: Particle
1698
+ soundId: varint
1699
+ _: soundId ?
1700
+ if 0:
1701
+ soundName: string
1702
+ range?: f32
1703
+ default:
1704
+
1705
+ # MC: ClientboundForgetLevelChunkPacket
1706
+ packet_unload_chunk:
1707
+ chunkZ: i32
1708
+ chunkX: i32
1709
+ # MC: ClientboundGameEventPacket
1710
+ packet_game_state_change:
1711
+ reason: u8
1712
+ gameMode: f32
1713
+ # MC: ClientboundHorseScreenOpenPacket
1714
+ packet_open_horse_window:
1715
+ windowId: u8
1716
+ nbSlots: varint
1717
+ entityId: i32
1718
+ # MC: ClientboundHurtAnimationPacket
1719
+ packet_hurt_animation:
1720
+ entityId: varint
1721
+ yaw: f32
1722
+ # MC: ClientboundInitializeBorderPacket
1723
+ packet_initialize_world_border:
1724
+ x: f64
1725
+ z: f64
1726
+ oldDiameter: f64
1727
+ newDiameter: f64
1728
+ speed: varint
1729
+ portalTeleportBoundary: varint
1730
+ warningBlocks: varint
1731
+ warningTime: varint
1732
+ # MC: ClientboundKeepAlivePacket
1733
+ packet_keep_alive:
1734
+ keepAliveId: i64
1735
+ # MC: ClientboundLevelChunkWithLightPacket
1736
+ packet_map_chunk:
1737
+ x: i32
1738
+ z: i32
1739
+ heightmaps: anonymousNbt
1740
+ chunkData: [
1741
+ "buffer",
1742
+ {
1743
+ "countType": "varint"
1744
+ }
1745
+ ]
1746
+ blockEntities: chunkBlockEntity[]varint
1747
+ skyLightMask: i64[]varint
1748
+ blockLightMask: i64[]varint
1749
+ emptySkyLightMask: i64[]varint
1750
+ emptyBlockLightMask: i64[]varint
1751
+ skyLight: []varint
1752
+ _: u8[]varint
1753
+ blockLight: []varint
1754
+ _: u8[]varint
1755
+ # MC: ClientboundLevelEventPacket
1756
+ packet_world_event:
1757
+ effectId: i32
1758
+ location: position
1759
+ data: i32
1760
+ global: bool
1761
+ # MC: ClientboundLevelParticlesPacket
1762
+ packet_world_particles:
1763
+ longDistance: bool
1764
+ x: f64
1765
+ y: f64
1766
+ z: f64
1767
+ offsetX: f32
1768
+ offsetY: f32
1769
+ offsetZ: f32
1770
+ velocityOffset: f32
1771
+ amount: i32
1772
+ particle: Particle
1773
+ # MC: ClientboundLightUpdatePacket
1774
+ packet_update_light:
1775
+ chunkX: varint
1776
+ chunkZ: varint
1777
+ skyLightMask: i64[]varint
1778
+ blockLightMask: i64[]varint
1779
+ emptySkyLightMask: i64[]varint
1780
+ emptyBlockLightMask: i64[]varint
1781
+ skyLight: []varint
1782
+ _: u8[]varint
1783
+ blockLight: []varint
1784
+ _: u8[]varint
1785
+ # MC: ClientboundLoginPacket
1786
+ packet_login:
1787
+ entityId: i32
1788
+ isHardcore: bool
1789
+ worldNames: string[]varint
1790
+ maxPlayers: varint
1791
+ viewDistance: varint
1792
+ simulationDistance: varint
1793
+ reducedDebugInfo: bool
1794
+ enableRespawnScreen: bool
1795
+ doLimitedCrafting: bool
1796
+ worldState: SpawnInfo
1797
+ enforcesSecureChat: bool
1798
+ # MC: ClientboundMapItemDataPacket
1799
+ packet_map:
1800
+ itemDamage: varint
1801
+ scale: i8
1802
+ locked: bool
1803
+ icons?: []varint
1804
+ type: varint
1805
+ x: i8
1806
+ z: i8
1807
+ direction: u8
1808
+ displayName?: anonymousNbt
1809
+ columns: u8
1810
+ rows: columns ?
1811
+ if 0: void
1812
+ default: u8
1813
+ x: columns ?
1814
+ if 0: void
1815
+ default: u8
1816
+ y: columns ?
1817
+ if 0: void
1818
+ default: u8
1819
+ data: columns ?
1820
+ if 0: void
1821
+ default: [
1822
+ "buffer",
1823
+ {
1824
+ "countType": "varint"
1825
+ }
1826
+ ]
1827
+ # MC: ClientboundMerchantOffersPacket
1828
+ packet_trade_list:
1829
+ windowId: varint
1830
+ ## https://github.com/extremeheat/extracted_minecraft_data/blob/client1.20.5/client/net/minecraft/world/item/trading/MerchantOffer.java#L210
1831
+ trades: []varint
1832
+ inputItem1:
1833
+ itemId: varint
1834
+ itemCount: varint
1835
+ addedComponentCount: varint
1836
+ components: SlotComponent[]$addedComponentCount
1837
+ outputItem: Slot
1838
+ inputItem2?:
1839
+ itemId: varint
1840
+ itemCount: varint
1841
+ addedComponentCount: varint
1842
+ components: SlotComponent[]$addedComponentCount
1843
+ tradeDisabled: bool
1844
+ nbTradeUses: i32
1845
+ maximumNbTradeUses: i32
1846
+ xp: i32
1847
+ specialPrice: i32
1848
+ priceMultiplier: f32
1849
+ demand: i32
1850
+ villagerLevel: varint
1851
+ experience: varint
1852
+ isRegularVillager: bool
1853
+ canRestock: bool
1854
+ # MC: ClientboundMoveEntityPacket.Pos
1855
+ packet_rel_entity_move:
1856
+ entityId: varint
1857
+ dX: i16
1858
+ dY: i16
1859
+ dZ: i16
1860
+ onGround: bool
1861
+ # MC: ClientboundMoveEntityPacket.PosRot
1862
+ packet_entity_move_look:
1863
+ entityId: varint
1864
+ dX: i16
1865
+ dY: i16
1866
+ dZ: i16
1867
+ yaw: i8
1868
+ pitch: i8
1869
+ onGround: bool
1870
+ # MC: ClientboundMoveEntityPacket.Rot
1871
+ packet_entity_look:
1872
+ entityId: varint
1873
+ yaw: i8
1874
+ pitch: i8
1875
+ onGround: bool
1876
+ # MC: ClientboundMoveVehiclePacket
1877
+ packet_vehicle_move:
1878
+ x: f64
1879
+ y: f64
1880
+ z: f64
1881
+ yaw: f32
1882
+ pitch: f32
1883
+ # MC: ClientboundOpenBookPacket
1884
+ packet_open_book:
1885
+ hand: varint
1886
+ # MC: ClientboundOpenScreenPacket
1887
+ packet_open_window:
1888
+ windowId: varint
1889
+ inventoryType: varint
1890
+ windowTitle: anonymousNbt
1891
+ # MC: ClientboundOpenSignEditorPacket
1892
+ packet_open_sign_entity:
1893
+ location: position
1894
+ isFrontText: bool
1895
+ # MC: ClientboundPingPacket
1896
+ packet_ping:
1897
+ id: i32
1898
+ # MC: ClientboundPongResponsePacket
1899
+ packet_ping_response:
1900
+ id: i64
1901
+ # MC: ClientboundPlaceGhostRecipePacket
1902
+ packet_craft_recipe_response:
1903
+ windowId: i8
1904
+ recipe: string
1905
+ # MC: ClientboundPlayerAbilitiesPacket
1906
+ packet_abilities:
1907
+ flags: i8
1908
+ flyingSpeed: f32
1909
+ walkingSpeed: f32
1910
+ # MC: ClientboundPlayerChatPacket
1911
+ packet_player_chat:
1912
+ senderUuid: UUID
1913
+ index: varint
1914
+ signature?: [
1915
+ "buffer",
1916
+ {
1917
+ "count": 256
1918
+ }
1919
+ ]
1920
+ plainMessage: string
1921
+ timestamp: i64
1922
+ salt: i64
1923
+ previousMessages: previousMessages
1924
+ unsignedChatContent?: anonymousNbt
1925
+ filterType: varint
1926
+ filterTypeMask: filterType ?
1927
+ if 2: i64[]varint
1928
+ default: void
1929
+ type: varint
1930
+ networkName: anonymousNbt
1931
+ networkTargetName?: anonymousNbt
1932
+ # MC: ClientboundPlayerCombatEndPacket
1933
+ packet_end_combat_event:
1934
+ duration: varint
1935
+ # MC: ClientboundPlayerCombatEnterPacket
1936
+ packet_enter_combat_event:
1937
+ # Empty
1938
+ # MC: ClientboundPlayerCombatKillPacket
1939
+ packet_death_combat_event:
1940
+ playerId: varint
1941
+ message: anonymousNbt
1942
+ # MC: ClientboundPlayerInfoRemovePacket
1943
+ packet_player_remove:
1944
+ players: UUID[]varint
1945
+ # MC: ClientboundPlayerInfoUpdatePacket
1946
+ packet_player_info:
1947
+ action: i8
1948
+ data: []varint
1949
+ uuid: UUID
1950
+ player: ../action ?
1951
+ if 1: game_profile
1952
+ if 3: game_profile
1953
+ if 5: game_profile
1954
+ if 7: game_profile
1955
+ if 9: game_profile
1956
+ if 11: game_profile
1957
+ if 13: game_profile
1958
+ if 15: game_profile
1959
+ if 17: game_profile
1960
+ if 19: game_profile
1961
+ if 21: game_profile
1962
+ if 23: game_profile
1963
+ if 25: game_profile
1964
+ if 27: game_profile
1965
+ if 29: game_profile
1966
+ if 31: game_profile
1967
+ if 33: game_profile
1968
+ if 35: game_profile
1969
+ if 37: game_profile
1970
+ if 39: game_profile
1971
+ if 41: game_profile
1972
+ if 43: game_profile
1973
+ if 45: game_profile
1974
+ if 47: game_profile
1975
+ if 49: game_profile
1976
+ if 51: game_profile
1977
+ if 53: game_profile
1978
+ if 55: game_profile
1979
+ if 57: game_profile
1980
+ if 59: game_profile
1981
+ if 61: game_profile
1982
+ if 63: game_profile
1983
+ default: void
1984
+ chatSession: ../action ?
1985
+ if 2: chat_session
1986
+ if 3: chat_session
1987
+ if 6: chat_session
1988
+ if 7: chat_session
1989
+ if 10: chat_session
1990
+ if 11: chat_session
1991
+ if 14: chat_session
1992
+ if 15: chat_session
1993
+ if 18: chat_session
1994
+ if 19: chat_session
1995
+ if 22: chat_session
1996
+ if 23: chat_session
1997
+ if 26: chat_session
1998
+ if 27: chat_session
1999
+ if 30: chat_session
2000
+ if 31: chat_session
2001
+ if 34: chat_session
2002
+ if 35: chat_session
2003
+ if 38: chat_session
2004
+ if 39: chat_session
2005
+ if 42: chat_session
2006
+ if 43: chat_session
2007
+ if 46: chat_session
2008
+ if 47: chat_session
2009
+ if 50: chat_session
2010
+ if 51: chat_session
2011
+ if 54: chat_session
2012
+ if 55: chat_session
2013
+ if 58: chat_session
2014
+ if 59: chat_session
2015
+ if 62: chat_session
2016
+ if 63: chat_session
2017
+ default: void
2018
+ gamemode: ../action ?
2019
+ if 4: varint
2020
+ if 5: varint
2021
+ if 6: varint
2022
+ if 7: varint
2023
+ if 12: varint
2024
+ if 13: varint
2025
+ if 14: varint
2026
+ if 15: varint
2027
+ if 20: varint
2028
+ if 21: varint
2029
+ if 22: varint
2030
+ if 23: varint
2031
+ if 28: varint
2032
+ if 29: varint
2033
+ if 30: varint
2034
+ if 31: varint
2035
+ if 36: varint
2036
+ if 37: varint
2037
+ if 38: varint
2038
+ if 39: varint
2039
+ if 44: varint
2040
+ if 45: varint
2041
+ if 46: varint
2042
+ if 47: varint
2043
+ if 52: varint
2044
+ if 53: varint
2045
+ if 54: varint
2046
+ if 55: varint
2047
+ if 60: varint
2048
+ if 61: varint
2049
+ if 62: varint
2050
+ if 63: varint
2051
+ default: void
2052
+ listed: ../action ?
2053
+ if 8: bool
2054
+ if 9: bool
2055
+ if 10: bool
2056
+ if 11: bool
2057
+ if 12: bool
2058
+ if 13: bool
2059
+ if 14: bool
2060
+ if 15: bool
2061
+ if 24: bool
2062
+ if 25: bool
2063
+ if 26: bool
2064
+ if 27: bool
2065
+ if 28: bool
2066
+ if 29: bool
2067
+ if 30: bool
2068
+ if 31: bool
2069
+ if 40: bool
2070
+ if 41: bool
2071
+ if 42: bool
2072
+ if 43: bool
2073
+ if 44: bool
2074
+ if 45: bool
2075
+ if 46: bool
2076
+ if 47: bool
2077
+ if 56: bool
2078
+ if 57: bool
2079
+ if 58: bool
2080
+ if 59: bool
2081
+ if 60: bool
2082
+ if 61: bool
2083
+ if 62: bool
2084
+ if 63: bool
2085
+ default: void
2086
+ latency: ../action ?
2087
+ if 16: varint
2088
+ if 17: varint
2089
+ if 18: varint
2090
+ if 19: varint
2091
+ if 20: varint
2092
+ if 21: varint
2093
+ if 22: varint
2094
+ if 23: varint
2095
+ if 24: varint
2096
+ if 25: varint
2097
+ if 26: varint
2098
+ if 27: varint
2099
+ if 28: varint
2100
+ if 29: varint
2101
+ if 30: varint
2102
+ if 31: varint
2103
+ if 48: varint
2104
+ if 49: varint
2105
+ if 50: varint
2106
+ if 51: varint
2107
+ if 52: varint
2108
+ if 53: varint
2109
+ if 54: varint
2110
+ if 55: varint
2111
+ if 56: varint
2112
+ if 57: varint
2113
+ if 58: varint
2114
+ if 59: varint
2115
+ if 60: varint
2116
+ if 61: varint
2117
+ if 62: varint
2118
+ if 63: varint
2119
+ default: void
2120
+ displayName: ../action ?
2121
+ if 32: [
2122
+ "option",
2123
+ "anonymousNbt"
2124
+ ]
2125
+ if 33: [
2126
+ "option",
2127
+ "anonymousNbt"
2128
+ ]
2129
+ if 34: [
2130
+ "option",
2131
+ "anonymousNbt"
2132
+ ]
2133
+ if 35: [
2134
+ "option",
2135
+ "anonymousNbt"
2136
+ ]
2137
+ if 36: [
2138
+ "option",
2139
+ "anonymousNbt"
2140
+ ]
2141
+ if 37: [
2142
+ "option",
2143
+ "anonymousNbt"
2144
+ ]
2145
+ if 38: [
2146
+ "option",
2147
+ "anonymousNbt"
2148
+ ]
2149
+ if 39: [
2150
+ "option",
2151
+ "anonymousNbt"
2152
+ ]
2153
+ if 40: [
2154
+ "option",
2155
+ "anonymousNbt"
2156
+ ]
2157
+ if 41: [
2158
+ "option",
2159
+ "anonymousNbt"
2160
+ ]
2161
+ if 42: [
2162
+ "option",
2163
+ "anonymousNbt"
2164
+ ]
2165
+ if 43: [
2166
+ "option",
2167
+ "anonymousNbt"
2168
+ ]
2169
+ if 44: [
2170
+ "option",
2171
+ "anonymousNbt"
2172
+ ]
2173
+ if 45: [
2174
+ "option",
2175
+ "anonymousNbt"
2176
+ ]
2177
+ if 46: [
2178
+ "option",
2179
+ "anonymousNbt"
2180
+ ]
2181
+ if 47: [
2182
+ "option",
2183
+ "anonymousNbt"
2184
+ ]
2185
+ if 48: [
2186
+ "option",
2187
+ "anonymousNbt"
2188
+ ]
2189
+ if 49: [
2190
+ "option",
2191
+ "anonymousNbt"
2192
+ ]
2193
+ if 50: [
2194
+ "option",
2195
+ "anonymousNbt"
2196
+ ]
2197
+ if 51: [
2198
+ "option",
2199
+ "anonymousNbt"
2200
+ ]
2201
+ if 52: [
2202
+ "option",
2203
+ "anonymousNbt"
2204
+ ]
2205
+ if 53: [
2206
+ "option",
2207
+ "anonymousNbt"
2208
+ ]
2209
+ if 54: [
2210
+ "option",
2211
+ "anonymousNbt"
2212
+ ]
2213
+ if 55: [
2214
+ "option",
2215
+ "anonymousNbt"
2216
+ ]
2217
+ if 56: [
2218
+ "option",
2219
+ "anonymousNbt"
2220
+ ]
2221
+ if 57: [
2222
+ "option",
2223
+ "anonymousNbt"
2224
+ ]
2225
+ if 58: [
2226
+ "option",
2227
+ "anonymousNbt"
2228
+ ]
2229
+ if 59: [
2230
+ "option",
2231
+ "anonymousNbt"
2232
+ ]
2233
+ if 60: [
2234
+ "option",
2235
+ "anonymousNbt"
2236
+ ]
2237
+ if 61: [
2238
+ "option",
2239
+ "anonymousNbt"
2240
+ ]
2241
+ if 62: [
2242
+ "option",
2243
+ "anonymousNbt"
2244
+ ]
2245
+ if 63: [
2246
+ "option",
2247
+ "anonymousNbt"
2248
+ ]
2249
+ default: void
2250
+ # MC: ClientboundPlayerLookAtPacket
2251
+ packet_face_player:
2252
+ feet_eyes: varint
2253
+ x: f64
2254
+ y: f64
2255
+ z: f64
2256
+ isEntity: bool
2257
+ entityId: isEntity ?
2258
+ if true: varint
2259
+ default: void
2260
+ entity_feet_eyes: isEntity ?
2261
+ if true: varint
2262
+ default: void
2263
+ # MC: ClientboundPlayerPositionPacket
2264
+ packet_position:
2265
+ x: f64
2266
+ y: f64
2267
+ z: f64
2268
+ yaw: f32
2269
+ pitch: f32
2270
+ flags: i8
2271
+ teleportId: varint
2272
+ # MC: ClientboundRecipePacket
2273
+ packet_unlock_recipes:
2274
+ action: varint
2275
+ craftingBookOpen: bool
2276
+ filteringCraftable: bool
2277
+ smeltingBookOpen: bool
2278
+ filteringSmeltable: bool
2279
+ blastFurnaceOpen: bool
2280
+ filteringBlastFurnace: bool
2281
+ smokerBookOpen: bool
2282
+ filteringSmoker: bool
2283
+ recipes1: string[]varint
2284
+ recipes2: action ?
2285
+ if 0: string[]varint
2286
+ default: void
2287
+ # MC: ClientboundRemoveEntitiesPacket
2288
+ packet_entity_destroy:
2289
+ entityIds: varint[]varint
2290
+ # MC: ClientboundRemoveMobEffectPacket
2291
+ packet_remove_entity_effect:
2292
+ entityId: varint
2293
+ effectId: varint
2294
+ # MC: ClientboundResetScorePacket
2295
+ packet_reset_score:
2296
+ entity_name: string
2297
+ objective_name?: string
2298
+ # MC: ClientboundResourcePackPopPacket
2299
+ packet_remove_resource_pack:
2300
+ uuid?: UUID
2301
+ # MC: ClientboundResourcePackPushPacket
2302
+ packet_add_resource_pack:
2303
+ uuid: UUID
2304
+ url: string
2305
+ hash: string
2306
+ forced: bool
2307
+ promptMessage?: anonymousNbt
2308
+ # MC: ClientboundRespawnPacket
2309
+ packet_respawn:
2310
+ worldState: SpawnInfo
2311
+ copyMetadata: bool
2312
+ # MC: ClientboundRotateHeadPacket
2313
+ packet_entity_head_rotation:
2314
+ entityId: varint
2315
+ headYaw: i8
2316
+ # MC: ClientboundSectionBlocksUpdatePacket
2317
+ packet_multi_block_change:
2318
+ chunkCoordinates: [ "bitfield", [
2319
+ { "name": "x", "size": 22, "signed": true },
2320
+ { "name": "z", "size": 22, "signed": true },
2321
+ { "name": "y", "size": 20, "signed": true }
2322
+ ]]
2323
+ records: varint[]varint
2324
+ # MC: ClientboundSelectAdvancementsTabPacket
2325
+ packet_select_advancement_tab:
2326
+ id?: string
2327
+ # MC: ClientboundServerDataPacket
2328
+ packet_server_data:
2329
+ motd: anonymousNbt
2330
+ iconBytes?: ByteArray
2331
+ # MC: ClientboundSetActionBarTextPacket
2332
+ packet_action_bar:
2333
+ text: anonymousNbt
2334
+ # MC: ClientboundSetBorderCenterPacket
2335
+ packet_world_border_center:
2336
+ x: f64
2337
+ z: f64
2338
+ # MC: ClientboundSetBorderLerpSizePacket
2339
+ packet_world_border_lerp_size:
2340
+ oldDiameter: f64
2341
+ newDiameter: f64
2342
+ speed: varint
2343
+ # MC: ClientboundSetBorderSizePacket
2344
+ packet_world_border_size:
2345
+ diameter: f64
2346
+ # MC: ClientboundSetBorderWarningDelayPacket
2347
+ packet_world_border_warning_delay:
2348
+ warningTime: varint
2349
+ # MC: ClientboundSetBorderWarningDistancePacket
2350
+ packet_world_border_warning_reach:
2351
+ warningBlocks: varint
2352
+ # MC: ClientboundSetCameraPacket
2353
+ packet_camera:
2354
+ cameraId: varint
2355
+ # MC: ClientboundSetCarriedItemPacket
2356
+ packet_held_item_slot:
2357
+ slot: i8
2358
+ # MC: ClientboundSetChunkCacheCenterPacket
2359
+ packet_update_view_position:
2360
+ chunkX: varint
2361
+ chunkZ: varint
2362
+ # MC: ClientboundSetChunkCacheRadiusPacket
2363
+ packet_update_view_distance:
2364
+ viewDistance: varint
2365
+ # MC: ClientboundSetDefaultSpawnPositionPacket
2366
+ packet_spawn_position:
2367
+ location: position
2368
+ angle: f32
2369
+ # MC: ClientboundSetDisplayObjectivePacket
2370
+ packet_scoreboard_display_objective:
2371
+ position: varint
2372
+ name: string
2373
+ # MC: ClientboundSetEntityDataPacket
2374
+ packet_entity_metadata:
2375
+ entityId: varint
2376
+ metadata: entityMetadata
2377
+ # MC: ClientboundSetEntityLinkPacket
2378
+ packet_attach_entity:
2379
+ entityId: i32
2380
+ vehicleId: i32
2381
+ # MC: ClientboundSetEntityMotionPacket
2382
+ packet_entity_velocity:
2383
+ entityId: varint
2384
+ velocityX: i16
2385
+ velocityY: i16
2386
+ velocityZ: i16
2387
+ # MC: ClientboundSetEquipmentPacket
2388
+ packet_entity_equipment:
2389
+ entityId: varint
2390
+ equipments: [
2391
+ "topBitSetTerminatedArray",
2392
+ {
2393
+ "type": [
2394
+ "container",
2395
+ [
2396
+ {
2397
+ "name": "slot",
2398
+ "type": "i8"
2399
+ },
2400
+ {
2401
+ "name": "item",
2402
+ "type": "Slot"
2403
+ }
2404
+ ]
2405
+ ]
2406
+ }
2407
+ ]
2408
+ # MC: ClientboundSetExperiencePacket
2409
+ packet_experience:
2410
+ experienceBar: f32
2411
+ level: varint
2412
+ totalExperience: varint
2413
+ # MC: ClientboundSetHealthPacket
2414
+ packet_update_health:
2415
+ health: f32
2416
+ food: varint
2417
+ foodSaturation: f32
2418
+ # MC: ClientboundSetObjectivePacket
2419
+ packet_scoreboard_objective:
2420
+ name: string
2421
+ action: i8
2422
+ displayText: action ?
2423
+ if 0: anonymousNbt
2424
+ if 2: anonymousNbt
2425
+ default: void
2426
+ type: action ?
2427
+ if 0: varint
2428
+ if 2: varint
2429
+ default: void
2430
+ number_format: action ?
2431
+ if 0: [
2432
+ "option",
2433
+ "varint"
2434
+ ]
2435
+ if 2: [
2436
+ "option",
2437
+ "varint"
2438
+ ]
2439
+ default: void
2440
+ styling: action ?
2441
+ if 0: number_format ?
2442
+ if 1: anonymousNbt
2443
+ if 2: anonymousNbt
2444
+ default: void
2445
+ if 2: number_format ?
2446
+ if 1: anonymousNbt
2447
+ if 2: anonymousNbt
2448
+ default: void
2449
+ default: void
2450
+ # MC: ClientboundSetPassengersPacket
2451
+ packet_set_passengers:
2452
+ entityId: varint
2453
+ passengers: varint[]varint
2454
+ # MC: ClientboundSetPlayerTeamPacket
2455
+ packet_teams:
2456
+ team: string
2457
+ mode: i8
2458
+ name: mode ?
2459
+ if 0: anonymousNbt
2460
+ if 2: anonymousNbt
2461
+ default: void
2462
+ friendlyFire: mode ?
2463
+ if 0: i8
2464
+ if 2: i8
2465
+ default: void
2466
+ nameTagVisibility: mode ?
2467
+ if 0: string
2468
+ if 2: string
2469
+ default: void
2470
+ collisionRule: mode ?
2471
+ if 0: string
2472
+ if 2: string
2473
+ default: void
2474
+ formatting: mode ?
2475
+ if 0: varint
2476
+ if 2: varint
2477
+ default: void
2478
+ prefix: mode ?
2479
+ if 0: anonymousNbt
2480
+ if 2: anonymousNbt
2481
+ default: void
2482
+ suffix: mode ?
2483
+ if 0: anonymousNbt
2484
+ if 2: anonymousNbt
2485
+ default: void
2486
+ players: mode ?
2487
+ if 0: string[]varint
2488
+ if 3: string[]varint
2489
+ if 4: string[]varint
2490
+ default: void
2491
+ # MC: ClientboundSetScorePacket
2492
+ packet_scoreboard_score:
2493
+ itemName: string
2494
+ scoreName: string
2495
+ value: varint
2496
+ display_name?: anonymousNbt
2497
+ number_format?: varint
2498
+ styling: number_format ?
2499
+ if 1: anonymousNbt
2500
+ if 2: anonymousNbt
2501
+ default: void
2502
+ # MC: ClientboundSetSimulationDistancePacket
2503
+ packet_simulation_distance:
2504
+ distance: varint
2505
+ # MC: ClientboundSetSubtitleTextPacket
2506
+ packet_set_title_subtitle:
2507
+ text: anonymousNbt
2508
+ # MC: ClientboundSetTimePacket
2509
+ packet_update_time:
2510
+ age: i64
2511
+ time: i64
2512
+ # MC: ClientboundSetTitleTextPacket
2513
+ packet_set_title_text:
2514
+ text: anonymousNbt
2515
+ # MC: ClientboundSetTitlesAnimationPacket
2516
+ packet_set_title_time:
2517
+ fadeIn: i32
2518
+ stay: i32
2519
+ fadeOut: i32
2520
+ # MC: ClientboundSoundEntityPacket
2521
+ packet_entity_sound_effect:
2522
+ soundId: varint
2523
+ soundEvent: soundId ?
2524
+ if 0:
2525
+ resource: string
2526
+ range?: f32
2527
+ default: void
2528
+ soundCategory: soundSource
2529
+ entityId: varint
2530
+ volume: f32
2531
+ pitch: f32
2532
+ seed: i64
2533
+ # MC: ClientboundSoundPacket
2534
+ packet_sound_effect:
2535
+ soundId: varint
2536
+ soundEvent: soundId ?
2537
+ if 0:
2538
+ resource: string
2539
+ range?: f32
2540
+ default:
2541
+
2542
+ soundCategory: soundSource
2543
+ x: i32
2544
+ y: i32
2545
+ z: i32
2546
+ volume: f32
2547
+ pitch: f32
2548
+ seed: i64
2549
+ # MC: ClientboundStartConfigurationPacket
2550
+ packet_start_configuration:
2551
+ # Empty
2552
+ # MC: ClientboundStopSoundPacket
2553
+ packet_stop_sound:
2554
+ flags: i8
2555
+ source: flags ?
2556
+ if 1: varint
2557
+ if 3: varint
2558
+ default: void
2559
+ sound: flags ?
2560
+ if 2: string
2561
+ if 3: string
2562
+ default: void
2563
+ ## (Store Cookie is Common)
2564
+ # MC: ClientboundSystemChatPacket
2565
+ packet_system_chat:
2566
+ content: anonymousNbt
2567
+ isActionBar: bool
2568
+ # MC: ClientboundTabListPacket
2569
+ packet_playerlist_header:
2570
+ header: anonymousNbt
2571
+ footer: anonymousNbt
2572
+ # MC: ClientboundTagQueryPacket
2573
+ packet_nbt_query_response:
2574
+ transactionId: varint
2575
+ nbt: anonOptionalNbt
2576
+ # MC: ClientboundTakeItemEntityPacket
2577
+ packet_collect:
2578
+ collectedEntityId: varint
2579
+ collectorEntityId: varint
2580
+ pickupItemCount: varint
2581
+ # MC: ClientboundTeleportEntityPacket
2582
+ packet_entity_teleport:
2583
+ entityId: varint
2584
+ x: f64
2585
+ y: f64
2586
+ z: f64
2587
+ yaw: i8
2588
+ pitch: i8
2589
+ onGround: bool
2590
+ # MC: ClientboundTickingStatePacket
2591
+ packet_set_ticking_state:
2592
+ tick_rate: f32
2593
+ is_frozen: bool
2594
+ # MC: ClientboundTickingStepPacket
2595
+ packet_step_tick:
2596
+ tick_steps: varint
2597
+ ## (Transfer is common)
2598
+ # MC: ClientboundUpdateAdvancementsPacket
2599
+ packet_advancements:
2600
+ reset: bool
2601
+ advancementMapping: []varint
2602
+ key: string
2603
+ value:
2604
+ parentId?: string
2605
+ displayData?:
2606
+ title: anonymousNbt
2607
+ description: anonymousNbt
2608
+ icon: Slot
2609
+ frameType: varint
2610
+ flags: ["bitfield", [
2611
+ { "name": "unused", "size": 29, "signed": false },
2612
+ { "name": "hidden", "size": 1, "signed": false },
2613
+ { "name": "show_toast", "size": 1, "signed": false },
2614
+ { "name": "has_background_texture", "size": 1, "signed": false }
2615
+ ]]
2616
+ backgroundTexture: flags/has_background_texture ?
2617
+ if 1: string
2618
+ default: void
2619
+ xCord: f32
2620
+ yCord: f32
2621
+ requirements: []varint
2622
+ _: string[]varint
2623
+ sendsTelemtryData: bool
2624
+ identifiers: string[]varint
2625
+ progressMapping: []varint
2626
+ key: string
2627
+ value: []varint
2628
+ criterionIdentifier: string
2629
+ criterionProgress?: i64
2630
+ # MC: ClientboundUpdateAttributesPacket
2631
+ packet_entity_update_attributes:
2632
+ entityId: varint
2633
+ properties: []varint
2634
+ key: varint =>
2635
+ - generic.armor
2636
+ - generic.armor_toughness
2637
+ - generic.attack_damage
2638
+ - generic.attack_knockback
2639
+ - generic.attack_speed
2640
+ - player.block_break_speed
2641
+ - player.block_interaction_range
2642
+ - player.entity_interaction_range
2643
+ - generic.fall_damage_multiplier
2644
+ - generic.flying_speed
2645
+ - generic.follow_range
2646
+ - generic.gravity
2647
+ - generic.jump_strength
2648
+ - generic.knockback_resistance
2649
+ - generic.luck
2650
+ - generic.max_absorption
2651
+ - generic.max_health
2652
+ - generic.movement_speed
2653
+ - generic.safe_fall_distance
2654
+ - generic.scale
2655
+ - zombie.spawn_reinforcements
2656
+ - generic.step_height
2657
+ value: f64
2658
+ modifiers: []varint
2659
+ uuid: UUID
2660
+ amount: f64
2661
+ operation: i8
2662
+ # MC: ClientboundUpdateMobEffectPacket
2663
+ packet_entity_effect:
2664
+ entityId: varint
2665
+ effectId: varint
2666
+ amplifier: varint
2667
+ duration: varint
2668
+ # a bitfield of 0x01 for ambient, 0x02 for show particles
2669
+ # flags: ["bitfield", [
2670
+ # { "name": "unused", "size": 4 },
2671
+ # { "name": "ambient", "size": 1 },
2672
+ # { "name": "showParticles", "size": 1 },
2673
+ # { "name": "showIcon", "size": 1 },
2674
+ # { "name": "blend", "size": 1 }
2675
+ # ]]
2676
+ flags: u8
2677
+ # MC: ClientboundUpdateRecipesPacket
2678
+ packet_declare_recipes:
2679
+ recipes: []varint
2680
+ name: string
2681
+ type: varint =>
2682
+ - minecraft:crafting_shaped
2683
+ - minecraft:crafting_shapeless
2684
+ - minecraft:crafting_special_armordye
2685
+ - minecraft:crafting_special_bookcloning
2686
+ - minecraft:crafting_special_mapcloning
2687
+ - minecraft:crafting_special_mapextending
2688
+ - minecraft:crafting_special_firework_rocket
2689
+ - minecraft:crafting_special_firework_star
2690
+ - minecraft:crafting_special_firework_star_fade
2691
+ - minecraft:crafting_special_tippedarrow
2692
+ - minecraft:crafting_special_bannerduplicate
2693
+ - minecraft:crafting_special_shielddecoration
2694
+ - minecraft:crafting_special_shulkerboxcoloring
2695
+ - minecraft:crafting_special_suspiciousstew
2696
+ - minecraft:crafting_special_repairitem
2697
+ - minecraft:smelting
2698
+ - minecraft:blasting
2699
+ - minecraft:smoking
2700
+ - minecraft:campfire_cooking
2701
+ - minecraft:stonecutting
2702
+ - minecraft:smithing_transform
2703
+ - minecraft:smithing_trim
2704
+ - minecraft:crafting_decorated_pot
2705
+ data: type ?
2706
+ if minecraft:crafting_shapeless:
2707
+ group: string
2708
+ category: varint
2709
+ ingredients: ingredient[]varint
2710
+ result: Slot
2711
+ if minecraft:crafting_shaped:
2712
+ group: string
2713
+ category: varint
2714
+ width: varint
2715
+ height: varint
2716
+ ingredients: []$width
2717
+ _: ingredient[]$height
2718
+ result: Slot
2719
+ showNotification: bool
2720
+ if minecraft:crafting_special_armordye: minecraft_simple_recipe_format
2721
+ if minecraft:crafting_special_bookcloning: minecraft_simple_recipe_format
2722
+ if minecraft:crafting_special_mapcloning: minecraft_simple_recipe_format
2723
+ if minecraft:crafting_special_mapextending: minecraft_simple_recipe_format
2724
+ if minecraft:crafting_special_firework_rocket: minecraft_simple_recipe_format
2725
+ if minecraft:crafting_special_firework_star: minecraft_simple_recipe_format
2726
+ if minecraft:crafting_special_firework_star_fade: minecraft_simple_recipe_format
2727
+ if minecraft:crafting_special_repairitem: minecraft_simple_recipe_format
2728
+ if minecraft:crafting_special_tippedarrow: minecraft_simple_recipe_format
2729
+ if minecraft:crafting_special_bannerduplicate: minecraft_simple_recipe_format
2730
+ if minecraft:crafting_special_banneraddpattern: minecraft_simple_recipe_format
2731
+ if minecraft:crafting_special_shielddecoration: minecraft_simple_recipe_format
2732
+ if minecraft:crafting_special_shulkerboxcoloring: minecraft_simple_recipe_format
2733
+ if minecraft:crafting_special_suspiciousstew: minecraft_simple_recipe_format
2734
+ if minecraft:smelting: minecraft_smelting_format
2735
+ if minecraft:blasting: minecraft_smelting_format
2736
+ if minecraft:smoking: minecraft_smelting_format
2737
+ if minecraft:campfire_cooking: minecraft_smelting_format
2738
+ if minecraft:stonecutting:
2739
+ group: string
2740
+ ingredient: ingredient
2741
+ result: Slot
2742
+ if minecraft:smithing_transform:
2743
+ template: ingredient
2744
+ base: ingredient
2745
+ addition: ingredient
2746
+ result: Slot
2747
+ if minecraft:smithing_trim:
2748
+ template: ingredient
2749
+ base: ingredient
2750
+ addition: ingredient
2751
+ if minecraft:crafting_decorated_pot: minecraft_simple_recipe_format
2752
+ # MC: ClientboundUpdateTagsPacket
2753
+ packet_tags:
2754
+ tags: []varint
2755
+ tagType: string
2756
+ tags: tags
2757
+ # MC: ClientboundProjectilePowerPacket
2758
+ packet_set_projectile_power:
2759
+ id: varint
2760
+ power: vec3f64
2761
+
2762
+ packet:
2763
+ name: varint =>
2764
+ - bundle_delimiter
2765
+ - spawn_entity
2766
+ - spawn_entity_experience_orb
2767
+ - animation
2768
+ - statistics
2769
+ - acknowledge_player_digging
2770
+ - block_break_animation
2771
+ - tile_entity_data
2772
+ - block_action
2773
+ - block_change
2774
+ - boss_bar
2775
+ - difficulty
2776
+ - chunk_batch_finished
2777
+ - chunk_batch_start
2778
+ - chunk_biomes
2779
+ - clear_titles
2780
+ - tab_complete
2781
+ - declare_commands
2782
+ - close_window
2783
+ - window_items
2784
+ - craft_progress_bar
2785
+ - set_slot
2786
+ - cookie_request
2787
+ - set_cooldown
2788
+ - chat_suggestions
2789
+ - custom_payload
2790
+ - damage_event
2791
+ - debug_sample
2792
+ - hide_message
2793
+ - kick_disconnect
2794
+ - profileless_chat
2795
+ - entity_status
2796
+ - explosion
2797
+ - unload_chunk
2798
+ - game_state_change
2799
+ - open_horse_window
2800
+ - hurt_animation
2801
+ - initialize_world_border
2802
+ - keep_alive
2803
+ - map_chunk
2804
+ - world_event
2805
+ - world_particles
2806
+ - update_light
2807
+ - login
2808
+ - map
2809
+ - trade_list
2810
+ - rel_entity_move
2811
+ - entity_move_look
2812
+ - entity_look
2813
+ - vehicle_move
2814
+ - open_book
2815
+ - open_window
2816
+ - open_sign_entity
2817
+ - ping
2818
+ - ping_response
2819
+ - craft_recipe_response
2820
+ - abilities
2821
+ - player_chat
2822
+ - end_combat_event
2823
+ - enter_combat_event
2824
+ - death_combat_event
2825
+ - player_remove
2826
+ - player_info
2827
+ - face_player
2828
+ - position
2829
+ - unlock_recipes
2830
+ - entity_destroy
2831
+ - remove_entity_effect
2832
+ - reset_score
2833
+ - remove_resource_pack
2834
+ - add_resource_pack
2835
+ - respawn
2836
+ - entity_head_rotation
2837
+ - multi_block_change
2838
+ - select_advancement_tab
2839
+ - server_data
2840
+ - action_bar
2841
+ - world_border_center
2842
+ - world_border_lerp_size
2843
+ - world_border_size
2844
+ - world_border_warning_delay
2845
+ - world_border_warning_reach
2846
+ - camera
2847
+ - held_item_slot
2848
+ - update_view_position
2849
+ - update_view_distance
2850
+ - spawn_position
2851
+ - scoreboard_display_objective
2852
+ - entity_metadata
2853
+ - attach_entity
2854
+ - entity_velocity
2855
+ - entity_equipment
2856
+ - experience
2857
+ - update_health
2858
+ - scoreboard_objective
2859
+ - set_passengers
2860
+ - teams
2861
+ - scoreboard_score
2862
+ - simulation_distance
2863
+ - set_title_subtitle
2864
+ - update_time
2865
+ - set_title_text
2866
+ - set_title_time
2867
+ - entity_sound_effect
2868
+ - sound_effect
2869
+ - start_configuration
2870
+ - stop_sound
2871
+ - store_cookie
2872
+ - system_chat
2873
+ - playerlist_header
2874
+ - nbt_query_response
2875
+ - collect
2876
+ - entity_teleport
2877
+ - set_ticking_state
2878
+ - step_tick
2879
+ - transfer
2880
+ - advancements
2881
+ - entity_update_attributes
2882
+ - entity_effect
2883
+ - declare_recipes
2884
+ - tags
2885
+ params: name ?
2886
+ if bundle_delimiter: void
2887
+ if spawn_entity: packet_spawn_entity
2888
+ if spawn_entity_experience_orb: packet_spawn_entity_experience_orb
2889
+ if animation: packet_animation
2890
+ if statistics: packet_statistics
2891
+ if acknowledge_player_digging: packet_acknowledge_player_digging
2892
+ if block_break_animation: packet_block_break_animation
2893
+ if tile_entity_data: packet_tile_entity_data
2894
+ if block_action: packet_block_action
2895
+ if block_change: packet_block_change
2896
+ if boss_bar: packet_boss_bar
2897
+ if difficulty: packet_difficulty
2898
+ if chunk_batch_finished: packet_chunk_batch_finished
2899
+ if chunk_batch_start: packet_chunk_batch_start
2900
+ if chunk_biomes: packet_chunk_biomes
2901
+ if clear_titles: packet_clear_titles
2902
+ if tab_complete: packet_tab_complete
2903
+ if declare_commands: packet_declare_commands
2904
+ if close_window: packet_close_window
2905
+ if window_items: packet_window_items
2906
+ if craft_progress_bar: packet_craft_progress_bar
2907
+ if set_slot: packet_set_slot
2908
+ if cookie_request: packet_common_cookie_request
2909
+ if set_cooldown: packet_set_cooldown
2910
+ if chat_suggestions: packet_chat_suggestions
2911
+ if custom_payload: packet_custom_payload
2912
+ if damage_event: packet_damage_event
2913
+ if debug_sample: packet_debug_sample
2914
+ if hide_message: packet_hide_message
2915
+ if kick_disconnect: packet_kick_disconnect
2916
+ if profileless_chat: packet_profileless_chat
2917
+ if entity_status: packet_entity_status
2918
+ if explosion: packet_explosion
2919
+ if unload_chunk: packet_unload_chunk
2920
+ if game_state_change: packet_game_state_change
2921
+ if open_horse_window: packet_open_horse_window
2922
+ if hurt_animation: packet_hurt_animation
2923
+ if initialize_world_border: packet_initialize_world_border
2924
+ if keep_alive: packet_keep_alive
2925
+ if map_chunk: packet_map_chunk
2926
+ if world_event: packet_world_event
2927
+ if world_particles: packet_world_particles
2928
+ if update_light: packet_update_light
2929
+ if login: packet_login
2930
+ if map: packet_map
2931
+ if trade_list: packet_trade_list
2932
+ if rel_entity_move: packet_rel_entity_move
2933
+ if entity_move_look: packet_entity_move_look
2934
+ if entity_look: packet_entity_look
2935
+ if vehicle_move: packet_vehicle_move
2936
+ if open_book: packet_open_book
2937
+ if open_window: packet_open_window
2938
+ if open_sign_entity: packet_open_sign_entity
2939
+ if ping: packet_ping
2940
+ if ping_response: packet_ping_response
2941
+ if craft_recipe_response: packet_craft_recipe_response
2942
+ if abilities: packet_abilities
2943
+ if player_chat: packet_player_chat
2944
+ if end_combat_event: packet_end_combat_event
2945
+ if enter_combat_event: packet_enter_combat_event
2946
+ if death_combat_event: packet_death_combat_event
2947
+ if player_remove: packet_player_remove
2948
+ if player_info: packet_player_info
2949
+ if face_player: packet_face_player
2950
+ if position: packet_position
2951
+ if unlock_recipes: packet_unlock_recipes
2952
+ if entity_destroy: packet_entity_destroy
2953
+ if remove_entity_effect: packet_remove_entity_effect
2954
+ if reset_score: packet_reset_score
2955
+ if remove_resource_pack: packet_remove_resource_pack
2956
+ if add_resource_pack: packet_add_resource_pack
2957
+ if respawn: packet_respawn
2958
+ if entity_head_rotation: packet_entity_head_rotation
2959
+ if multi_block_change: packet_multi_block_change
2960
+ if select_advancement_tab: packet_select_advancement_tab
2961
+ if server_data: packet_server_data
2962
+ if action_bar: packet_action_bar
2963
+ if world_border_center: packet_world_border_center
2964
+ if world_border_lerp_size: packet_world_border_lerp_size
2965
+ if world_border_size: packet_world_border_size
2966
+ if world_border_warning_delay: packet_world_border_warning_delay
2967
+ if world_border_warning_reach: packet_world_border_warning_reach
2968
+ if camera: packet_camera
2969
+ if held_item_slot: packet_held_item_slot
2970
+ if update_view_position: packet_update_view_position
2971
+ if update_view_distance: packet_update_view_distance
2972
+ if spawn_position: packet_spawn_position
2973
+ if scoreboard_display_objective: packet_scoreboard_display_objective
2974
+ if entity_metadata: packet_entity_metadata
2975
+ if attach_entity: packet_attach_entity
2976
+ if entity_velocity: packet_entity_velocity
2977
+ if entity_equipment: packet_entity_equipment
2978
+ if experience: packet_experience
2979
+ if update_health: packet_update_health
2980
+ if scoreboard_objective: packet_scoreboard_objective
2981
+ if set_passengers: packet_set_passengers
2982
+ if teams: packet_teams
2983
+ if scoreboard_score: packet_scoreboard_score
2984
+ if simulation_distance: packet_simulation_distance
2985
+ if set_title_subtitle: packet_set_title_subtitle
2986
+ if update_time: packet_update_time
2987
+ if set_title_text: packet_set_title_text
2988
+ if set_title_time: packet_set_title_time
2989
+ if entity_sound_effect: packet_entity_sound_effect
2990
+ if sound_effect: packet_sound_effect
2991
+ if start_configuration: packet_start_configuration
2992
+ if stop_sound: packet_stop_sound
2993
+ if store_cookie: packet_common_store_cookie
2994
+ if system_chat: packet_system_chat
2995
+ if playerlist_header: packet_playerlist_header
2996
+ if nbt_query_response: packet_nbt_query_response
2997
+ if collect: packet_collect
2998
+ if entity_teleport: packet_entity_teleport
2999
+ if set_ticking_state: packet_set_ticking_state
3000
+ if step_tick: packet_step_tick
3001
+ if transfer: packet_common_transfer
3002
+ if advancements: packet_advancements
3003
+ if entity_update_attributes: packet_entity_update_attributes
3004
+ if entity_effect: packet_entity_effect
3005
+ if declare_recipes: packet_declare_recipes
3006
+ if tags: packet_tags
3007
+
3008
+ ^play.toServer.types:
3009
+ # MC: ServerboundAcceptTeleportationPacket
3010
+ packet_teleport_confirm:
3011
+ teleportId: varint
3012
+ # MC: ServerboundBlockEntityTagQueryPacket
3013
+ packet_query_block_nbt:
3014
+ transactionId: varint
3015
+ location: position
3016
+ # MC: ServerboundChangeDifficultyPacket
3017
+ packet_set_difficulty:
3018
+ newDifficulty: u8
3019
+ # MC: ServerboundChatAckPacket
3020
+ packet_message_acknowledgement:
3021
+ count: varint
3022
+ # MC: ServerboundChatCommandPacket
3023
+ packet_chat_command:
3024
+ command: string
3025
+ # MC: ServerboundChatCommandSignedPacket
3026
+ packet_chat_command_signed:
3027
+ command: string
3028
+ timestamp: i64
3029
+ salt: i64
3030
+ argumentSignatures: []varint
3031
+ argumentName: string
3032
+ signature: [
3033
+ "buffer",
3034
+ {
3035
+ "count": 256
3036
+ }
3037
+ ]
3038
+ messageCount: varint
3039
+ acknowledged: [
3040
+ "buffer",
3041
+ {
3042
+ "count": 3
3043
+ }
3044
+ ]
3045
+ # MC: ServerboundChatPacket
3046
+ packet_chat_message:
3047
+ message: string
3048
+ timestamp: i64
3049
+ salt: i64
3050
+ signature?: [
3051
+ "buffer",
3052
+ {
3053
+ "count": 256
3054
+ }
3055
+ ]
3056
+ offset: varint
3057
+ acknowledged: [
3058
+ "buffer",
3059
+ {
3060
+ "count": 3
3061
+ }
3062
+ ]
3063
+ # MC: ServerboundChatSessionUpdatePacket
3064
+ packet_chat_session_update:
3065
+ sessionUUID: UUID
3066
+ expireTime: i64
3067
+ publicKey: ByteArray
3068
+ signature: ByteArray
3069
+ # MC: ServerboundChunkBatchReceivedPacket
3070
+ packet_chunk_batch_received:
3071
+ chunksPerTick: f32
3072
+ # MC: ServerboundClientCommandPacket
3073
+ packet_client_command:
3074
+ actionId: varint
3075
+ # MC: ServerboundClientInformationPacket
3076
+ packet_settings:
3077
+ locale: string
3078
+ viewDistance: i8
3079
+ chatFlags: varint
3080
+ chatColors: bool
3081
+ skinParts: u8
3082
+ mainHand: varint
3083
+ enableTextFiltering: bool
3084
+ enableServerListing: bool
3085
+ # MC: ServerboundCommandSuggestionPacket
3086
+ packet_tab_complete:
3087
+ transactionId: varint
3088
+ text: string
3089
+ # MC: ServerboundConfigurationAcknowledgedPacket
3090
+ packet_configuration_acknowledged:
3091
+ # Empty
3092
+ # MC: ServerboundContainerButtonClickPacket
3093
+ packet_enchant_item:
3094
+ windowId: i8
3095
+ enchantment: i8
3096
+ # MC: ServerboundContainerClickPacket
3097
+ packet_window_click:
3098
+ windowId: u8
3099
+ stateId: varint
3100
+ slot: i16
3101
+ mouseButton: i8
3102
+ mode: varint
3103
+ changedSlots: []varint
3104
+ location: i16
3105
+ item: Slot
3106
+ cursorItem: Slot
3107
+ # MC: ServerboundContainerClosePacket
3108
+ packet_close_window:
3109
+ windowId: u8
3110
+ # MC: ServerboundContainerSlotStateChangedPacket
3111
+ packet_set_slot_state:
3112
+ slot_id: varint
3113
+ window_id: varint
3114
+ state: bool
3115
+ # MC: ServerboundCustomPayloadPacket
3116
+ packet_custom_payload:
3117
+ channel: string
3118
+ data: restBuffer
3119
+ # MC: ServerboundDebugSampleSubscriptionPacket
3120
+ packet_debug_sample_subscription:
3121
+ type: varint
3122
+ # MC: ServerboundEditBookPacket
3123
+ packet_edit_book:
3124
+ hand: varint
3125
+ pages: string[]varint
3126
+ title?: string
3127
+ # MC: ServerboundEntityTagQuery
3128
+ packet_query_entity_nbt:
3129
+ transactionId: varint
3130
+ entityId: varint
3131
+ # MC: ServerboundInteractPacket
3132
+ packet_use_entity:
3133
+ target: varint
3134
+ mouse: varint
3135
+ x: mouse ?
3136
+ if 2: f32
3137
+ default: void
3138
+ y: mouse ?
3139
+ if 2: f32
3140
+ default: void
3141
+ z: mouse ?
3142
+ if 2: f32
3143
+ default: void
3144
+ hand: mouse ?
3145
+ if 0: varint
3146
+ if 2: varint
3147
+ default: void
3148
+ sneaking: bool
3149
+ # MC: ServerboundJigsawGeneratePacket
3150
+ packet_generate_structure:
3151
+ location: position
3152
+ levels: varint
3153
+ keepJigsaws: bool
3154
+ # MC: ServerboundKeepAlivePacket
3155
+ packet_keep_alive:
3156
+ keepAliveId: i64
3157
+ # MC: ServerboundLockDifficultyPacket
3158
+ packet_lock_difficulty:
3159
+ locked: bool
3160
+ # MC: ServerboundMovePlayerPacket.Pos
3161
+ packet_position:
3162
+ x: f64
3163
+ y: f64
3164
+ z: f64
3165
+ onGround: bool
3166
+ # MC: ServerboundMovePlayerPacket.PosRot
3167
+ packet_position_look:
3168
+ x: f64
3169
+ y: f64
3170
+ z: f64
3171
+ yaw: f32
3172
+ pitch: f32
3173
+ onGround: bool
3174
+ # MC: ServerboundMovePlayerPacket.Rot
3175
+ packet_look:
3176
+ yaw: f32
3177
+ pitch: f32
3178
+ onGround: bool
3179
+ # MC: ServerboundMovePlayerPacket.StatusOnly
3180
+ packet_flying:
3181
+ onGround: bool
3182
+ # MC: ServerboundMoveVehiclePacket
3183
+ packet_vehicle_move:
3184
+ x: f64
3185
+ y: f64
3186
+ z: f64
3187
+ yaw: f32
3188
+ pitch: f32
3189
+ # MC: ServerboundPaddleBoatPacket
3190
+ packet_steer_boat:
3191
+ leftPaddle: bool
3192
+ rightPaddle: bool
3193
+ # MC: ServerboundPickItemPacket
3194
+ packet_pick_item:
3195
+ slot: varint
3196
+ # MC: ServerboundPingRequestPacket
3197
+ packet_ping_request:
3198
+ id: i64
3199
+ # MC: ServerboundPlaceRecipePacket
3200
+ packet_craft_recipe_request:
3201
+ windowId: i8
3202
+ recipe: string
3203
+ makeAll: bool
3204
+ # MC: ServerboundPlayerAbilitiesPacket
3205
+ packet_abilities:
3206
+ flags: i8
3207
+ # MC: ServerboundPlayerActionPacket
3208
+ packet_block_dig:
3209
+ status: varint
3210
+ location: position
3211
+ face: i8
3212
+ sequence: varint
3213
+ # MC: ServerboundPlayerCommandPacket
3214
+ packet_entity_action:
3215
+ entityId: varint
3216
+ actionId: varint
3217
+ jumpBoost: varint
3218
+ # MC: ServerboundPlayerInputPacket
3219
+ packet_steer_vehicle:
3220
+ sideways: f32
3221
+ forward: f32
3222
+ jump: u8
3223
+ # MC: ServerboundPongPacket
3224
+ packet_pong:
3225
+ id: i32
3226
+ # MC: ServerboundRecipeBookChangeSettingsPacket
3227
+ packet_recipe_book:
3228
+ bookId: varint
3229
+ bookOpen: bool
3230
+ filterActive: bool
3231
+ # MC: ServerboundRecipeBookSeenRecipePacket
3232
+ packet_displayed_recipe:
3233
+ recipeId: string
3234
+ # MC: ServerboundRenameItemPacket
3235
+ packet_name_item:
3236
+ name: string
3237
+ # MC: ServerboundResourcePackPacket
3238
+ packet_resource_pack_receive:
3239
+ uuid: UUID
3240
+ result: varint
3241
+ # MC: ServerboundSeenAdvancementsPacket
3242
+ packet_advancement_tab:
3243
+ action: varint
3244
+ tabId: action ?
3245
+ if 0: string
3246
+ if 1: void
3247
+ # MC: ServerboundSelectTradePacket
3248
+ packet_select_trade:
3249
+ slot: varint
3250
+ # MC: ServerboundSetBeaconPacket
3251
+ packet_set_beacon_effect:
3252
+ primary_effect?: varint
3253
+ secondary_effect?: varint
3254
+ # MC: ServerboundSetCarriedItemPacket
3255
+ packet_held_item_slot:
3256
+ slotId: i16
3257
+ # MC: ServerboundSetCommandBlockPacket
3258
+ packet_update_command_block:
3259
+ location: position
3260
+ command: string
3261
+ mode: varint
3262
+ flags: u8
3263
+ # MC: ServerboundSetCommandMinecartPacket
3264
+ packet_update_command_block_minecart:
3265
+ entityId: varint
3266
+ command: string
3267
+ track_output: bool
3268
+ # MC: ServerboundSetCreativeModeSlotPacket
3269
+ packet_set_creative_slot:
3270
+ slot: i16
3271
+ item: Slot
3272
+ # MC: ServerboundSetJigsawBlockPacket
3273
+ packet_update_jigsaw_block:
3274
+ location: position
3275
+ name: string
3276
+ target: string
3277
+ pool: string
3278
+ finalState: string
3279
+ jointType: string
3280
+ selection_priority: varint
3281
+ placement_priority: varint
3282
+ # MC: ServerboundSetStructureBlockPacket
3283
+ packet_update_structure_block:
3284
+ location: position
3285
+ action: varint
3286
+ mode: varint
3287
+ name: string
3288
+ offset_x: i8
3289
+ offset_y: i8
3290
+ offset_z: i8
3291
+ size_x: i8
3292
+ size_y: i8
3293
+ size_z: i8
3294
+ mirror: varint
3295
+ rotation: varint
3296
+ metadata: string
3297
+ integrity: f32
3298
+ seed: varint
3299
+ flags: u8
3300
+ # MC: ServerboundSignUpdatePacket
3301
+ packet_update_sign:
3302
+ location: position
3303
+ isFrontText: bool
3304
+ text1: string
3305
+ text2: string
3306
+ text3: string
3307
+ text4: string
3308
+ # MC: ServerboundSwingPacket
3309
+ packet_arm_animation:
3310
+ hand: varint
3311
+ # MC: ServerboundTeleportToEntityPacket
3312
+ packet_spectate:
3313
+ target: UUID
3314
+ # MC: ServerboundUseItemOnPacket
3315
+ packet_block_place:
3316
+ hand: varint
3317
+ location: position
3318
+ direction: varint
3319
+ cursorX: f32
3320
+ cursorY: f32
3321
+ cursorZ: f32
3322
+ insideBlock: bool
3323
+ sequence: varint
3324
+ # MC: ServerboundUseItemPacket
3325
+ packet_use_item:
3326
+ hand: varint
3327
+ sequence: varint
3328
+
3329
+ packet:
3330
+ name: varint =>
3331
+ - teleport_confirm
3332
+ - query_block_nbt
3333
+ - set_difficulty
3334
+ - message_acknowledgement
3335
+ - chat_command
3336
+ - chat_command_signed
3337
+ - chat_message
3338
+ - chat_session_update
3339
+ - chunk_batch_received
3340
+ - client_command
3341
+ - settings
3342
+ - tab_complete
3343
+ - configuration_acknowledged
3344
+ - enchant_item
3345
+ - window_click
3346
+ - close_window
3347
+ - set_slot_state
3348
+ - cookie_response
3349
+ - custom_payload
3350
+ - debug_sample_subscription
3351
+ - edit_book
3352
+ - query_entity_nbt
3353
+ - use_entity
3354
+ - generate_structure
3355
+ - keep_alive
3356
+ - lock_difficulty
3357
+ - position
3358
+ - position_look
3359
+ - look
3360
+ - flying
3361
+ - vehicle_move
3362
+ - steer_boat
3363
+ - pick_item
3364
+ - ping_request
3365
+ - craft_recipe_request
3366
+ - abilities
3367
+ - block_dig
3368
+ - entity_action
3369
+ - steer_vehicle
3370
+ - pong
3371
+ - recipe_book
3372
+ - displayed_recipe
3373
+ - name_item
3374
+ - resource_pack_receive
3375
+ - advancement_tab
3376
+ - select_trade
3377
+ - set_beacon_effect
3378
+ - held_item_slot
3379
+ - update_command_block
3380
+ - update_command_block_minecart
3381
+ - set_creative_slot
3382
+ - update_jigsaw_block
3383
+ - update_structure_block
3384
+ - update_sign
3385
+ - arm_animation
3386
+ - spectate
3387
+ - block_place
3388
+ - use_item
3389
+ params: name ?
3390
+ if teleport_confirm: packet_teleport_confirm
3391
+ if query_block_nbt: packet_query_block_nbt
3392
+ if set_difficulty: packet_set_difficulty
3393
+ if message_acknowledgement: packet_message_acknowledgement
3394
+ if chat_command: packet_chat_command
3395
+ if chat_command_signed: packet_chat_command_signed
3396
+ if chat_message: packet_chat_message
3397
+ if chat_session_update: packet_chat_session_update
3398
+ if chunk_batch_received: packet_chunk_batch_received
3399
+ if client_command: packet_client_command
3400
+ if settings: packet_settings
3401
+ if tab_complete: packet_tab_complete
3402
+ if configuration_acknowledged: packet_configuration_acknowledged
3403
+ if enchant_item: packet_enchant_item
3404
+ if window_click: packet_window_click
3405
+ if close_window: packet_close_window
3406
+ if set_slot_state: packet_set_slot_state
3407
+ if cookie_response: packet_common_cookie_response
3408
+ if custom_payload: packet_custom_payload
3409
+ if edit_book: packet_edit_book
3410
+ if query_entity_nbt: packet_query_entity_nbt
3411
+ if use_entity: packet_use_entity
3412
+ if generate_structure: packet_generate_structure
3413
+ if keep_alive: packet_keep_alive
3414
+ if lock_difficulty: packet_lock_difficulty
3415
+ if position: packet_position
3416
+ if position_look: packet_position_look
3417
+ if look: packet_look
3418
+ if flying: packet_flying
3419
+ if vehicle_move: packet_vehicle_move
3420
+ if steer_boat: packet_steer_boat
3421
+ if pick_item: packet_pick_item
3422
+ if ping_request: packet_ping_request
3423
+ if craft_recipe_request: packet_craft_recipe_request
3424
+ if abilities: packet_abilities
3425
+ if block_dig: packet_block_dig
3426
+ if entity_action: packet_entity_action
3427
+ if steer_vehicle: packet_steer_vehicle
3428
+ if pong: packet_pong
3429
+ if recipe_book: packet_recipe_book
3430
+ if displayed_recipe: packet_displayed_recipe
3431
+ if name_item: packet_name_item
3432
+ if resource_pack_receive: packet_resource_pack_receive
3433
+ if advancement_tab: packet_advancement_tab
3434
+ if select_trade: packet_select_trade
3435
+ if set_beacon_effect: packet_set_beacon_effect
3436
+ if held_item_slot: packet_held_item_slot
3437
+ if update_command_block: packet_update_command_block
3438
+ if update_command_block_minecart: packet_update_command_block_minecart
3439
+ if set_creative_slot: packet_set_creative_slot
3440
+ if update_jigsaw_block: packet_update_jigsaw_block
3441
+ if update_structure_block: packet_update_structure_block
3442
+ if update_sign: packet_update_sign
3443
+ if arm_animation: packet_arm_animation
3444
+ if spectate: packet_spectate
3445
+ if block_place: packet_block_place
3446
+ if use_item: packet_use_item