minecraft-data 3.61.2 → 3.63.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 (53) hide show
  1. package/data.js +23 -1
  2. package/doc/history.md +8 -0
  3. package/minecraft-data/.github/helper-bot/index.js +2 -2
  4. package/minecraft-data/.github/workflows/update-helper.yml +1 -1
  5. package/minecraft-data/README.md +1 -1
  6. package/minecraft-data/data/bedrock/1.19.10/protocol.json +1 -3
  7. package/minecraft-data/data/bedrock/1.19.10/types.yml +0 -2
  8. package/minecraft-data/data/bedrock/1.19.20/protocol.json +1 -3
  9. package/minecraft-data/data/bedrock/1.19.20/types.yml +0 -2
  10. package/minecraft-data/data/bedrock/1.19.21/protocol.json +1 -3
  11. package/minecraft-data/data/bedrock/1.19.21/types.yml +0 -2
  12. package/minecraft-data/data/bedrock/1.19.30/protocol.json +1 -3
  13. package/minecraft-data/data/bedrock/1.19.30/types.yml +0 -2
  14. package/minecraft-data/data/bedrock/1.19.40/protocol.json +6 -8
  15. package/minecraft-data/data/bedrock/1.19.40/types.yml +0 -2
  16. package/minecraft-data/data/bedrock/1.19.50/protocol.json +16 -18
  17. package/minecraft-data/data/bedrock/1.19.50/types.yml +0 -2
  18. package/minecraft-data/data/bedrock/1.19.60/protocol.json +20 -22
  19. package/minecraft-data/data/bedrock/1.19.60/types.yml +0 -2
  20. package/minecraft-data/data/bedrock/1.19.62/protocol.json +20 -22
  21. package/minecraft-data/data/bedrock/1.19.62/types.yml +0 -2
  22. package/minecraft-data/data/bedrock/1.19.70/protocol.json +24 -26
  23. package/minecraft-data/data/bedrock/1.19.70/types.yml +0 -2
  24. package/minecraft-data/data/bedrock/1.19.80/protocol.json +24 -26
  25. package/minecraft-data/data/bedrock/1.19.80/types.yml +0 -2
  26. package/minecraft-data/data/bedrock/1.20.0/protocol.json +28 -30
  27. package/minecraft-data/data/bedrock/1.20.0/types.yml +0 -2
  28. package/minecraft-data/data/bedrock/1.20.10/protocol.json +28 -30
  29. package/minecraft-data/data/bedrock/1.20.10/types.yml +0 -2
  30. package/minecraft-data/data/bedrock/1.20.30/protocol.json +35 -37
  31. package/minecraft-data/data/bedrock/1.20.30/types.yml +0 -2
  32. package/minecraft-data/data/bedrock/1.20.40/protocol.json +35 -37
  33. package/minecraft-data/data/bedrock/1.20.40/types.yml +0 -2
  34. package/minecraft-data/data/bedrock/1.20.50/protocol.json +44 -46
  35. package/minecraft-data/data/bedrock/1.20.50/types.yml +0 -2
  36. package/minecraft-data/data/bedrock/1.20.61/proto.yml +4147 -0
  37. package/minecraft-data/data/bedrock/1.20.61/protocol.json +44 -46
  38. package/minecraft-data/data/bedrock/1.20.61/types.yml +2291 -0
  39. package/minecraft-data/data/bedrock/1.20.71/protocol.json +12171 -0
  40. package/minecraft-data/data/bedrock/1.20.71/version.json +6 -0
  41. package/minecraft-data/data/bedrock/common/protocolVersions.json +6 -0
  42. package/minecraft-data/data/bedrock/common/versions.json +2 -1
  43. package/minecraft-data/data/bedrock/latest/proto.yml +18 -11
  44. package/minecraft-data/data/bedrock/latest/types.yml +24 -2
  45. package/minecraft-data/data/dataPaths.json +23 -1
  46. package/minecraft-data/data/pc/1.20.2/recipes.json +35086 -9367
  47. package/minecraft-data/data/pc/1.20.3/recipes.json +35098 -9379
  48. package/minecraft-data/data/pc/common/protocolVersions.json +16 -0
  49. package/minecraft-data/doc/add-data-new-version.md +3 -1
  50. package/minecraft-data/doc/history.md +8 -0
  51. package/minecraft-data/tools/js/test/audit_recipes.js +12 -0
  52. package/package.json +1 -1
  53. package/minecraft-data/.github/helper-bot/github-helper.js +0 -59
@@ -0,0 +1,2291 @@
1
+ !StartDocs: Types
2
+
3
+ BehaviourPackInfos: []li16
4
+ uuid: string
5
+ version: string
6
+ size: lu64
7
+ content_key: string
8
+ sub_pack_name: string
9
+ content_identity: string
10
+ has_scripts: bool
11
+
12
+ TexturePackInfos: []li16
13
+ uuid: string
14
+ version: string
15
+ size: lu64
16
+ content_key: string
17
+ sub_pack_name: string
18
+ content_identity: string
19
+ has_scripts: bool
20
+ rtx_enabled: bool
21
+
22
+ ResourcePackIdVersions: []varint
23
+ # The ID of the resource pack.
24
+ uuid: string
25
+ # The version of the resource pack.
26
+ version: string
27
+ # The subpack name of the resource pack.
28
+ name: string
29
+
30
+ ResourcePackIds: string[]li16
31
+
32
+ Experiment:
33
+ name: string
34
+ enabled: bool
35
+
36
+ Experiments: Experiment[]li32
37
+
38
+ GameMode: zigzag32 =>
39
+ 0: survival
40
+ 1: creative
41
+ 2: adventure
42
+ 3: survival_spectator
43
+ 4: creative_spectator
44
+ 5: fallback
45
+ 6: spectator
46
+
47
+ GameRule:
48
+ name: string
49
+ editable: bool
50
+ type: varint =>
51
+ 1: bool
52
+ 2: int
53
+ 3: float
54
+ value: type?
55
+ if bool: bool
56
+ if int: zigzag32
57
+ if float: lf32
58
+
59
+ GameRules: GameRule[]varint
60
+
61
+ # CacheBlob represents a blob as used in the client side blob cache protocol. It holds a hash of its data and
62
+ # the full data of it.
63
+ Blob:
64
+ # Hash is the hash of the blob. The hash is computed using xxHash, and must be deterministic for the same
65
+ # chunk data.
66
+ hash: lu64
67
+ # Payload is the data of the blob. When sent, the client will associate the Hash of the blob with the
68
+ # Payload in it.
69
+ payload: ByteArray
70
+
71
+ BlockProperties: []varint
72
+ name: string
73
+ state: nbt
74
+
75
+ Itemstates: []varint
76
+ name: string
77
+ runtime_id: li16
78
+ component_based: bool
79
+
80
+
81
+
82
+ ItemExtraDataWithBlockingTick:
83
+ has_nbt: lu16 =>
84
+ 0xffff: 'true'
85
+ 0x0000: 'false'
86
+ nbt: has_nbt ?
87
+ if true:
88
+ version: u8
89
+ nbt: lnbt
90
+ default: void
91
+ can_place_on: ShortString[]li32
92
+ can_destroy: ShortString[]li32
93
+ blocking_tick: li64
94
+
95
+ ItemExtraDataWithoutBlockingTick:
96
+ has_nbt: lu16 =>
97
+ 0xffff: 'true'
98
+ 0x0000: 'false'
99
+ nbt: has_nbt ?
100
+ if true:
101
+ version: u8
102
+ nbt: lnbt
103
+ default: void
104
+ can_place_on: ShortString[]li32
105
+ can_destroy: ShortString[]li32
106
+
107
+ # Same as below but without a "networkStackID" boolean
108
+ ItemLegacy:
109
+ network_id: zigzag32
110
+ _: network_id?
111
+ if 0: void
112
+ default:
113
+ count: lu16
114
+ metadata: varint
115
+ block_runtime_id: zigzag32
116
+ extra: network_id ?
117
+ # The Shield Item ID is sent in the StartGame packet. It is usually 355 in vanilla.
118
+ if /ShieldItemID: '["encapsulated", { "lengthType": "varint", "type": "ItemExtraDataWithBlockingTick" }]'
119
+ default: '["encapsulated", { "lengthType": "varint", "type": "ItemExtraDataWithoutBlockingTick" }]'
120
+
121
+ # An "ItemStack" here represents an Item instance. You can think about it like a pointer
122
+ # to an item class. The data for the class gets updated with the data in the `item` field
123
+ # As of 1.16.220, now functionally the same as `Item` just without an extra boolean when
124
+ # server auth inventories is disabled.
125
+ Item:
126
+ network_id: zigzag32
127
+ _: network_id?
128
+ if 0: void
129
+ default:
130
+ count: lu16
131
+ metadata: varint
132
+ # When server authoritative inventory is enabled, all allocated items have a unique ID used to identify
133
+ # a specifc item instance.
134
+ has_stack_id: u8
135
+ # StackNetworkID is the network ID of this item *instance*. If the stack is empty, 0 is always written for this
136
+ # field. If not, the field should be set to 1 if the server authoritative inventories are disabled in the
137
+ # StartGame packet, or to a unique stack ID if it is enabled.
138
+ stack_id: has_stack_id ?
139
+ if 0: void
140
+ default: zigzag32
141
+ block_runtime_id: zigzag32
142
+ extra: network_id ?
143
+ # The Shield Item ID is sent in the StartGame packet. It is usually 355 in vanilla.
144
+ ## Really bad compiler hack to allow us to use a global variable
145
+ if /ShieldItemID: '["encapsulated", { "lengthType": "varint", "type": "ItemExtraDataWithBlockingTick" }]'
146
+ default: '["encapsulated", { "lengthType": "varint", "type": "ItemExtraDataWithoutBlockingTick" }]'
147
+
148
+ vec3i:
149
+ x: zigzag32
150
+ y: zigzag32
151
+ z: zigzag32
152
+
153
+ vec3li:
154
+ x: li32
155
+ y: li32
156
+ z: li32
157
+
158
+ vec3u:
159
+ x: varint
160
+ y: varint
161
+ z: varint
162
+
163
+ vec3f:
164
+ x: lf32
165
+ y: lf32
166
+ z: lf32
167
+
168
+ vec2f:
169
+ x: lf32
170
+ z: lf32
171
+
172
+ Vec3fopts:
173
+ x?: lf32
174
+ y?: lf32
175
+ z?: lf32
176
+
177
+ Vec2fopts:
178
+ x?: lf32
179
+ y?: lf32
180
+
181
+ MetadataDictionary: []varint
182
+ # https://github.com/pmmp/PocketMine-MP/blob/stable/src/pocketmine/entity/Entity.php#L101
183
+ key: varint =>
184
+ 0: flags
185
+ 1: health #int (minecart/boat)
186
+ 2: variant #int
187
+ 3: color #byte
188
+ 4: nametag #string
189
+ 5: owner_eid #long
190
+ 6: target_eid #long
191
+ 7: air #short
192
+ 8: potion_color #int (ARGB!)
193
+ 9: potion_ambient #byte
194
+ 10: jump_duration #long
195
+ 11: hurt_time #int (minecart/boat)
196
+ 12: hurt_direction #int (minecart/boat)
197
+ 13: paddle_time_left #float
198
+ 14: paddle_time_right #float
199
+ 15: experience_value #int (xp orb)
200
+ 16: minecart_display_block #int (id | (data << 16))
201
+ 17: minecart_display_offset #int
202
+ 18: minecart_has_display #byte (must be 1 for minecart to show block inside)
203
+ 20: old_swell
204
+ 21: swell_dir
205
+ 22: charge_amount
206
+ 23: enderman_held_runtime_id #short
207
+ 24: entity_age #short
208
+ 26: player_flags
209
+ 27: player_index
210
+ 28: player_bed_position #block coords
211
+ 29: fireball_power_x #float
212
+ 30: fireball_power_y
213
+ 31: fireball_power_z
214
+ 32: aux_power
215
+ 33: fish_x
216
+ 34: fish_z
217
+ 35: fish_angle
218
+ 36: potion_aux_value #short
219
+ 37: lead_holder_eid #long
220
+ 38: scale
221
+ 39: interactive_tag #string
222
+ 40: npc_skin_id #string
223
+ 41: url_tag #string
224
+ 42: max_airdata_max_air
225
+ 43: mark_variant #int
226
+ 44: container_type #byte
227
+ 45: container_base_size #int
228
+ 46: container_extra_slots_per_strength #int
229
+ 47: block_target
230
+ 48: wither_invulnerable_ticks #int
231
+ 49: wither_target_1 #long
232
+ 50: wither_target_2 #long
233
+ 51: wither_target_3 #long
234
+ 52: aerial_attack
235
+ 53: boundingbox_width
236
+ 54: boundingbox_height
237
+ 55: fuse_length
238
+ 56: rider_seat_position #vector3f
239
+ 57: rider_rotation_locked #byte
240
+ 58: rider_max_rotation #float
241
+ 59: rider_min_rotation #float
242
+ 60: rider_rotation_offset
243
+ 61: area_effect_cloud_radius #float
244
+ 62: area_effect_cloud_waiting #int
245
+ 63: area_effect_cloud_particle_id #int
246
+ 64: shulker_peek_id #int
247
+ 65: shulker_attach_face #byte
248
+ 66: shulker_attached #short
249
+ 67: shulker_attach_pos
250
+ 68: trading_player_eid #long
251
+ 69: trading_career
252
+ 70: has_command_block
253
+ 71: command_block_command #string
254
+ 72: command_block_last_output #string
255
+ 73: command_block_track_output #byte
256
+ 74: controlling_rider_seat_number #byte
257
+ 75: strength #int
258
+ 76: max_strength #int
259
+ 77: spell_casting_color #int
260
+ 78: limited_life
261
+ 79: armor_stand_pose_index # int
262
+ 80: ender_crystal_time_offset # int
263
+ 81: always_show_nametag # byte
264
+ 82: color_2 # byte
265
+ 83: name_author
266
+ 84: score_tag #String
267
+ 85: balloon_attached_entity # long
268
+ 86: pufferfish_size
269
+ 87: bubble_time
270
+ 88: agent
271
+ 89: sitting_amount
272
+ 90: sitting_amount_previous
273
+ 91: eating_counter
274
+ 92: flags_extended
275
+ 93: laying_amount
276
+ 94: laying_amount_previous
277
+ 95: duration
278
+ 96: spawn_time
279
+ 97: change_rate
280
+ 98: change_on_pickup
281
+ 99: pickup_count
282
+ 100: interact_text
283
+ 101: trade_tier
284
+ 102: max_trade_tier
285
+ 103: trade_experience
286
+ 104: skin_id
287
+ 105: spawning_frames
288
+ 106: command_block_tick_delay
289
+ 107: command_block_execute_on_first_tick
290
+ 108: ambient_sound_interval
291
+ 109: ambient_sound_interval_range
292
+ 110: ambient_sound_event_name
293
+ 111: fall_damage_multiplier
294
+ 112: name_raw_text
295
+ 113: can_ride_target
296
+ 114: low_tier_cured_discount
297
+ 115: high_tier_cured_discount
298
+ 116: nearby_cured_discount
299
+ 117: nearby_cured_discount_timestamp
300
+ 118: hitbox
301
+ 119: is_buoyant
302
+ 120: base_runtime_id
303
+ 121: freezing_effect_strength
304
+ 122: buoyancy_data
305
+ 123: goat_horn_count
306
+ 124: update_properties
307
+ 125: movement_sound_distance_offset
308
+ 126: heartbeat_interval_ticks
309
+ 127: heartbeat_sound_event
310
+ 128: player_last_death_position
311
+ 129: player_last_death_dimension
312
+ 130: player_has_died
313
+ 131: collision_box
314
+ type: varint =>
315
+ 0: byte
316
+ 1: short
317
+ 2: int
318
+ 3: float
319
+ 4: string
320
+ 5: compound
321
+ 6: vec3i
322
+ 7: long
323
+ 8: vec3f
324
+ value: key ?
325
+ if flags: MetadataFlags1
326
+ if flags_extended: MetadataFlags2
327
+ default: type ?
328
+ if byte: i8
329
+ if short: li16
330
+ if int: zigzag32
331
+ if float: lf32
332
+ if string: string
333
+ if compound: nbt
334
+ if vec3i: vec3i
335
+ if long: zigzag64
336
+ if vec3f: vec3f
337
+
338
+ MetadataFlags1: [ "bitflags", {
339
+ "type": "zigzag64",
340
+ "big": true,
341
+ "flags": [
342
+ "onfire",
343
+ "sneaking",
344
+ "riding",
345
+ "sprinting",
346
+ "action",
347
+ "invisible",
348
+ "tempted",
349
+ "inlove",
350
+ "saddled",
351
+ "powered",
352
+ "ignited",
353
+ "baby",
354
+ "converting",
355
+ "critical",
356
+ "can_show_nametag",
357
+ "always_show_nametag",
358
+ "no_ai",
359
+ "silent",
360
+ "wallclimbing",
361
+ "can_climb",
362
+ "swimmer",
363
+ "can_fly",
364
+ "walker",
365
+ "resting",
366
+ "sitting",
367
+ "angry",
368
+ "interested",
369
+ "charged",
370
+ "tamed",
371
+ "orphaned",
372
+ "leashed",
373
+ "sheared",
374
+ "gliding",
375
+ "elder",
376
+ "moving",
377
+ "breathing",
378
+ "chested",
379
+ "stackable",
380
+ "showbase",
381
+ "rearing",
382
+ "vibrating",
383
+ "idling",
384
+ "evoker_spell",
385
+ "charge_attack",
386
+ "wasd_controlled",
387
+ "can_power_jump",
388
+ "can_dash",
389
+ "linger",
390
+ "has_collision",
391
+ "affected_by_gravity",
392
+ "fire_immune",
393
+ "dancing",
394
+ "enchanted",
395
+ "show_trident_rope", # tridents show an animated rope when enchanted with loyalty after they are thrown and return to their owner. to be combined with data_owner_eid
396
+ "container_private", #inventory is private, doesn't drop contents when killed if true
397
+ "transforming",
398
+ "spin_attack",
399
+ "swimming",
400
+ "bribed", #dolphins have this set when they go to find treasure for the player
401
+ "pregnant",
402
+ "laying_egg",
403
+ "rider_can_pick", #???
404
+ "transition_sitting",
405
+ "eating",
406
+ "laying_down"
407
+ ]
408
+ }]
409
+
410
+ MetadataFlags2: [ "bitflags", {
411
+ "type": "zigzag64",
412
+ "big": true,
413
+ "flags": [
414
+ "sneezing",
415
+ "trusting",
416
+ "rolling",
417
+ "scared",
418
+ "in_scaffolding",
419
+ "over_scaffolding",
420
+ "fall_through_scaffolding",
421
+ "blocking", #shield
422
+ "transition_blocking",
423
+ "blocked_using_shield",
424
+ "blocked_using_damaged_shield",
425
+ "sleeping",
426
+ "wants_to_wake",
427
+ "trade_interest",
428
+ "door_breaker", #...
429
+ "breaking_obstruction",
430
+ "door_opener", #...
431
+ "illager_captain",
432
+ "stunned",
433
+ "roaring",
434
+ "delayed_attacking",
435
+ "avoiding_mobs",
436
+ "avoiding_block",
437
+ "facing_target_to_range_attack",
438
+ "hidden_when_invisible", #??????????????????
439
+ "is_in_ui",
440
+ "stalking",
441
+ "emoting",
442
+ "celebrating",
443
+ "admiring",
444
+ "celebrating_special",
445
+ "unknown95", # 95
446
+ "ram_attack",
447
+ "playing_dead",
448
+ "in_ascendable_block",
449
+ "over_descendable_block",
450
+ "croaking",
451
+ "eat_mob",
452
+ "jump_goal_jump",
453
+ "emerging",
454
+ "sniffing",
455
+ "digging",
456
+ "sonic_boom",
457
+ "has_dash_cooldown",
458
+ "push_towards_closest_space",
459
+ "scenting",
460
+ "rising",
461
+ "feeling_happy",
462
+ "searching",
463
+ "crawling",
464
+ "timer_flag_1",
465
+ "timer_flag_2",
466
+ "timer_flag_3",
467
+ ]
468
+ }]
469
+
470
+ Link:
471
+ ridden_entity_id: zigzag64
472
+ rider_entity_id: zigzag64
473
+ type: u8
474
+ immediate: bool
475
+ rider_initiated: bool
476
+
477
+ Links: Link[]varint
478
+
479
+ EntityAttributes: []varint
480
+ name: string
481
+ min: lf32
482
+ value: lf32
483
+ max: lf32
484
+
485
+ EntityProperties:
486
+ ints: []varint
487
+ index: varint
488
+ value: zigzag32
489
+ floats: []varint
490
+ index: varint
491
+ value: lf32
492
+
493
+ Rotation:
494
+ yaw: byterot
495
+ pitch: byterot
496
+ head_yaw: byterot
497
+
498
+ BlockCoordinates: # mojang...
499
+ x: zigzag32
500
+ y: varint
501
+ z: zigzag32
502
+
503
+ PlayerAttributes: []varint
504
+ min: lf32
505
+ max: lf32
506
+ current: lf32
507
+ default: lf32
508
+ name: string
509
+ modifiers: []varint
510
+ id: string
511
+ name: string
512
+ amount: lf32
513
+ operation: li32
514
+ operand: li32
515
+ serializable: bool
516
+
517
+ # UseItemTransactionData represents an inventory transaction data object sent when the client uses an item on
518
+ # a block. Also used in PlayerAuthoritativeInput packet
519
+ TransactionUseItem:
520
+ # ActionType is the type of the UseItem inventory transaction. It is one of the action types found above,
521
+ # and specifies the way the player interacted with the block.
522
+ action_type: varint =>
523
+ 0: click_block
524
+ 1: click_air
525
+ 2: break_block
526
+ # BlockPosition is the position of the block that was interacted with. This is only really a correct
527
+ # block position if ActionType is not UseItemActionClickAir.
528
+ block_position: BlockCoordinates
529
+ # BlockFace is the face of the block that was interacted with. When clicking the block, it is the face
530
+ # clicked. When breaking the block, it is the face that was last being hit until the block broke.
531
+ face: zigzag32
532
+ # HotBarSlot is the hot bar slot that the player was holding while clicking the block. It should be used
533
+ # to ensure that the hot bar slot and held item are correctly synchronised with the server.
534
+ hotbar_slot: zigzag32
535
+ # HeldItem is the item that was held to interact with the block. The server should check if this item
536
+ # is actually present in the HotBarSlot.
537
+ held_item: Item
538
+ # Position is the position of the player at the time of interaction. For clicking a block, this is the
539
+ # position at that time, whereas for breaking the block it is the position at the time of breaking.
540
+ player_pos: vec3f
541
+ # ClickedPosition is the position that was clicked relative to the block's base coordinate. It can be
542
+ # used to find out exactly where a player clicked the block.
543
+ click_pos: vec3f
544
+ # BlockRuntimeID is the runtime ID of the block that was clicked. It may be used by the server to verify
545
+ # that the player's world client-side is synchronised with the server's.
546
+ block_runtime_id: varint
547
+
548
+ # Actions is a list of actions that took place, that form the inventory transaction together. Each of
549
+ # these actions hold one slot in which one item was changed to another. In general, the combination of
550
+ # all of these actions results in a balanced inventory transaction. This should be checked to ensure that
551
+ # no items are cheated into the inventory.
552
+ TransactionActions: []varint
553
+ source_type: varint =>
554
+ 0: container
555
+ 1: global
556
+ 2: world_interaction
557
+ 3: creative
558
+ 100: craft_slot
559
+ 99999: craft
560
+ _: source_type?
561
+ if container or craft:
562
+ inventory_id: WindowIDVarint
563
+ if world_interaction:
564
+ flags: varint
565
+ if craft or craft_slot:
566
+ action: varint
567
+ default: void
568
+ slot: varint
569
+ old_item: Item
570
+ new_item: Item
571
+
572
+ # The Minecraft bedrock inventory system was refactored, but not all inventory actions use the new packet.
573
+ # This data structure holds actions that have not been updated to the new system.
574
+ TransactionLegacy:
575
+ # LegacyRequestID is an ID that is only non-zero at times when sent by the client. The server should
576
+ # always send 0 for this. When this field is not 0, the LegacySetItemSlots slice below will have values
577
+ # in it.
578
+ # LegacyRequestID ties in with the ItemStackResponse packet. If this field is non-0, the server should
579
+ # respond with an ItemStackResponse packet. Some inventory actions such as dropping an item out of the
580
+ # hotbar are still one using this packet, and the ItemStackResponse packet needs to tie in with it.
581
+ legacy_request_id: zigzag32
582
+ # `legacy_transactions` are only present if the LegacyRequestID is non-zero. These item slots inform the
583
+ # server of the slots that were changed during the inventory transaction, and the server should send
584
+ # back an ItemStackResponse packet with these slots present in it. (Or false with no slots, if rejected.)
585
+ legacy_transactions: legacy_request_id?
586
+ if 0: void
587
+ default: []varint
588
+ container_id: u8
589
+ changed_slots: []varint
590
+ slot_id: u8
591
+
592
+ Transaction:
593
+ # Old transaction system data
594
+ legacy: TransactionLegacy
595
+ # What type of transaction took place
596
+ transaction_type: varint =>
597
+ 0: normal
598
+ 1: inventory_mismatch
599
+ 2: item_use
600
+ 3: item_use_on_entity
601
+ 4: item_release
602
+ # The list of inventory internal actions in this packet, e.g. inventory GUI actions
603
+ actions: TransactionActions
604
+ # Extra data if an intenal inventory transaction did not take place, e.g. use of an item
605
+ transaction_data: transaction_type?
606
+ if normal or inventory_mismatch: void
607
+ # UseItemTransactionData represents an inventory transaction data object sent when the client uses an item on
608
+ # a block.
609
+ if item_use: TransactionUseItem
610
+ # UseItemOnEntityTransactionData represents an inventory transaction data object sent when the client uses
611
+ # an item on an entity.
612
+ if item_use_on_entity:
613
+ # TargetEntityRuntimeID is the entity runtime ID of the target that was clicked. It is the runtime ID
614
+ # that was assigned to it in the AddEntity packet.
615
+ entity_runtime_id: varint64
616
+ # ActionType is the type of the UseItemOnEntity inventory transaction. It is one of the action types
617
+ # found in the constants above, and specifies the way the player interacted with the entity.
618
+ action_type: varint =>
619
+ 0: interact
620
+ 1: attack
621
+ # HotBarSlot is the hot bar slot that the player was holding while clicking the entity. It should be used
622
+ # to ensure that the hot bar slot and held item are correctly synchronised with the server.
623
+ hotbar_slot: zigzag32
624
+ # HeldItem is the item that was held to interact with the entity. The server should check if this item
625
+ # is actually present in the HotBarSlot.
626
+ held_item: Item
627
+ # Position is the position of the player at the time of clicking the entity.
628
+ player_pos: vec3f
629
+ # ClickedPosition is the position that was clicked relative to the entity's base coordinate. It can be
630
+ # used to find out exactly where a player clicked the entity.
631
+ click_pos: vec3f
632
+ # ReleaseItemTransactionData represents an inventory transaction data object sent when the client releases
633
+ # the item it was using, for example when stopping while eating or stopping the charging of a bow.
634
+ if item_release:
635
+ # ActionType is the type of the ReleaseItem inventory transaction. It is one of the action types found
636
+ # in the constants above, and specifies the way the item was released.
637
+ # As of 1.13, the ActionType is always 0. This field can be ignored, because releasing food (by consuming
638
+ # it) or releasing a bow (to shoot an arrow) is essentially the same.
639
+ action_type: varint =>
640
+ 0: release
641
+ 1: consume
642
+ # HotBarSlot is the hot bar slot that the player was holding while releasing the item. It should be used
643
+ # to ensure that the hot bar slot and held item are correctly synchronised with the server.
644
+ hotbar_slot: zigzag32
645
+ # HeldItem is the item that was released. The server should check if this item is actually present in the
646
+ # HotBarSlot.
647
+ held_item: Item
648
+ # HeadPosition is the position of the player's head at the time of releasing the item. This is used
649
+ # mainly for purposes such as spawning eating particles at that position.
650
+ head_pos: vec3f
651
+
652
+ ItemStacks: Item[]varint
653
+
654
+ RecipeIngredient:
655
+ type: u8 =>
656
+ 0: invalid
657
+ # DefaultItemDescriptor represents an item descriptor for regular items.
658
+ 1: int_id_meta
659
+ # MoLangItemDescriptor represents an item descriptor for items that use MoLang (e.g. behaviour packs).
660
+ 2: molang
661
+ # ItemTagItemDescriptor represents an item descriptor that uses item tagging. This should be used to reduce duplicative
662
+ # entries for items that can be grouped under a single tag.
663
+ 3: item_tag
664
+ # DeferredItemDescriptor represents an item descriptor that uses a namespace and metadata value to identify the item.
665
+ # There is no clear benefit of using this item descriptor.
666
+ 4: string_id_meta
667
+ # ComplexAliasItemDescriptor represents an item descriptor that uses a single name to identify the item. There is no
668
+ # clear benefit of using this item descriptor and only seem to be used for specific recipes.
669
+ 5: complex_alias
670
+ _: type ?
671
+ if int_id_meta:
672
+ # NetworkID is the numerical network ID of the item. This is sometimes a positive ID, and sometimes a
673
+ # negative ID, depending on what item it concerns.
674
+ network_id: li16
675
+ metadata: network_id ?
676
+ if 0: void
677
+ default: li16
678
+ if molang:
679
+ # Expression represents the MoLang expression used to identify the item/it's associated tag.
680
+ expression: string
681
+ # Version represents the version of MoLang to use.
682
+ version: u8
683
+ if item_tag:
684
+ # Tag represents the tag that the item is part of.
685
+ tag: string
686
+ if string_id_meta:
687
+ # Name is the name of the item, which is a name like 'minecraft:stick'.
688
+ name: string
689
+ # MetadataValue is the metadata value of the item. For some items, this is the damage value, whereas for
690
+ # other items it is simply an identifier of a variant of the item.
691
+ metadata: li16
692
+ if complex_alias:
693
+ # Name is the name of the item, which is a name like 'minecraft:stick'.
694
+ name: string
695
+ count: zigzag32
696
+
697
+ PotionTypeRecipes: []varint
698
+ input_item_id: zigzag32
699
+ input_item_meta: zigzag32
700
+ ingredient_id: zigzag32
701
+ ingredient_meta: zigzag32
702
+ output_item_id: zigzag32
703
+ output_item_meta: zigzag32
704
+
705
+ PotionContainerChangeRecipes: []varint
706
+ input_item_id: zigzag32
707
+ ingredient_id: zigzag32
708
+ output_item_id: zigzag32
709
+
710
+ Recipes: []varint
711
+ type: zigzag32 =>
712
+ 0: shapeless #'ENTRY_SHAPELESS',
713
+ 1: shaped #'ENTRY_SHAPED',
714
+ 2: furnace # 'ENTRY_FURNACE',
715
+ # `furnace_with_metadata` is a recipe specifically used for furnace-type crafting stations. It is equal to
716
+ # `furnace`, except it has an input item with a specific metadata value, instead of any metadata value.
717
+ 3: furnace_with_metadata # 'ENTRY_FURNACE_DATA', // has metadata
718
+ 4: multi #'ENTRY_MULTI', //TODO
719
+ 5: shulker_box #'ENTRY_SHULKER_BOX', //TODO
720
+ 6: shapeless_chemistry #'ENTRY_SHAPELESS_CHEMISTRY', //TODO
721
+ 7: shaped_chemistry #'ENTRY_SHAPED_CHEMISTRY', //TODO
722
+ # SmithingTransformRecipe is a recipe specifically used for smithing tables. It has two input items and adds them
723
+ # together, resulting in a new item.
724
+ 8: smithing_transform
725
+ 9: smithing_trim
726
+ recipe: type?
727
+ if shapeless or shulker_box or shapeless_chemistry:
728
+ recipe_id: LatinString
729
+ input: RecipeIngredient[]varint
730
+ output: ItemLegacy[]varint
731
+ uuid: uuid
732
+ block: string
733
+ priority: zigzag32
734
+ network_id: varint
735
+ if shaped or shaped_chemistry:
736
+ recipe_id: LatinString
737
+ width: zigzag32
738
+ height: zigzag32
739
+ # 2D input array, size of width*height
740
+ input: []$width
741
+ _: RecipeIngredient[]$height
742
+ output: ItemLegacy[]varint
743
+ uuid: uuid
744
+ block: string
745
+ priority: zigzag32
746
+ network_id: varint
747
+ if furnace:
748
+ input_id: zigzag32
749
+ output: ItemLegacy
750
+ block: string
751
+ if furnace_with_metadata:
752
+ input_id: zigzag32
753
+ input_meta: zigzag32
754
+ output: ItemLegacy
755
+ block: string
756
+ if multi:
757
+ uuid: uuid
758
+ network_id: varint
759
+ if smithing_transform:
760
+ # RecipeID is a unique ID of the recipe. This ID must be unique amongst all other types of recipes too,
761
+ # but its functionality is not exactly known.
762
+ recipe_id: LatinString
763
+ template: RecipeIngredient
764
+ # Base is the item that the Addition is being applied to in the smithing table.
765
+ base: RecipeIngredient
766
+ # Addition is the item that is being added to the Base item to result in a modified item.
767
+ addition: RecipeIngredient
768
+ # Result is the resulting item from the two items being added together.
769
+ result: ItemLegacy
770
+ # Tag is a serialized compound tag in the network little endian format.
771
+ tag: string
772
+ # RecipeNetworkID is a unique ID used to identify the recipe over network. Each recipe must have a unique
773
+ # network ID. Recommended is to just increment a variable for each unique recipe registered.
774
+ # This field must never be 0.
775
+ network_id: varint
776
+ if smithing_trim:
777
+ recipe_id: LatinString
778
+ template: RecipeIngredient
779
+ input: RecipeIngredient
780
+ addition: RecipeIngredient
781
+ block: string
782
+ network_id: varint
783
+
784
+ SkinImage:
785
+ width: li32
786
+ height: li32
787
+ data: ByteArray
788
+
789
+ Skin:
790
+ skin_id: string
791
+ play_fab_id: string
792
+ skin_resource_pack: string
793
+ skin_data: SkinImage
794
+ animations: []li32
795
+ skin_image: SkinImage
796
+ animation_type: li32
797
+ animation_frames: lf32
798
+ expression_type: lf32
799
+ cape_data: SkinImage
800
+ geometry_data: string
801
+ geometry_data_version: string
802
+ animation_data: string
803
+
804
+ cape_id: string
805
+ full_skin_id: string
806
+ arm_size: string
807
+ skin_color: string
808
+ personal_pieces: []li32
809
+ piece_id: string
810
+ piece_type: string
811
+ pack_id: string
812
+ is_default_piece: bool
813
+ product_id: string
814
+ piece_tint_colors: []li32
815
+ piece_type: string
816
+ colors: string[]li32
817
+ premium: bool
818
+ persona: bool
819
+ # PersonaCapeOnClassicSkin specifies if the skin had a Persona cape (in-game skin creator cape) equipped
820
+ # on a classic skin.
821
+ cape_on_classic: bool
822
+ primary_user: bool
823
+ overriding_player_appearance: bool
824
+
825
+ PlayerRecords:
826
+ type: u8 =>
827
+ 0: add
828
+ 1: remove
829
+ records_count: varint
830
+ records: []$records_count
831
+ _: type?
832
+ if add:
833
+ uuid: uuid
834
+ entity_unique_id: zigzag64
835
+ username: string
836
+ xbox_user_id: string
837
+ platform_chat_id: string
838
+ build_platform: li32
839
+ skin_data: Skin
840
+ is_teacher: bool
841
+ is_host: bool
842
+ is_subclient: bool
843
+ if remove:
844
+ uuid: uuid
845
+ verified: type ?
846
+ if add: bool[]$records_count
847
+
848
+ Enchant:
849
+ id: u8
850
+ level: u8
851
+
852
+ EnchantOption:
853
+ cost: varint
854
+ slot_flags: li32
855
+ equip_enchants: Enchant[]varint
856
+ held_enchants: Enchant[]varint
857
+ self_enchants: Enchant[]varint
858
+ name: string
859
+ option_id: zigzag32
860
+
861
+ Action: zigzag32 =>
862
+ 0: start_break
863
+ 1: abort_break
864
+ 2: stop_break
865
+ 3: get_updated_block
866
+ 4: drop_item
867
+ 5: start_sleeping
868
+ 6: stop_sleeping
869
+ 7: respawn
870
+ 8: jump
871
+ 9: start_sprint
872
+ 10: stop_sprint
873
+ 11: start_sneak
874
+ 12: stop_sneak
875
+ 13: creative_player_destroy_block
876
+ # sent when spawning in a different dimension to tell the server we spawned
877
+ 14: dimension_change_ack
878
+ 15: start_glide
879
+ 16: stop_glide
880
+ 17: build_denied
881
+ 18: crack_break
882
+ 19: change_skin
883
+ # no longer used
884
+ 20: set_enchatnment_seed
885
+ 21: swimming
886
+ 22: stop_swimming
887
+ 23: start_spin_attack
888
+ 24: stop_spin_attack
889
+ 25: interact_block
890
+ 26: predict_break
891
+ 27: continue_break
892
+ 28: start_item_use_on
893
+ 29: stop_item_use_on
894
+ 30: handled_teleport
895
+ 31: missed_swing
896
+ 32: start_crawling
897
+ 33: stop_crawling
898
+ 34: start_flying
899
+ 35: stop_flying
900
+ 36: received_server_data
901
+
902
+ # Source and Destination point to the source slot from which Count of the item stack were taken and the
903
+ # destination slot to which this item was moved.
904
+ StackRequestSlotInfo:
905
+ # ContainerID is the ID of the container that the slot was in.
906
+ slot_type: ContainerSlotType
907
+ # Slot is the index of the slot within the container with the ContainerID above.
908
+ slot: u8
909
+ # StackNetworkID is the unique stack ID that the client assumes to be present in this slot. The server
910
+ # must check if these IDs match. If they do not match, servers should reject the stack request that the
911
+ # action holding this info was in.
912
+ stack_id: zigzag32
913
+
914
+ # ItemStackRequest is sent by the client to change item stacks in an inventory. It is essentially a
915
+ # replacement of the InventoryTransaction packet added in 1.16 for inventory specific actions, such as moving
916
+ # items around or crafting. The InventoryTransaction packet is still used for actions such as placing blocks
917
+ # and interacting with entities.
918
+ ItemStackRequest:
919
+ # RequestID is a unique ID for the request. This ID is used by the server to send a response for this
920
+ # specific request in the ItemStackResponse packet.
921
+ request_id: zigzag32
922
+ actions: []varint
923
+ type_id: u8 =>
924
+ # TakeStackRequestAction is sent by the client to the server to take x amount of items from one slot in a
925
+ # container to the cursor.
926
+ - take
927
+ # PlaceStackRequestAction is sent by the client to the server to place x amount of items from one slot into
928
+ # another slot, such as when shift clicking an item in the inventory to move it around or when moving an item
929
+ # in the cursor into a slot.
930
+ - place
931
+ # SwapStackRequestAction is sent by the client to swap the item in its cursor with an item present in another
932
+ # container. The two item stacks swap places.
933
+ - swap
934
+ # DropStackRequestAction is sent by the client when it drops an item out of the inventory when it has its
935
+ # inventory opened. This action is not sent when a player drops an item out of the hotbar using the Q button
936
+ # (or the equivalent on mobile). The InventoryTransaction packet is still used for that action, regardless of
937
+ # whether the item stack network IDs are used or not.
938
+ - drop
939
+ # DestroyStackRequestAction is sent by the client when it destroys an item in creative mode by moving it
940
+ # back into the creative inventory.
941
+ - destroy
942
+ # ConsumeStackRequestAction is sent by the client when it uses an item to craft another item. The original
943
+ # item is 'consumed'.
944
+ - consume
945
+ # CreateStackRequestAction is sent by the client when an item is created through being used as part of a
946
+ # recipe. For example, when milk is used to craft a cake, the buckets are leftover. The buckets are moved to
947
+ # the slot sent by the client here.
948
+ # Note that before this is sent, an action for consuming all items in the crafting table/grid is sent. Items
949
+ # that are not fully consumed when used for a recipe should not be destroyed there, but instead, should be
950
+ # turned into their respective resulting items.
951
+ - create
952
+ # (as of 1.18.10) Not currently used
953
+ - place_in_container
954
+ # (as of 1.18.10) Not currently used
955
+ - take_out_container
956
+ # LabTableCombineStackRequestAction is sent by the client when it uses a lab table to combine item stacks.
957
+ - lab_table_combine
958
+ # BeaconPaymentStackRequestAction is sent by the client when it submits an item to enable effects from a
959
+ # beacon. These items will have been moved into the beacon item slot in advance.
960
+ - beacon_payment
961
+ # MineBlockStackRequestAction is sent by the client when it breaks a block.
962
+ - mine_block
963
+ # CraftRecipeStackRequestAction is sent by the client the moment it begins crafting an item. This is the
964
+ # first action sent, before the Consume and Create item stack request actions.
965
+ # This action is also sent when an item is enchanted. Enchanting should be treated mostly the same way as
966
+ # crafting, where the old item is consumed.
967
+ - craft_recipe
968
+ # AutoCraftRecipeStackRequestAction is sent by the client similarly to the CraftRecipeStackRequestAction. The
969
+ # only difference is that the recipe is automatically created and crafted by shift clicking the recipe book.
970
+ - craft_recipe_auto #recipe book?
971
+ # CraftCreativeStackRequestAction is sent by the client when it takes an item out fo the creative inventory.
972
+ # The item is thus not really crafted, but instantly created.
973
+ - craft_creative
974
+ # CraftRecipeOptionalStackRequestAction is sent when using an anvil. When this action is sent, the
975
+ # CustomNames field in the respective stack request is non-empty and contains the name of the item created
976
+ # using the anvil.
977
+ - optional
978
+ # CraftGrindstoneRecipeStackRequestAction is sent when a grindstone recipe is crafted. It contains the RecipeNetworkID
979
+ # to identify the recipe crafted, and the cost for crafting the recipe.
980
+ - craft_grindstone_request
981
+ # CraftLoomRecipeStackRequestAction is sent when a loom recipe is crafted. It simply contains the
982
+ # pattern identifier to figure out what pattern is meant to be applied to the item.
983
+ - craft_loom_request
984
+ # CraftNonImplementedStackRequestAction is an action sent for inventory actions that aren't yet implemented
985
+ # in the new system. These include, for example, anvils.
986
+ - non_implemented # anvils aren't fully implemented yet
987
+ # CraftResultsDeprecatedStackRequestAction is an additional, deprecated packet sent by the client after
988
+ # crafting. It holds the final results and the amount of times the recipe was crafted. It shouldn't be used.
989
+ # This action is also sent when an item is enchanted. Enchanting should be treated mostly the same way as
990
+ # crafting, where the old item is consumed.
991
+ - results_deprecated
992
+ _: type_id ?
993
+ if take or place:
994
+ count: u8
995
+ source: StackRequestSlotInfo
996
+ destination: StackRequestSlotInfo
997
+ if swap:
998
+ # Source and Destination point to the source slot from which Count of the item stack were taken and the
999
+ # destination slot to which this item was moved.
1000
+ source: StackRequestSlotInfo
1001
+ destination: StackRequestSlotInfo
1002
+ if drop:
1003
+ # Count is the count of the item in the source slot that was taken towards the destination slot.
1004
+ count: u8
1005
+ # Source is the source slot from which items were dropped to the ground.
1006
+ source: StackRequestSlotInfo
1007
+ # Randomly seems to be set to false in most cases. I'm not entirely sure what this does, but this is what
1008
+ # vanilla calls this field.
1009
+ randomly: bool
1010
+ if destroy or consume:
1011
+ # Count is the count of the item in the source slot that was destroyed.
1012
+ count: u8
1013
+ # Source is the source slot from which items came that were destroyed by moving them into the creative
1014
+ # inventory.
1015
+ source: StackRequestSlotInfo
1016
+ if create:
1017
+ # ResultsSlot is the slot in the inventory in which the results of the crafting ingredients are to be
1018
+ # placed.
1019
+ result_slot_id: u8
1020
+ if beacon_payment:
1021
+ # PrimaryEffect and SecondaryEffect are the effects that were selected from the beacon.
1022
+ primary_effect: zigzag32
1023
+ secondary_effect: zigzag32
1024
+ if mine_block:
1025
+ # // Unknown1 ... TODO: Find out what this is for
1026
+ unknown1: zigzag32
1027
+ # PredictedDurability is the durability of the item that the client assumes to be present at the time
1028
+ predicted_durability: zigzag32
1029
+ # StackNetworkID is the unique stack ID that the client assumes to be present at the time. The server
1030
+ # must check if these IDs match. If they do not match, servers should reject the stack request that the
1031
+ # action holding this info was in.
1032
+ network_id: zigzag32
1033
+ if craft_recipe or craft_recipe_auto:
1034
+ # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches
1035
+ # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as
1036
+ # of 1.16.
1037
+ recipe_network_id: varint
1038
+ if craft_creative:
1039
+ # The stack ID of the creative item that is being created. This is one of the
1040
+ # creative item stack IDs sent in the CreativeContent packet.
1041
+ item_id: varint
1042
+ if optional:
1043
+ # For the cartography table, if a certain MULTI recipe is being called, this points to the network ID that was assigned.
1044
+ recipe_network_id: varint
1045
+ # Most likely the index in the request's filter strings that this action is using
1046
+ filtered_string_index: li32
1047
+ if craft_grindstone_request:
1048
+ # RecipeNetworkID is the network ID of the recipe that is about to be crafted. This network ID matches
1049
+ # one of the recipes sent in the CraftingData packet, where each of the recipes have a RecipeNetworkID as
1050
+ recipe_network_id: varint
1051
+ # Cost is the cost of the recipe that was crafted.
1052
+ cost: varint
1053
+ if craft_loom_request:
1054
+ # Pattern is the pattern identifier for the loom recipe.
1055
+ pattern: string
1056
+ if non_implemented: void
1057
+ if results_deprecated:
1058
+ result_items: ItemLegacy[]varint
1059
+ times_crafted: u8
1060
+ # CustomNames is a list of custom names involved in the request. This is typically filled with one string
1061
+ # when an anvil is used.
1062
+ # * Used for the server to determine which strings should be filtered. Used in anvils to verify a renamed item.
1063
+ custom_names: string[]varint
1064
+ # FilterCause represents the cause of any potential filtering. This is one of the constants above.
1065
+ cause: li32 =>
1066
+ - chat_public
1067
+ - chat_whisper
1068
+ - sign_text
1069
+ - anvil_text
1070
+ - book_and_quill_text
1071
+ - command_block_text
1072
+ - block_actor_data_text
1073
+ - join_event_text
1074
+ - leave_event_text
1075
+ - slash_command_chat
1076
+ - cartography_text
1077
+ - kick_command
1078
+ - title_command
1079
+ - summon_command
1080
+
1081
+
1082
+ # ItemStackResponse is a response to an individual ItemStackRequest.
1083
+ ItemStackResponses: []varint
1084
+ # Status specifies if the request with the RequestID below was successful. If this is the case, the
1085
+ # ContainerInfo below will have information on what slots ended up changing. If not, the container info
1086
+ # will be empty.
1087
+ # A non-0 status means an error occurred and will result in the action being reverted.
1088
+ status: u8 =>
1089
+ 0: ok
1090
+ 1: error
1091
+ # RequestID is the unique ID of the request that this response is in reaction to. If rejected, the client
1092
+ # will undo the actions from the request with this ID.
1093
+ request_id: zigzag32
1094
+ _: status ?
1095
+ if ok:
1096
+ # ContainerInfo holds information on the containers that had their contents changed as a result of the
1097
+ # request.
1098
+ containers: []varint
1099
+ # ContainerID is the container ID of the container that the slots that follow are in. For the main
1100
+ # inventory, this value seems to be 0x1b. For the cursor, this value seems to be 0x3a. For the crafting
1101
+ # grid, this value seems to be 0x0d.
1102
+ # * actually, this is ContainerSlotType - used by the inventory system that specifies the type of slot
1103
+ slot_type: ContainerSlotType
1104
+ # SlotInfo holds information on what item stack should be present in specific slots in the container.
1105
+ slots: []varint
1106
+ # Slot and HotbarSlot seem to be the same value every time: The slot that was actually changed. I'm not
1107
+ # sure if these slots ever differ.
1108
+ slot: u8
1109
+ hotbar_slot: u8
1110
+ # Count is the total count of the item stack. This count will be shown client-side after the response is
1111
+ # sent to the client.
1112
+ count: u8
1113
+ # StackNetworkID is the network ID of the new stack at a specific slot.
1114
+ item_stack_id: zigzag32
1115
+ # CustomName is the custom name of the item stack. It is used in relation to text filtering.
1116
+ custom_name: string
1117
+ # DurabilityCorrection is the current durability of the item stack. This durability will be shown
1118
+ # client-side after the response is sent to the client.
1119
+ durability_correction: zigzag32
1120
+
1121
+
1122
+ ItemComponentList: []varint
1123
+ # Name is the name of the item, which is a name like 'minecraft:stick'.
1124
+ name: string
1125
+ # Data is a map containing the components and properties of the item.
1126
+ nbt: nbt
1127
+
1128
+ CommandOrigin:
1129
+ # Origin is one of the values above that specifies the origin of the command. The origin may change,
1130
+ # depending on what part of the client actually called the command. The command may be issued by a
1131
+ # websocket server, for example.
1132
+ type: varint =>
1133
+ 0: player
1134
+ 1: block
1135
+ 2: minecart_block
1136
+ 3: dev_console
1137
+ 4: test
1138
+ 5: automation_player
1139
+ 6: client_automation
1140
+ 7: dedicated_server
1141
+ 8: entity
1142
+ 9: virtual
1143
+ 10: game_argument
1144
+ 11: entity_server
1145
+ 12: precompiled
1146
+ 13: game_director_entity_server # ?
1147
+ 14: script
1148
+ 15: executor
1149
+
1150
+ # UUID is the UUID of the command called. This UUID is a bit odd as it is not specified by the server. It
1151
+ # is not clear what exactly this UUID is meant to identify, but it is unique for each command called.
1152
+ uuid: uuid
1153
+ # RequestID is an ID that identifies the request of the client. The server should send a CommandOrigin
1154
+ # with the same request ID to ensure it can be matched with the request by the caller of the command.
1155
+ # This is especially important for websocket servers and it seems that this field is only non-empty for
1156
+ # these websocket servers.
1157
+ request_id: string
1158
+ # PlayerUniqueID is an ID that identifies the player, the same as the one found in the AdventureSettings
1159
+ # packet. Filling it out with 0 seems to work.
1160
+ # PlayerUniqueID is only written if Origin is CommandOriginDevConsole or CommandOriginTest.
1161
+ player_entity_id: type?
1162
+ if dev_console or test:
1163
+ player_entity_id: zigzag64
1164
+
1165
+ # MapTrackedObject is an object on a map that is 'tracked' by the client, such as an entity or a block. This
1166
+ # object may move, which is handled client-side.
1167
+ TrackedObject:
1168
+ # Type is the type of the tracked object. It is either MapObjectTypeEntity or MapObjectTypeBlock.
1169
+ type: li32 =>
1170
+ 0: entity
1171
+ 1: block
1172
+ # EntityUniqueID is the unique ID of the entity, if the tracked object was an entity. It needs not to be
1173
+ # filled out if Type is not MapObjectTypeEntity.
1174
+ entity_unique_id: type ?
1175
+ if entity: zigzag64
1176
+ # BlockPosition is the position of the block, if the tracked object was a block. It needs not to be
1177
+ # filled out if Type is not MapObjectTypeBlock.
1178
+ block_position: type ?
1179
+ if block: BlockCoordinates
1180
+
1181
+ # MapDecoration is a fixed decoration on a map: Its position or other properties do not change automatically
1182
+ # client-side.
1183
+ MapDecoration:
1184
+ type: u8 =>
1185
+ - marker_white
1186
+ - marker_green
1187
+ - marker_red
1188
+ - marker_blue
1189
+ - cross_white
1190
+ - triangle_red
1191
+ - square_white
1192
+ - marker_sign
1193
+ - marker_pink
1194
+ - marker_orange
1195
+ - marker_yellow
1196
+ - marker_teal
1197
+ - triangle_green
1198
+ - small_square_white
1199
+ - mansion
1200
+ - monument
1201
+ - no_draw
1202
+ - village_desert
1203
+ - village_plains
1204
+ - village_savanna
1205
+ - village_snowy
1206
+ - village_taiga
1207
+ - jungle_temple
1208
+ - witch_hut =>
1209
+ - marker_white
1210
+ - marker_green
1211
+ - marker_red
1212
+ - marker_blue
1213
+ - cross_white
1214
+ - triangle_red
1215
+ - square_white
1216
+ - marker_sign
1217
+ - marker_pink
1218
+ - marker_orange
1219
+ - marker_yellow
1220
+ - marker_teal
1221
+ - triangle_green
1222
+ - small_square_white
1223
+ - mansion
1224
+ - monument
1225
+ - no_draw
1226
+ - village_desert
1227
+ - village_plains
1228
+ - village_savanna
1229
+ - village_snowy
1230
+ - village_taiga
1231
+ - jungle_temple
1232
+ - witch_hut
1233
+ # Rotation is the rotation of the map decoration. It is byte due to the 16 fixed directions that the
1234
+ # map decoration may face.
1235
+ rotation: u8
1236
+ # X is the offset on the X axis in pixels of the decoration.
1237
+ x: u8
1238
+ # Y is the offset on the Y axis in pixels of the decoration.
1239
+ y: u8
1240
+ # Label is the name of the map decoration. This name may be of any value.
1241
+ label: string
1242
+ # Colour is the colour of the map decoration. Some map decoration types have a specific colour set
1243
+ # automatically, whereas others may be changed.
1244
+ color_abgr: varint
1245
+
1246
+
1247
+ StructureBlockSettings:
1248
+ # PaletteName is the name of the palette used in the structure. Currently, it seems that this field is
1249
+ # always 'default'.
1250
+ palette_name: string
1251
+ # IgnoreEntities specifies if the structure should ignore entities or include them. If set to false,
1252
+ # entities will also show up in the exported structure.
1253
+ ignore_entities: bool
1254
+ # IgnoreBlocks specifies if the structure should ignore blocks or include them. If set to false, blocks
1255
+ # will show up in the exported structure.
1256
+ ignore_blocks: bool
1257
+ non_ticking_players_and_ticking_areas: bool
1258
+ # Size is the size of the area that is about to be exported. The area exported will start at the
1259
+ # Position + Offset, and will extend as far as Size specifies.
1260
+ size: BlockCoordinates
1261
+ # Offset is the offset position that was set in the structure block. The area exported is offset by this
1262
+ # position.
1263
+ # **TODO**: This will be renamed to offset soon
1264
+ structure_offset: BlockCoordinates
1265
+ # LastEditingPlayerUniqueID is the unique ID of the player that last edited the structure block that
1266
+ # these settings concern.
1267
+ last_editing_player_unique_id: zigzag64
1268
+ # Rotation is the rotation that the structure block should obtain. See the constants above for available
1269
+ # options.
1270
+ rotation: u8 =>
1271
+ 0: none
1272
+ 1: 90_deg
1273
+ 2: 180_deg
1274
+ 3: 270_deg
1275
+ # Mirror specifies the way the structure should be mirrored. It is either no mirror at all, mirror on the
1276
+ # x/z axis or both.
1277
+ mirror: u8 =>
1278
+ 0: none
1279
+ 1: x_axis
1280
+ 2: z_axis
1281
+ 3: both_axes
1282
+ animation_mode: u8 =>
1283
+ 0: none
1284
+ 1: layers
1285
+ 2: blocks
1286
+ # How long the duration for this animation is
1287
+ animation_duration: lf32
1288
+ # Integrity is usually 1, but may be set to a number between 0 and 1 to omit blocks randomly, using
1289
+ # the Seed that follows.
1290
+ integrity: lf32
1291
+ # Seed is the seed used to omit blocks if Integrity is not equal to one. If the Seed is 0, a random
1292
+ # seed is selected to omit blocks.
1293
+ seed: lu32
1294
+ # Pivot is the pivot around which the structure may be rotated.
1295
+ pivot: vec3f
1296
+
1297
+ # EducationSharedResourceURI is an education edition feature that is used for transmitting
1298
+ # education resource settings to clients. It contains a button name and a link URL.
1299
+ EducationSharedResourceURI:
1300
+ # ButtonName is the button name of the resource URI.
1301
+ button_name: string
1302
+ # LinkURI is the link URI for the resource URI.
1303
+ link_uri: string
1304
+
1305
+ EducationExternalLinkSettings:
1306
+ # URL is the external link URL.
1307
+ url: string
1308
+ # DisplayName is the display name in game.
1309
+ display_name: string
1310
+
1311
+ BlockUpdate:
1312
+ position: BlockCoordinates
1313
+ runtime_id: varint
1314
+ flags: varint
1315
+ # EntityUniqueID is the unique ID of the falling block entity that the block transitions to or that the
1316
+ # entity transitions from.
1317
+ # Note that for both possible values for TransitionType, the EntityUniqueID should point to the falling
1318
+ # block entity involved.
1319
+ entity_unique_id: zigzag64
1320
+ # TransitionType is the type of the transition that happened. It is either BlockToEntityTransition, when
1321
+ # a block placed becomes a falling entity, or EntityToBlockTransition, when a falling entity hits the
1322
+ # ground and becomes a solid block again.
1323
+ transition_type: varint => TransitionType
1324
+
1325
+ TransitionType: =>
1326
+ # For falling sand, when a sand turns to an entity
1327
+ 0: entity
1328
+ # When sand turns back to a new block
1329
+ 1: create
1330
+ 2: destroy
1331
+
1332
+ MaterialReducer:
1333
+ mix: zigzag32
1334
+ items:
1335
+ network_id: zigzag32
1336
+ count: zigzag32
1337
+
1338
+ ## Permissions
1339
+
1340
+ # The permission level of a player, for example whether they are an Server Operator or not.
1341
+ PermissionLevel: u8 =>
1342
+ 0: visitor
1343
+ 1: member
1344
+ 2: operator
1345
+ 3: custom
1346
+
1347
+ # The command permission level, for example if being run by a Player, an Op, or a Command Block.
1348
+ CommandPermissionLevel: u8 =>
1349
+ 0: normal
1350
+ 1: operator
1351
+ 2: automation
1352
+ 3: host
1353
+ 4: owner
1354
+ 5: internal
1355
+
1356
+ # The command permission level, for example if being run by a Player, an Op, or a Command Block.
1357
+ CommandPermissionLevelVarint: u8 =>
1358
+ 0: normal
1359
+ 1: operator
1360
+ 2: automation
1361
+ 3: host
1362
+ 4: owner
1363
+ 5: internal
1364
+
1365
+ # List of Window IDs. When a new container is opened (container_open), a new sequential Window ID is created.
1366
+ # Below window IDs are hard-coded and created when the game starts and the server does not
1367
+ # send a `container_open` for them.
1368
+ WindowID: i8 =>
1369
+ -100: drop_contents
1370
+ -24: beacon
1371
+ -23: trading_output
1372
+ -22: trading_use_inputs
1373
+ -21: trading_input_2
1374
+ -20: trading_input_1
1375
+ -17: enchant_output
1376
+ -16: enchant_material
1377
+ -15: enchant_input
1378
+ -13: anvil_output
1379
+ -12: anvil_result
1380
+ -11: anvil_material
1381
+ -10: container_input
1382
+ -5: crafting_use_ingredient
1383
+ -4: crafting_result
1384
+ -3: crafting_remove_ingredient
1385
+ -2: crafting_add_ingredient
1386
+ -1: none
1387
+ 0: inventory
1388
+ 1: first
1389
+ 100: last
1390
+ 119: offhand
1391
+ 120: armor
1392
+ 121: creative
1393
+ 122: hotbar
1394
+ 123: fixed_inventory
1395
+ 124: ui
1396
+
1397
+ WindowIDVarint: varint =>
1398
+ -100: drop_contents
1399
+ -24: beacon
1400
+ -23: trading_output
1401
+ -22: trading_use_inputs
1402
+ -21: trading_input_2
1403
+ -20: trading_input_1
1404
+ -17: enchant_output
1405
+ -16: enchant_material
1406
+ -15: enchant_input
1407
+ -13: anvil_output
1408
+ -12: anvil_result
1409
+ -11: anvil_material
1410
+ -10: container_input
1411
+ -5: crafting_use_ingredient
1412
+ -4: crafting_result
1413
+ -3: crafting_remove_ingredient
1414
+ -2: crafting_add_ingredient
1415
+ -1: none
1416
+ 0: inventory
1417
+ 1: first
1418
+ 100: last
1419
+ 119: offhand
1420
+ 120: armor
1421
+ 121: creative
1422
+ 122: hotbar
1423
+ 123: fixed_inventory
1424
+ 124: ui
1425
+
1426
+ WindowType: i8 =>
1427
+ -9: none
1428
+ -1: inventory
1429
+ 0: container
1430
+ 1: workbench
1431
+ 2: furnace
1432
+ 3: enchantment
1433
+ 4: brewing_stand
1434
+ 5: anvil
1435
+ 6: dispenser
1436
+ 7: dropper
1437
+ 8: hopper
1438
+ 9: cauldron
1439
+ 10: minecart_chest
1440
+ 11: minecart_hopper
1441
+ 12: horse
1442
+ 13: beacon
1443
+ 14: structure_editor
1444
+ 15: trading
1445
+ 16: command_block
1446
+ 17: jukebox
1447
+ 18: armor
1448
+ 19: hand
1449
+ 20: compound_creator
1450
+ 21: element_constructor
1451
+ 22: material_reducer
1452
+ 23: lab_table
1453
+ 24: loom
1454
+ 25: lectern
1455
+ 26: grindstone
1456
+ 27: blast_furnace
1457
+ 28: smoker
1458
+ 29: stonecutter
1459
+ 30: cartography
1460
+ 31: hud
1461
+ 32: jigsaw_editor
1462
+ 33: smithing_table
1463
+ 34: chest_boat
1464
+ 35: decorated_pot
1465
+ 36: crafter
1466
+
1467
+ # Used in inventory transactions.
1468
+ ContainerSlotType: u8 =>
1469
+ - anvil_input
1470
+ - anvil_material
1471
+ - anvil_result
1472
+ - smithing_table_input
1473
+ - smithing_table_material
1474
+ - smithing_table_result
1475
+ - armor
1476
+ - container
1477
+ - beacon_payment
1478
+ - brewing_input
1479
+ - brewing_result
1480
+ - brewing_fuel
1481
+ - hotbar_and_inventory
1482
+ - crafting_input
1483
+ - crafting_output
1484
+ - recipe_construction
1485
+ - recipe_nature
1486
+ - recipe_items
1487
+ - recipe_search
1488
+ - recipe_search_bar
1489
+ - recipe_equipment
1490
+ - recipe_book
1491
+ - enchanting_input
1492
+ - enchanting_lapis
1493
+ - furnace_fuel
1494
+ - furnace_ingredient
1495
+ - furnace_output
1496
+ - horse_equip
1497
+ - hotbar
1498
+ - inventory
1499
+ - shulker
1500
+ - trade_ingredient1
1501
+ - trade_ingredient2
1502
+ - trade_result
1503
+ - offhand
1504
+ - compcreate_input
1505
+ - compcreate_output
1506
+ - elemconstruct_output
1507
+ - matreduce_input
1508
+ - matreduce_output
1509
+ - labtable_input
1510
+ - loom_input
1511
+ - loom_dye
1512
+ - loom_material
1513
+ - loom_result
1514
+ - blast_furnace_ingredient
1515
+ - smoker_ingredient
1516
+ - trade2_ingredient1
1517
+ - trade2_ingredient2
1518
+ - trade2_result
1519
+ - grindstone_input
1520
+ - grindstone_additional
1521
+ - grindstone_result
1522
+ - stonecutter_input
1523
+ - stonecutter_result
1524
+ - cartography_input
1525
+ - cartography_additional
1526
+ - cartography_result
1527
+ - barrel
1528
+ - cursor
1529
+ - creative_output
1530
+ - smithing_table_template
1531
+ - crafter
1532
+
1533
+ SoundType: varint =>
1534
+ - ItemUseOn
1535
+ - Hit
1536
+ - Step
1537
+ - Fly
1538
+ - Jump
1539
+ - Break
1540
+ - Place
1541
+ - HeavyStep
1542
+ - Gallop
1543
+ - Fall
1544
+ - Ambient
1545
+ - AmbientBaby
1546
+ - AmbientInWater
1547
+ - Breathe
1548
+ - Death
1549
+ - DeathInWater
1550
+ - DeathToZombie
1551
+ - Hurt
1552
+ - HurtInWater
1553
+ - Mad
1554
+ - Boost
1555
+ - Bow
1556
+ - SquishBig
1557
+ - SquishSmall
1558
+ - FallBig
1559
+ - FallSmall
1560
+ - Splash
1561
+ - Fizz
1562
+ - Flap
1563
+ - Swim
1564
+ - Drink
1565
+ - Eat
1566
+ - Takeoff
1567
+ - Shake
1568
+ - Plop
1569
+ - Land
1570
+ - Saddle
1571
+ - Armor
1572
+ - MobArmorStandPlace
1573
+ - AddChest
1574
+ - Throw
1575
+ - Attack
1576
+ - AttackNoDamage
1577
+ - AttackStrong
1578
+ - Warn
1579
+ - Shear
1580
+ - Milk
1581
+ - Thunder
1582
+ - Explode
1583
+ - Fire
1584
+ - Ignite
1585
+ - Fuse
1586
+ - Stare
1587
+ - Spawn
1588
+ - Shoot
1589
+ - BreakBlock
1590
+ - Launch
1591
+ - Blast
1592
+ - LargeBlast
1593
+ - Twinkle
1594
+ - Remedy
1595
+ - Infect
1596
+ - LevelUp
1597
+ - BowHit
1598
+ - BulletHit
1599
+ - ExtinguishFire
1600
+ - ItemFizz
1601
+ - ChestOpen
1602
+ - ChestClosed
1603
+ - ShulkerBoxOpen
1604
+ - ShulkerBoxClosed
1605
+ - EnderChestOpen
1606
+ - EnderChestClosed
1607
+ - PowerOn
1608
+ - PowerOff
1609
+ - Attach
1610
+ - Detach
1611
+ - Deny
1612
+ - Tripod
1613
+ - Pop
1614
+ - DropSlot
1615
+ - Note
1616
+ - Thorns
1617
+ - PistonIn
1618
+ - PistonOut
1619
+ - Portal
1620
+ - Water
1621
+ - LavaPop
1622
+ - Lava
1623
+ - Burp
1624
+ - BucketFillWater
1625
+ - BucketFillLava
1626
+ - BucketEmptyWater
1627
+ - BucketEmptyLava
1628
+ - ArmorEquipChain
1629
+ - ArmorEquipDiamond
1630
+ - ArmorEquipGeneric
1631
+ - ArmorEquipGold
1632
+ - ArmorEquipIron
1633
+ - ArmorEquipLeather
1634
+ - ArmorEquipElytra
1635
+ - Record13
1636
+ - RecordCat
1637
+ - RecordBlocks
1638
+ - RecordChirp
1639
+ - RecordFar
1640
+ - RecordMall
1641
+ - RecordMellohi
1642
+ - RecordStal
1643
+ - RecordStrad
1644
+ - RecordWard
1645
+ - Record11
1646
+ - RecordWait
1647
+ - StopRecord
1648
+ - Flop
1649
+ - GuardianCurse
1650
+ - MobWarning
1651
+ - MobWarningBaby
1652
+ - Teleport
1653
+ - ShulkerOpen
1654
+ - ShulkerClose
1655
+ - Haggle
1656
+ - HaggleYes
1657
+ - HaggleNo
1658
+ - HaggleIdle
1659
+ - ChorusGrow
1660
+ - ChorusDeath
1661
+ - Glass
1662
+ - PotionBrewed
1663
+ - CastSpell
1664
+ - PrepareAttackSpell
1665
+ - PrepareSummon
1666
+ - PrepareWololo
1667
+ - Fang
1668
+ - Charge
1669
+ - CameraTakePicture
1670
+ - LeashKnotPlace
1671
+ - LeashKnotBreak
1672
+ - AmbientGrowl
1673
+ - AmbientWhine
1674
+ - AmbientPant
1675
+ - AmbientPurr
1676
+ - AmbientPurreow
1677
+ - DeathMinVolume
1678
+ - DeathMidVolume
1679
+ - ImitateBlaze
1680
+ - ImitateCaveSpider
1681
+ - ImitateCreeper
1682
+ - ImitateElderGuardian
1683
+ - ImitateEnderDragon
1684
+ - ImitateEnderman
1685
+ - ImitateEndermite
1686
+ - ImitateEvocationIllager
1687
+ - ImitateGhast
1688
+ - ImitateHusk
1689
+ - ImitateIllusionIllager
1690
+ - ImitateMagmaCube
1691
+ - ImitatePolarBear
1692
+ - ImitateShulker
1693
+ - ImitateSilverfish
1694
+ - ImitateSkeleton
1695
+ - ImitateSlime
1696
+ - ImitateSpider
1697
+ - ImitateStray
1698
+ - ImitateVex
1699
+ - ImitateVindicationIllager
1700
+ - ImitateWitch
1701
+ - ImitateWither
1702
+ - ImitateWitherSkeleton
1703
+ - ImitateWolf
1704
+ - ImitateZombie
1705
+ - ImitateZombiePigman
1706
+ - ImitateZombieVillager
1707
+ - EnderEyePlaced
1708
+ - EndPortalCreated
1709
+ - AnvilUse
1710
+ - BottleDragonBreath
1711
+ - PortalTravel
1712
+ - TridentHit
1713
+ - TridentReturn
1714
+ - TridentRiptide1
1715
+ - TridentRiptide2
1716
+ - TridentRiptide3
1717
+ - TridentThrow
1718
+ - TridentThunder
1719
+ - TridentHitGround
1720
+ - Default
1721
+ - FletchingTableUse
1722
+ - ElemConstructOpen
1723
+ - IceBombHit
1724
+ - BalloonPop
1725
+ - LtReactionIceBomb
1726
+ - LtReactionBleach
1727
+ - LtReactionElephantToothpaste
1728
+ - LtReactionElephantToothpaste2
1729
+ - LtReactionGlowStick
1730
+ - LtReactionGlowStick2
1731
+ - LtReactionLuminol
1732
+ - LtReactionSalt
1733
+ - LtReactionFertilizer
1734
+ - LtReactionFireball
1735
+ - LtReactionMagnesiumSalt
1736
+ - LtReactionMiscFire
1737
+ - LtReactionFire
1738
+ - LtReactionMiscExplosion
1739
+ - LtReactionMiscMystical
1740
+ - LtReactionMiscMystical2
1741
+ - LtReactionProduct
1742
+ - SparklerUse
1743
+ - GlowStickUse
1744
+ - SparklerActive
1745
+ - ConvertToDrowned
1746
+ - BucketFillFish
1747
+ - BucketEmptyFish
1748
+ - BubbleColumnUpwards
1749
+ - BubbleColumnDownwards
1750
+ - BubblePop
1751
+ - BubbleUpInside
1752
+ - BubbleDownInside
1753
+ - HurtBaby
1754
+ - DeathBaby
1755
+ - StepBaby
1756
+ - SpawnBaby
1757
+ - Born
1758
+ - TurtleEggBreak
1759
+ - TurtleEggCrack
1760
+ - TurtleEggHatched
1761
+ - LayEgg
1762
+ - TurtleEggAttacked
1763
+ - BeaconActivate
1764
+ - BeaconAmbient
1765
+ - BeaconDeactivate
1766
+ - BeaconPower
1767
+ - ConduitActivate
1768
+ - ConduitAmbient
1769
+ - ConduitAttack
1770
+ - ConduitDeactivate
1771
+ - ConduitShort
1772
+ - Swoop
1773
+ - BambooSaplingPlace
1774
+ - PreSneeze
1775
+ - Sneeze
1776
+ - AmbientTame
1777
+ - Scared
1778
+ - ScaffoldingClimb
1779
+ - CrossbowLoadingStart
1780
+ - CrossbowLoadingMiddle
1781
+ - CrossbowLoadingEnd
1782
+ - CrossbowShoot
1783
+ - CrossbowQuickChargeStart
1784
+ - CrossbowQuickChargeMiddle
1785
+ - CrossbowQuickChargeEnd
1786
+ - AmbientAggressive
1787
+ - AmbientWorried
1788
+ - CantBreed
1789
+ - ShieldBlock
1790
+ - LecternBookPlace
1791
+ - GrindstoneUse
1792
+ - Bell
1793
+ - CampfireCrackle
1794
+ - Roar
1795
+ - Stun
1796
+ - SweetBerryBushHurt
1797
+ - SweetBerryBushPick
1798
+ - CartographyTableUse
1799
+ - StonecutterUse
1800
+ - ComposterEmpty
1801
+ - ComposterFill
1802
+ - ComposterFillLayer
1803
+ - ComposterReady
1804
+ - BarrelOpen
1805
+ - BarrelClose
1806
+ - RaidHorn
1807
+ - LoomUse
1808
+ - AmbientInRaid
1809
+ - UicartographyTableUse
1810
+ - UistonecutterUse
1811
+ - UiloomUse
1812
+ - SmokerUse
1813
+ - BlastFurnaceUse
1814
+ - SmithingTableUse
1815
+ - Screech
1816
+ - Sleep
1817
+ - FurnaceUse
1818
+ - MooshroomConvert
1819
+ - MilkSuspiciously
1820
+ - Celebrate
1821
+ - JumpPrevent
1822
+ - AmbientPollinate
1823
+ - BeehiveDrip
1824
+ - BeehiveEnter
1825
+ - BeehiveExit
1826
+ - BeehiveWork
1827
+ - BeehiveShear
1828
+ - HoneybottleDrink
1829
+ - AmbientCave
1830
+ - Retreat
1831
+ - ConvertToZombified
1832
+ - Admire
1833
+ - StepLava
1834
+ - Tempt
1835
+ - Panic
1836
+ - Angry
1837
+ - AmbientMoodWarpedForest
1838
+ - AmbientMoodSoulsandValley
1839
+ - AmbientMoodNetherWastes
1840
+ - AmbientMoodBasaltDeltas
1841
+ - AmbientMoodCrimsonForest
1842
+ - RespawnAnchorCharge
1843
+ - RespawnAnchorDeplete
1844
+ - RespawnAnchorSetSpawn
1845
+ - RespawnAnchorAmbient
1846
+ - SoulEscapeQuiet
1847
+ - SoulEscapeLoud
1848
+ - RecordPigstep
1849
+ - LinkCompassToLodestone
1850
+ - UseSmithingTable
1851
+ - EquipNetherite
1852
+ - AmbientLoopWarpedForest
1853
+ - AmbientLoopSoulsandValley
1854
+ - AmbientLoopNetherWastes
1855
+ - AmbientLoopBasaltDeltas
1856
+ - AmbientLoopCrimsonForest
1857
+ - AmbientAdditionWarpedForest
1858
+ - AmbientAdditionSoulsandValley
1859
+ - AmbientAdditionNetherWastes
1860
+ - AmbientAdditionBasaltDeltas
1861
+ - AmbientAdditionCrimsonForest
1862
+ - SculkSensorPowerOn
1863
+ - SculkSensorPowerOff
1864
+ - BucketFillPowderSnow
1865
+ - BucketEmptyPowderSnow
1866
+ - PointedDripstoneCauldronDripWater
1867
+ - PointedDripstoneCauldronDripLava
1868
+ - PointedDripstoneDripWater
1869
+ - PointedDripstoneDripLava
1870
+ - CaveVinesPickBerries
1871
+ - BigDripleafTiltDown
1872
+ - BigDripleafTiltUp
1873
+ - CopperWaxOn
1874
+ - CopperWaxOff
1875
+ - Scrape
1876
+ - PlayerHurtDrown
1877
+ - PlayerHurtOnFire
1878
+ - PlayerHurtFreeze
1879
+ - UseSpyglass
1880
+ - StopUsingSpyglass
1881
+ - AmethystBlockChime
1882
+ - AmbientScreamer
1883
+ - HurtScreamer
1884
+ - DeathScreamer
1885
+ - MilkScreamer
1886
+ - JumpToBlock
1887
+ - PreRam
1888
+ - PreRamScreamer
1889
+ - RamImpact
1890
+ - RamImpactScreamer
1891
+ - SquidInkSquirt
1892
+ - GlowSquidInkSquirt
1893
+ - ConvertToStray
1894
+ - CakeAddCandle
1895
+ - ExtinguishCandle
1896
+ - AmbientCandle
1897
+ - BlockClick
1898
+ - BlockClickFail
1899
+ - SculkCatalystBloom
1900
+ - SculkShriekerShriek
1901
+ - WardenNearbyClose
1902
+ - WardenNearbyCloser
1903
+ - WardenNearbyClosest
1904
+ - WardenSlightlyAngry
1905
+ - RecordOtherside
1906
+ - Tongue
1907
+ - CrackIronGolem
1908
+ - RepairIronGolem
1909
+ - Listening
1910
+ - Heartbeat
1911
+ - HornBreak
1912
+ - SculkPlace
1913
+ - SculkSpread
1914
+ - SculkCharge
1915
+ - SculkSensorPlace
1916
+ - SculkShriekerPlace
1917
+ - goat_call_0
1918
+ - goat_call_1
1919
+ - goat_call_2
1920
+ - goat_call_3
1921
+ - goat_call_4
1922
+ - goat_call_5
1923
+ - goat_call_6
1924
+ - goat_call_7
1925
+ - goat_call_8
1926
+ - goat_call_9
1927
+ - goat_harmony_0
1928
+ - goat_harmony_1
1929
+ - goat_harmony_2
1930
+ - goat_harmony_3
1931
+ - goat_harmony_4
1932
+ - goat_harmony_5
1933
+ - goat_harmony_6
1934
+ - goat_harmony_7
1935
+ - goat_harmony_8
1936
+ - goat_harmony_9
1937
+ - goat_melody_0
1938
+ - goat_melody_1
1939
+ - goat_melody_2
1940
+ - goat_melody_3
1941
+ - goat_melody_4
1942
+ - goat_melody_5
1943
+ - goat_melody_6
1944
+ - goat_melody_7
1945
+ - goat_melody_8
1946
+ - goat_melody_9
1947
+ - goat_bass_0
1948
+ - goat_bass_1
1949
+ - goat_bass_2
1950
+ - goat_bass_3
1951
+ - goat_bass_4
1952
+ - goat_bass_5
1953
+ - goat_bass_6
1954
+ - goat_bass_7
1955
+ - goat_bass_8
1956
+ - goat_bass_9
1957
+ - _
1958
+ - _
1959
+ - _
1960
+ - ImitateWarden
1961
+ - ListeningAngry
1962
+ - ItemGiven
1963
+ - ItemTaken
1964
+ - Disappeared
1965
+ - Reappeared
1966
+ - DrinkMilk
1967
+ - FrogspawnHatched
1968
+ - LaySpawn
1969
+ - FrogspawnBreak
1970
+ - SonicBoom
1971
+ - SonicCharge
1972
+ - SoundeventItemThrown
1973
+ - Record5
1974
+ - ConvertToFrog
1975
+ - RecordPlaying
1976
+ - EnchantingTableUse
1977
+ - StepSand
1978
+ - DashReady
1979
+ - BundleDropContents
1980
+ - BundleInsert
1981
+ - BundleRemoveOne
1982
+ - PressurePlateClickOff
1983
+ - PressurePlateClickOn
1984
+ - ButtonClickOff
1985
+ - ButtonClickOn
1986
+ - DoorOpen
1987
+ - DoorClose
1988
+ - TrapdoorOpen
1989
+ - TrapdoorClose
1990
+ - FenceGateOpen
1991
+ - FenceGateClose
1992
+ - Insert
1993
+ - Pickup
1994
+ - InsertEnchanted
1995
+ - PickupEnchanted
1996
+ - Brush
1997
+ - BrushCompleted
1998
+ - ShatterDecoratedPot
1999
+ - BreakDecoratedPot
2000
+ - SnifferEggCrack
2001
+ - SnifferEggHatched
2002
+ - WaxedSignInteractFail
2003
+ - RecordRelic
2004
+ - Bump
2005
+ - PumpkinCarve
2006
+ - ConvertHuskToZombie
2007
+ - PigDeath
2008
+ - HoglinZombified
2009
+ - AmbientUnderwaterEnter
2010
+ - AmbientUnderwaterExit
2011
+ - bottle_fill
2012
+ - bottle_empty
2013
+ - crafter_craft
2014
+ - crafter_fail
2015
+ - block_decorated_pot_insert
2016
+ - block_decorated_pot_insert_fail
2017
+ - crafter_disable_slot
2018
+ - block_copper_bulb_turn_on
2019
+ - block_copper_bulb_turn_off
2020
+
2021
+ # TODO: remove?
2022
+ LegacyEntityType: li32 =>
2023
+ 10: chicken
2024
+ 11: cow
2025
+ 12: pig
2026
+ 13: sheep
2027
+ 14: wolf
2028
+ 15: villager
2029
+ 16: mooshroom
2030
+ 17: squid
2031
+ 18: rabbit
2032
+ 19: bat
2033
+ 20: iron_golem
2034
+ 21: snow_golem
2035
+ 22: ocelot
2036
+ 23: horse
2037
+ 24: donkey
2038
+ 25: mule
2039
+ 26: skeleton_horse
2040
+ 27: zombie_horse
2041
+ 28: polar_bear
2042
+ 29: llama
2043
+ 30: parrot
2044
+ 31: dolphin
2045
+ 32: zombie
2046
+ 33: creeper
2047
+ 34: skeleton
2048
+ 35: spider
2049
+ 36: zombie_pigman
2050
+ 37: slime
2051
+ 38: enderman
2052
+ 39: silverfish
2053
+ 40: cave_spider
2054
+ 41: ghast
2055
+ 42: magma_cube
2056
+ 43: blaze
2057
+ 44: zombie_villager
2058
+ 45: witch
2059
+ 46: stray
2060
+ 47: husk
2061
+ 48: wither_skeleton
2062
+ 49: guardian
2063
+ 50: elder_guardian
2064
+ 51: npc
2065
+ 52: wither
2066
+ 53: ender_dragon
2067
+ 54: shulker
2068
+ 55: endermite
2069
+ 56: agent # LEARN_TO_CODE_MASCOT
2070
+ 57: vindicator
2071
+ 58: phantom
2072
+ 61: armor_stand
2073
+ 62: tripod_camera
2074
+ 63: player
2075
+ 64: item
2076
+ 65: tnt
2077
+ 66: falling_block
2078
+ 67: moving_block
2079
+ 68: xp_bottle
2080
+ 69: xp_orb
2081
+ 70: eye_of_ender_signal
2082
+ 71: ender_crystal
2083
+ 72: fireworks_rocket
2084
+ 73: thrown_trident
2085
+ 74: turtle
2086
+ 75: cat
2087
+ 76: shulker_bullet
2088
+ 77: fishing_hook
2089
+ 78: chalkboard
2090
+ 79: dragon_fireball
2091
+ 80: arrow
2092
+ 81: snowball
2093
+ 82: egg
2094
+ 83: painting
2095
+ 84: minecart
2096
+ 85: fireball
2097
+ 86: splash_potion
2098
+ 87: ender_pearl
2099
+ 88: leash_knot
2100
+ 89: wither_skull
2101
+ 90: boat
2102
+ 91: wither_skull_dangerous
2103
+ 93: lightning_bolt
2104
+ 94: small_fireball
2105
+ 95: area_effect_cloud
2106
+ 96: hopper_minecart
2107
+ 97: tnt_minecart
2108
+ 98: chest_minecart
2109
+ 100: command_block_minecart
2110
+ 101: lingering_potion
2111
+ 102: llama_spit
2112
+ 103: evocation_fang
2113
+ 104: evocation_illager
2114
+ 105: vex
2115
+ 106: ice_bomb
2116
+ 107: balloon
2117
+ 108: pufferfish
2118
+ 109: salmon
2119
+ 110: drowned
2120
+ 111: tropicalfish
2121
+ 112: cod
2122
+ 113: panda
2123
+
2124
+ DeviceOS: li32 =>
2125
+ - Undefined
2126
+ - Android
2127
+ - IOS
2128
+ - OSX
2129
+ - FireOS
2130
+ - GearVR
2131
+ - Hololens
2132
+ - Win10
2133
+ - Win32
2134
+ - Dedicated
2135
+ - TVOS
2136
+ - Orbis
2137
+ - NintendoSwitch
2138
+ - Xbox
2139
+ - WindowsPhone
2140
+ - Linux
2141
+
2142
+
2143
+ AbilitySet: ["bitflags",
2144
+ {
2145
+ "type": "lu32",
2146
+ "flags": [
2147
+ "build",
2148
+ "mine",
2149
+ "doors_and_switches",
2150
+ "open_containers",
2151
+ "attack_players",
2152
+ "attack_mobs",
2153
+ "operator_commands",
2154
+ "teleport",
2155
+ "invulnerable",
2156
+ "flying",
2157
+ "may_fly",
2158
+ "instant_build",
2159
+ "lightning",
2160
+ "fly_speed",
2161
+ "walk_speed",
2162
+ "muted",
2163
+ "world_builder",
2164
+ "no_clip",
2165
+ "privileged_builder",
2166
+ "count"
2167
+ ]
2168
+ }
2169
+ ]
2170
+
2171
+ # AbilityLayer represents the abilities of a specific layer, such as the base layer or the spectator layer.
2172
+ AbilityLayers:
2173
+ # Type represents the type of the layer. This is one of the AbilityLayerType constants defined above.
2174
+ type: lu16 =>
2175
+ - cache
2176
+ - base
2177
+ - spectator
2178
+ - commands
2179
+ - editor
2180
+ # The abilities that can be toggled between
2181
+ allowed: AbilitySet
2182
+ # The abilities that are currently active
2183
+ enabled: AbilitySet
2184
+ # FlySpeed is the default fly speed of the layer.
2185
+ fly_speed: lf32
2186
+ # WalkSpeed is the default walk speed of the layer.
2187
+ walk_speed: lf32
2188
+
2189
+ CameraPresets:
2190
+ # Name is the name of the preset. Each preset must have their own unique name.
2191
+ name: string
2192
+ # Parent is the name of the preset that this preset extends upon. This can be left empty.
2193
+ parent: string
2194
+ position: Vec3fopts
2195
+ rotation: Vec2fopts
2196
+ ## TODO: make this an enum afer adding proper optional support inside pdefyaml
2197
+ audio_listener?: u8
2198
+ player_effects?: bool
2199
+
2200
+ DisconnectFailReason: zigzag32 =>
2201
+ - unknown
2202
+ - cant_connect_no_internet
2203
+ - no_permissions
2204
+ - unrecoverable_error
2205
+ - third_party_blocked
2206
+ - third_party_no_internet
2207
+ - third_party_bad_ip
2208
+ - third_party_no_server_or_server_locked
2209
+ - version_mismatch
2210
+ - skin_issue
2211
+ - invite_session_not_found
2212
+ - edu_level_settings_missing
2213
+ - local_server_not_found
2214
+ - legacy_disconnect
2215
+ - user_leave_game_attempted
2216
+ - platform_locked_skins_error
2217
+ - realms_world_unassigned
2218
+ - realms_server_cant_connect
2219
+ - realms_server_hidden
2220
+ - realms_server_disabled_beta
2221
+ - realms_server_disabled
2222
+ - cross_platform_disallowed
2223
+ - cant_connect
2224
+ - session_not_found
2225
+ - client_settings_incompatible_with_server
2226
+ - server_full
2227
+ - invalid_platform_skin
2228
+ - edition_version_mismatch
2229
+ - edition_mismatch
2230
+ - level_newer_than_exe_version
2231
+ - no_fail_occurred
2232
+ - banned_skin
2233
+ - timeout
2234
+ - server_not_found
2235
+ - outdated_server
2236
+ - outdated_client
2237
+ - no_premium_platform
2238
+ - multiplayer_disabled
2239
+ - no_wifi
2240
+ - world_corruption
2241
+ - no_reason
2242
+ - disconnected
2243
+ - invalid_player
2244
+ - logged_in_other_location
2245
+ - server_id_conflict
2246
+ - not_allowed
2247
+ - not_authenticated
2248
+ - invalid_tenant
2249
+ - unknown_packet
2250
+ - unexpected_packet
2251
+ - invalid_command_request_packet
2252
+ - host_suspended
2253
+ - login_packet_no_request
2254
+ - login_packet_no_cert
2255
+ - missing_client
2256
+ - kicked
2257
+ - kicked_for_exploit
2258
+ - kicked_for_idle
2259
+ - resource_pack_problem
2260
+ - incompatible_pack
2261
+ - out_of_storage
2262
+ - invalid_level
2263
+ - disconnect_packet_deprecated
2264
+ - block_mismatch
2265
+ - invalid_heights
2266
+ - invalid_widths
2267
+ - connection_lost
2268
+ - zombie_connection
2269
+ - shutdown
2270
+ - reason_not_set
2271
+ - loading_state_timeout
2272
+ - resource_pack_loading_failed
2273
+ - searching_for_session_loading_screen_failed
2274
+ - conn_protocol_version
2275
+ - subsystem_status_error
2276
+ - empty_auth_from_discovery
2277
+ - empty_url_from_discovery
2278
+ - expired_auth_from_discovery
2279
+ - unknown_signal_service_sign_in_failure
2280
+ - xbl_join_lobby_failure
2281
+ - unspecified_client_instance_disconnection
2282
+ - conn_session_not_found
2283
+ - conn_create_peer_connection
2284
+ - conn_ice
2285
+ - conn_connect_request
2286
+ - conn_connect_response
2287
+ - conn_negotiation_timeout
2288
+ - conn_inactivity_timeout
2289
+ - stale_connection_being_replaced
2290
+ - realms_session_not_found
2291
+ - bad_packet