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