minecraft-data 3.36.0 → 3.37.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 (73) hide show
  1. package/data.js +48 -0
  2. package/doc/history.md +8 -0
  3. package/index.d.ts +1 -1
  4. package/minecraft-data/README.md +1 -1
  5. package/minecraft-data/data/bedrock/1.16.201/proto.yml +38 -11
  6. package/minecraft-data/data/bedrock/1.16.201/protocol.json +60 -6
  7. package/minecraft-data/data/bedrock/1.16.210/proto.yml +38 -11
  8. package/minecraft-data/data/bedrock/1.16.210/protocol.json +60 -6
  9. package/minecraft-data/data/bedrock/1.16.220/proto.yml +23 -11
  10. package/minecraft-data/data/bedrock/1.16.220/protocol.json +38 -5
  11. package/minecraft-data/data/bedrock/1.17.0/proto.yml +23 -11
  12. package/minecraft-data/data/bedrock/1.17.0/protocol.json +38 -5
  13. package/minecraft-data/data/bedrock/1.17.10/proto.yml +25 -12
  14. package/minecraft-data/data/bedrock/1.17.10/protocol.json +39 -6
  15. package/minecraft-data/data/bedrock/1.17.30/proto.yml +28 -12
  16. package/minecraft-data/data/bedrock/1.17.30/protocol.json +39 -6
  17. package/minecraft-data/data/bedrock/1.17.40/proto.yml +28 -12
  18. package/minecraft-data/data/bedrock/1.17.40/protocol.json +39 -6
  19. package/minecraft-data/data/bedrock/1.18.0/proto.yml +28 -12
  20. package/minecraft-data/data/bedrock/1.18.0/protocol.json +39 -6
  21. package/minecraft-data/data/bedrock/1.18.11/proto.yml +29 -12
  22. package/minecraft-data/data/bedrock/1.18.11/protocol.json +39 -6
  23. package/minecraft-data/data/bedrock/1.18.30/proto.yml +29 -13
  24. package/minecraft-data/data/bedrock/1.18.30/protocol.json +39 -6
  25. package/minecraft-data/data/bedrock/1.19.1/proto.yml +30 -13
  26. package/minecraft-data/data/bedrock/1.19.1/protocol.json +39 -6
  27. package/minecraft-data/data/bedrock/1.19.10/proto.yml +30 -13
  28. package/minecraft-data/data/bedrock/1.19.10/protocol.json +39 -6
  29. package/minecraft-data/data/bedrock/1.19.20/proto.yml +30 -13
  30. package/minecraft-data/data/bedrock/1.19.20/protocol.json +39 -6
  31. package/minecraft-data/data/bedrock/1.19.21/proto.yml +30 -13
  32. package/minecraft-data/data/bedrock/1.19.21/protocol.json +39 -6
  33. package/minecraft-data/data/bedrock/1.19.30/proto.yml +32 -13
  34. package/minecraft-data/data/bedrock/1.19.30/protocol.json +39 -6
  35. package/minecraft-data/data/bedrock/1.19.40/proto.yml +32 -13
  36. package/minecraft-data/data/bedrock/1.19.40/protocol.json +39 -6
  37. package/minecraft-data/data/bedrock/1.19.50/proto.yml +32 -13
  38. package/minecraft-data/data/bedrock/1.19.50/protocol.json +39 -6
  39. package/minecraft-data/data/bedrock/1.19.60/proto.yml +32 -13
  40. package/minecraft-data/data/bedrock/1.19.60/protocol.json +39 -6
  41. package/minecraft-data/data/bedrock/1.19.62/proto.yml +32 -13
  42. package/minecraft-data/data/bedrock/1.19.62/protocol.json +39 -6
  43. package/minecraft-data/data/bedrock/1.19.70/proto.yml +32 -13
  44. package/minecraft-data/data/bedrock/1.19.70/protocol.json +39 -6
  45. package/minecraft-data/data/bedrock/1.19.80/proto.yml +32 -13
  46. package/minecraft-data/data/bedrock/1.19.80/protocol.json +39 -6
  47. package/minecraft-data/data/bedrock/1.20.0/protocol.json +40 -7
  48. package/minecraft-data/data/bedrock/latest/proto.yml +33 -14
  49. package/minecraft-data/data/dataPaths.json +49 -0
  50. package/minecraft-data/data/pc/1.20/biomes.json +642 -0
  51. package/minecraft-data/data/pc/1.20/blockCollisionShapes.json +122031 -0
  52. package/minecraft-data/data/pc/1.20/blockLoot.json +13199 -0
  53. package/minecraft-data/data/pc/1.20/blocks.json +34625 -0
  54. package/minecraft-data/data/pc/1.20/effects.json +200 -0
  55. package/minecraft-data/data/pc/1.20/enchantments.json +875 -0
  56. package/minecraft-data/data/pc/1.20/entities.json +1242 -0
  57. package/minecraft-data/data/pc/1.20/entityLoot.json +1234 -0
  58. package/minecraft-data/data/pc/1.20/foods.json +402 -0
  59. package/minecraft-data/data/pc/1.20/instruments.json +94 -0
  60. package/minecraft-data/data/pc/1.20/items.json +8249 -0
  61. package/minecraft-data/data/pc/1.20/language.json +6219 -0
  62. package/minecraft-data/data/pc/1.20/materials.json +154 -0
  63. package/minecraft-data/data/pc/1.20/particles.json +382 -0
  64. package/minecraft-data/data/pc/1.20/protocol.json +6744 -0
  65. package/minecraft-data/data/pc/1.20/recipes.json +40838 -0
  66. package/minecraft-data/data/pc/1.20/tints.json +447 -0
  67. package/minecraft-data/data/pc/1.20/version.json +5 -0
  68. package/minecraft-data/data/pc/1.20.1/version.json +5 -0
  69. package/minecraft-data/data/pc/common/protocolVersions.json +8 -0
  70. package/minecraft-data/data/pc/common/versions.json +3 -1
  71. package/minecraft-data/doc/history.md +7 -1
  72. package/minecraft-data/schemas/blocks_schema.json +1 -1
  73. package/package.json +1 -1
package/data.js CHANGED
@@ -1201,6 +1201,54 @@ module.exports =
1201
1201
  get loginPacket () { return require("./minecraft-data/data/pc/1.19.2/loginPacket.json") },
1202
1202
  get tints () { return require("./minecraft-data/data/pc/1.19.4/tints.json") },
1203
1203
  get mapIcons () { return require("./minecraft-data/data/pc/1.16/mapIcons.json") }
1204
+ },
1205
+ '1.20': {
1206
+ get attributes () { return require("./minecraft-data/data/pc/1.17/attributes.json") },
1207
+ get blocks () { return require("./minecraft-data/data/pc/1.20/blocks.json") },
1208
+ get blockCollisionShapes () { return require("./minecraft-data/data/pc/1.20/blockCollisionShapes.json") },
1209
+ get biomes () { return require("./minecraft-data/data/pc/1.20/biomes.json") },
1210
+ get effects () { return require("./minecraft-data/data/pc/1.20/effects.json") },
1211
+ get items () { return require("./minecraft-data/data/pc/1.20/items.json") },
1212
+ get enchantments () { return require("./minecraft-data/data/pc/1.20/enchantments.json") },
1213
+ get recipes () { return require("./minecraft-data/data/pc/1.20/recipes.json") },
1214
+ get instruments () { return require("./minecraft-data/data/pc/1.20/instruments.json") },
1215
+ get materials () { return require("./minecraft-data/data/pc/1.20/materials.json") },
1216
+ get language () { return require("./minecraft-data/data/pc/1.20/language.json") },
1217
+ get entities () { return require("./minecraft-data/data/pc/1.20/entities.json") },
1218
+ get protocol () { return require("./minecraft-data/data/pc/1.20/protocol.json") },
1219
+ get windows () { return require("./minecraft-data/data/pc/1.16.1/windows.json") },
1220
+ get version () { return require("./minecraft-data/data/pc/1.20/version.json") },
1221
+ get foods () { return require("./minecraft-data/data/pc/1.20/foods.json") },
1222
+ get particles () { return require("./minecraft-data/data/pc/1.20/particles.json") },
1223
+ get blockLoot () { return require("./minecraft-data/data/pc/1.20/blockLoot.json") },
1224
+ get entityLoot () { return require("./minecraft-data/data/pc/1.20/entityLoot.json") },
1225
+ get loginPacket () { return require("./minecraft-data/data/pc/1.19.2/loginPacket.json") },
1226
+ get tints () { return require("./minecraft-data/data/pc/1.20/tints.json") },
1227
+ get mapIcons () { return require("./minecraft-data/data/pc/1.16/mapIcons.json") }
1228
+ },
1229
+ '1.20.1': {
1230
+ get attributes () { return require("./minecraft-data/data/pc/1.17/attributes.json") },
1231
+ get blocks () { return require("./minecraft-data/data/pc/1.20/blocks.json") },
1232
+ get blockCollisionShapes () { return require("./minecraft-data/data/pc/1.20/blockCollisionShapes.json") },
1233
+ get biomes () { return require("./minecraft-data/data/pc/1.20/biomes.json") },
1234
+ get effects () { return require("./minecraft-data/data/pc/1.20/effects.json") },
1235
+ get items () { return require("./minecraft-data/data/pc/1.20/items.json") },
1236
+ get enchantments () { return require("./minecraft-data/data/pc/1.20/enchantments.json") },
1237
+ get recipes () { return require("./minecraft-data/data/pc/1.20/recipes.json") },
1238
+ get instruments () { return require("./minecraft-data/data/pc/1.20/instruments.json") },
1239
+ get materials () { return require("./minecraft-data/data/pc/1.20/materials.json") },
1240
+ get language () { return require("./minecraft-data/data/pc/1.20/language.json") },
1241
+ get entities () { return require("./minecraft-data/data/pc/1.20/entities.json") },
1242
+ get protocol () { return require("./minecraft-data/data/pc/1.20/protocol.json") },
1243
+ get windows () { return require("./minecraft-data/data/pc/1.16.1/windows.json") },
1244
+ get version () { return require("./minecraft-data/data/pc/1.20.1/version.json") },
1245
+ get foods () { return require("./minecraft-data/data/pc/1.20/foods.json") },
1246
+ get particles () { return require("./minecraft-data/data/pc/1.20/particles.json") },
1247
+ get blockLoot () { return require("./minecraft-data/data/pc/1.20/blockLoot.json") },
1248
+ get entityLoot () { return require("./minecraft-data/data/pc/1.20/entityLoot.json") },
1249
+ get loginPacket () { return require("./minecraft-data/data/pc/1.19.2/loginPacket.json") },
1250
+ get tints () { return require("./minecraft-data/data/pc/1.20/tints.json") },
1251
+ get mapIcons () { return require("./minecraft-data/data/pc/1.16/mapIcons.json") }
1204
1252
  }
1205
1253
  },
1206
1254
  'bedrock': {
package/doc/history.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # History
2
2
 
3
+ ## 3.37.0
4
+
5
+ * update `minecraft-data`
6
+
7
+ ## 3.36.1
8
+
9
+ * update `minecraft-data`
10
+
3
11
  ## 3.36.0
4
12
 
5
13
  * update `minecraft-data`
package/index.d.ts CHANGED
@@ -211,7 +211,7 @@ declare namespace MinecraftData {
211
211
  /**
212
212
  * The type of the property
213
213
  */
214
- type: "enum" | "bool" | "int";
214
+ type: "enum" | "bool" | "int" | "direction";
215
215
  /**
216
216
  * The possible values of the property
217
217
  */
@@ -9,7 +9,7 @@ Language independent module providing minecraft data for minecraft clients, serv
9
9
 
10
10
  Supports
11
11
  * Minecraft PC version 0.30c (classic), 1.7.10, 1.8.8, 1.9 (15w40b, 1.9, 1.9.1-pre2, 1.9.2, 1.9.4),
12
- 1.10 (16w20a, 1.10-pre1, 1.10, 1.10.1, 1.10.2), 1.11 (16w35a, 1.11, 1.11.2), 1.12 (17w15a, 17w18b, 1.12-pre4, 1.12, 1.12.1, 1.12.2), 1.13 (17w50a, 1.13, 1.13.1, 1.13.2-pre1, 1.13.2-pre2, 1.13.2), 1.14 (1.14, 1.14.1, 1.14.3, 1.14.4), 1.15 (1.15, 1.15.1, 1.15.2), 1.16 (20w13b, 20w14a, 1.16-rc1, 1.16, 1.16.1, 1.16.2, 1.16.3, 1.16.4, 1.16.5), 1.17, 1.17.1, 1.18 (1.18, 1.18.1, 1.18.2), 1.19 (1.19, 1.19.2, 1.19.3, 1.19.4)
12
+ 1.10 (16w20a, 1.10-pre1, 1.10, 1.10.1, 1.10.2), 1.11 (16w35a, 1.11, 1.11.2), 1.12 (17w15a, 17w18b, 1.12-pre4, 1.12, 1.12.1, 1.12.2), 1.13 (17w50a, 1.13, 1.13.1, 1.13.2-pre1, 1.13.2-pre2, 1.13.2), 1.14 (1.14, 1.14.1, 1.14.3, 1.14.4), 1.15 (1.15, 1.15.1, 1.15.2), 1.16 (20w13b, 20w14a, 1.16-rc1, 1.16, 1.16.1, 1.16.2, 1.16.3, 1.16.4, 1.16.5), 1.17, 1.17.1, 1.18 (1.18, 1.18.1, 1.18.2), 1.19 (1.19, 1.19.2, 1.19.3, 1.19.4), 1.20 (1.20, 1.20.1)
13
13
  * Minecraft bedrock version 0.14, 0.15, 1.0, 1.16.201, 1.16.210, 1.16.220, 1.17.0, 1.17.10, 1.17.30, 1.17.40, 1.18.0, 1.18.11, 1.18.30, 1.19.1, 1.19.10, 1.19.20, 1.19.21, 1.19.30, 1.19.40, 1.19.50, 1.19.60, 1.19.62, 1.19.63, 1.19.70, 1.19.80, 1.20.0
14
14
 
15
15
 
@@ -707,7 +707,10 @@ packet_mob_effect:
707
707
  !id: 0x1c
708
708
  !bound: client
709
709
  runtime_entity_id: varint
710
- event_id: u8
710
+ event_id: u8 =>
711
+ 1: add
712
+ 2: update
713
+ 3: remove
711
714
  effect_id: zigzag32
712
715
  amplifier: zigzag32
713
716
  particles: bool
@@ -753,6 +756,7 @@ packet_interact:
753
756
  action_id: u8 =>
754
757
  3: leave_vehicle
755
758
  4: mouse_over_entity
759
+ 5: npc_open
756
760
  6: open_inventory
757
761
  # TargetEntityRuntimeID is the runtime ID of the entity that the player interacted with. This is empty
758
762
  # for the InteractActionOpenInventory action type.
@@ -1162,7 +1166,11 @@ packet_player_list:
1162
1166
  packet_simple_event:
1163
1167
  !id: 0x40
1164
1168
  !bound: client
1165
- event_type: lu16
1169
+ event_type: lu16 =>
1170
+ 0: uninitialized_subtype
1171
+ 1: enable_commands
1172
+ 2: disable_commands
1173
+ 3: unlock_world_template_settings
1166
1174
 
1167
1175
  # Event is sent by the server to send an event with additional data. It is typically sent to the client for
1168
1176
  # telemetry reasons, much like the SimpleEvent packet.
@@ -1601,9 +1609,14 @@ packet_show_store_offer:
1601
1609
  unknown0: string
1602
1610
  unknown1: bool
1603
1611
 
1612
+ # PurchaseReceipt is sent by the client to the server to notify the server it purchased an item from the
1613
+ # Marketplace store that was offered by the server. The packet is only used for partnered servers.
1604
1614
  packet_purchase_receipt:
1605
1615
  !id: 0x5c
1606
1616
  !bound: server
1617
+ # Receipts is a list of receipts, or proofs of purchases, for the offers that have been purchased by the
1618
+ # player.
1619
+ receipts: string[]varint
1607
1620
 
1608
1621
  packet_player_skin:
1609
1622
  !id: 0x5d
@@ -1614,9 +1627,18 @@ packet_player_skin:
1614
1627
  old_skin_name: string
1615
1628
  is_verified: bool
1616
1629
 
1630
+ # SubClientLogin is sent when a sub-client joins the server while another client is already connected to it.
1631
+ # The packet is sent as a result of split-screen game play, and allows up to four players to play using the
1632
+ # same network connection. After an initial Login packet from the 'main' client, each sub-client that
1633
+ # connects sends a SubClientLogin to request their own login.
1617
1634
  packet_sub_client_login:
1618
1635
  !id: 0x5e
1619
- !bound: client
1636
+ !bound: server
1637
+ # ConnectionRequest is a string containing information about the player and JWTs that may be used to
1638
+ # verify if the player is connected to XBOX Live. The connection request also contains the necessary
1639
+ # client public key to initiate encryption.
1640
+ # The ConnectionRequest in this packet is identical to the one found in the Login packet.
1641
+ tokens: '["encapsulated", { "lengthType": "varint", "type": "LoginTokens" }]'
1620
1642
 
1621
1643
  packet_initiate_web_socket_connection:
1622
1644
  !id: 0x5f
@@ -1628,9 +1650,11 @@ packet_set_last_hurt_by:
1628
1650
  !bound: client
1629
1651
  unknown: varint
1630
1652
 
1653
+ # BookEdit is sent by the client when it edits a book. It is sent each time a modification was made and the
1654
+ # player stops its typing 'session', rather than simply after closing the book.
1631
1655
  packet_book_edit:
1632
1656
  !id: 0x61
1633
- !bound: client
1657
+ !bound: server
1634
1658
  type: u8 =>
1635
1659
  0: replace_page
1636
1660
  1: add_page
@@ -1701,7 +1725,7 @@ packet_show_profile:
1701
1725
  # in the settings UI.
1702
1726
  packet_set_default_game_type:
1703
1727
  !id: 0x69
1704
- !bound: client
1728
+ !bound: server
1705
1729
  # GameType is the new game type that is set. When sent by the client, this is the requested new default
1706
1730
  # game type.
1707
1731
  gamemode: GameMode
@@ -1736,6 +1760,7 @@ packet_lab_table:
1736
1760
  action_type: u8 =>
1737
1761
  0: combine
1738
1762
  1: react
1763
+ 2: reset
1739
1764
  # Position is the position at which the lab table used was located.
1740
1765
  position: vec3i
1741
1766
  # ReactionType is the type of the reaction that took place as a result of the items put into the lab
@@ -1889,7 +1914,7 @@ packet_level_event_generic:
1889
1914
  # or if the book should be removed from it.
1890
1915
  packet_lectern_update:
1891
1916
  !id: 0x7d
1892
- !bound: client
1917
+ !bound: server
1893
1918
  # Page is the page number in the book that was opened by the player on the lectern.
1894
1919
  page: u8
1895
1920
  # PageCount is the number of pages that the book opened in the lectern has.
@@ -1905,7 +1930,9 @@ packet_video_stream_connect:
1905
1930
  !bound: client
1906
1931
  server_uri: string
1907
1932
  frame_send_frequency: lf32
1908
- action: u8
1933
+ action: u8 =>
1934
+ 1: none
1935
+ 2: close
1909
1936
  resolution_x: li32
1910
1937
  resolution_y: li32
1911
1938
 
@@ -1945,7 +1972,7 @@ packet_map_create_locked_copy:
1945
1972
 
1946
1973
  packet_structure_template_data_export_request:
1947
1974
  !id: 0x84
1948
- !bound: client
1975
+ !bound: server
1949
1976
 
1950
1977
  packet_structure_template_data_export_response:
1951
1978
  !id: 0x85
@@ -1960,7 +1987,7 @@ packet_update_block_properties:
1960
1987
  # what blobs it needs and which blobs it already has, in an ACK type system.
1961
1988
  packet_client_cache_blob_status:
1962
1989
  !id: 0x87
1963
- !bound: client
1990
+ !bound: server
1964
1991
  # The number of MISSes in this packet
1965
1992
  misses: varint
1966
1993
  # The number of HITs in this packet
@@ -2224,7 +2251,7 @@ ArmorDamageType: [ "bitflags",
2224
2251
  # identical to the SetPlayerGameType packet.
2225
2252
  packet_update_player_game_type:
2226
2253
  !id: 0x97
2227
- !bound: server
2254
+ !bound: client
2228
2255
  # GameType is the new game type of the player. It is one of the constants that can be found in
2229
2256
  # set_player_game_type.go. Some of these game types require additional flags to be set in an
2230
2257
  # AdventureSettings packet for the game mode to obtain its full functionality.
@@ -2399,7 +2426,7 @@ packet_item_component:
2399
2426
  # safer version of the text.
2400
2427
  packet_filter_text_packet:
2401
2428
  !id: 0xa3
2402
- !bound: client
2429
+ !bound: both
2403
2430
  # Text is either the text from the client or the safer version of the text sent by the server.
2404
2431
  text: string
2405
2432
  # FromServer indicates if the packet was sent by the server or not.
@@ -4231,7 +4231,17 @@
4231
4231
  },
4232
4232
  {
4233
4233
  "name": "event_id",
4234
- "type": "u8"
4234
+ "type": [
4235
+ "mapper",
4236
+ {
4237
+ "type": "u8",
4238
+ "mappings": {
4239
+ "1": "add",
4240
+ "2": "update",
4241
+ "3": "remove"
4242
+ }
4243
+ }
4244
+ ]
4235
4245
  },
4236
4246
  {
4237
4247
  "name": "effect_id",
@@ -4339,6 +4349,7 @@
4339
4349
  "mappings": {
4340
4350
  "3": "leave_vehicle",
4341
4351
  "4": "mouse_over_entity",
4352
+ "5": "npc_open",
4342
4353
  "6": "open_inventory"
4343
4354
  }
4344
4355
  }
@@ -4992,7 +5003,18 @@
4992
5003
  [
4993
5004
  {
4994
5005
  "name": "event_type",
4995
- "type": "lu16"
5006
+ "type": [
5007
+ "mapper",
5008
+ {
5009
+ "type": "lu16",
5010
+ "mappings": {
5011
+ "0": "uninitialized_subtype",
5012
+ "1": "enable_commands",
5013
+ "2": "disable_commands",
5014
+ "3": "unlock_world_template_settings"
5015
+ }
5016
+ }
5017
+ ]
4996
5018
  }
4997
5019
  ]
4998
5020
  ],
@@ -5889,7 +5911,18 @@
5889
5911
  ],
5890
5912
  "packet_purchase_receipt": [
5891
5913
  "container",
5892
- []
5914
+ [
5915
+ {
5916
+ "name": "receipts",
5917
+ "type": [
5918
+ "array",
5919
+ {
5920
+ "countType": "varint",
5921
+ "type": "string"
5922
+ }
5923
+ ]
5924
+ }
5925
+ ]
5893
5926
  ],
5894
5927
  "packet_player_skin": [
5895
5928
  "container",
@@ -5918,7 +5951,18 @@
5918
5951
  ],
5919
5952
  "packet_sub_client_login": [
5920
5953
  "container",
5921
- []
5954
+ [
5955
+ {
5956
+ "name": "tokens",
5957
+ "type": [
5958
+ "encapsulated",
5959
+ {
5960
+ "lengthType": "varint",
5961
+ "type": "LoginTokens"
5962
+ }
5963
+ ]
5964
+ }
5965
+ ]
5922
5966
  ],
5923
5967
  "packet_initiate_web_socket_connection": [
5924
5968
  "container",
@@ -6201,7 +6245,8 @@
6201
6245
  "type": "u8",
6202
6246
  "mappings": {
6203
6247
  "0": "combine",
6204
- "1": "react"
6248
+ "1": "react",
6249
+ "2": "reset"
6205
6250
  }
6206
6251
  }
6207
6252
  ]
@@ -6541,7 +6586,16 @@
6541
6586
  },
6542
6587
  {
6543
6588
  "name": "action",
6544
- "type": "u8"
6589
+ "type": [
6590
+ "mapper",
6591
+ {
6592
+ "type": "u8",
6593
+ "mappings": {
6594
+ "1": "none",
6595
+ "2": "close"
6596
+ }
6597
+ }
6598
+ ]
6545
6599
  },
6546
6600
  {
6547
6601
  "name": "resolution_x",
@@ -746,7 +746,10 @@ packet_mob_effect:
746
746
  !id: 0x1c
747
747
  !bound: client
748
748
  runtime_entity_id: varint64
749
- event_id: u8
749
+ event_id: u8 =>
750
+ 1: add
751
+ 2: update
752
+ 3: remove
750
753
  effect_id: zigzag32
751
754
  amplifier: zigzag32
752
755
  particles: bool
@@ -796,6 +799,7 @@ packet_interact:
796
799
  action_id: u8 =>
797
800
  3: leave_vehicle
798
801
  4: mouse_over_entity
802
+ 5: npc_open
799
803
  6: open_inventory
800
804
  # TargetEntityRuntimeID is the runtime ID of the entity that the player interacted with. This is empty
801
805
  # for the InteractActionOpenInventory action type.
@@ -1194,7 +1198,11 @@ packet_player_list:
1194
1198
  packet_simple_event:
1195
1199
  !id: 0x40
1196
1200
  !bound: client
1197
- event_type: lu16
1201
+ event_type: lu16 =>
1202
+ 0: uninitialized_subtype
1203
+ 1: enable_commands
1204
+ 2: disable_commands
1205
+ 3: unlock_world_template_settings
1198
1206
 
1199
1207
  # Event is sent by the server to send an event with additional data. It is typically sent to the client for
1200
1208
  # telemetry reasons, much like the SimpleEvent packet.
@@ -1669,9 +1677,14 @@ packet_show_store_offer:
1669
1677
  unknown0: string
1670
1678
  unknown1: bool
1671
1679
 
1680
+ # PurchaseReceipt is sent by the client to the server to notify the server it purchased an item from the
1681
+ # Marketplace store that was offered by the server. The packet is only used for partnered servers.
1672
1682
  packet_purchase_receipt:
1673
1683
  !id: 0x5c
1674
1684
  !bound: server
1685
+ # Receipts is a list of receipts, or proofs of purchases, for the offers that have been purchased by the
1686
+ # player.
1687
+ receipts: string[]varint
1675
1688
 
1676
1689
  packet_player_skin:
1677
1690
  !id: 0x5d
@@ -1682,9 +1695,18 @@ packet_player_skin:
1682
1695
  old_skin_name: string
1683
1696
  is_verified: bool
1684
1697
 
1698
+ # SubClientLogin is sent when a sub-client joins the server while another client is already connected to it.
1699
+ # The packet is sent as a result of split-screen game play, and allows up to four players to play using the
1700
+ # same network connection. After an initial Login packet from the 'main' client, each sub-client that
1701
+ # connects sends a SubClientLogin to request their own login.
1685
1702
  packet_sub_client_login:
1686
1703
  !id: 0x5e
1687
- !bound: client
1704
+ !bound: server
1705
+ # ConnectionRequest is a string containing information about the player and JWTs that may be used to
1706
+ # verify if the player is connected to XBOX Live. The connection request also contains the necessary
1707
+ # client public key to initiate encryption.
1708
+ # The ConnectionRequest in this packet is identical to the one found in the Login packet.
1709
+ tokens: '["encapsulated", { "lengthType": "varint", "type": "LoginTokens" }]'
1688
1710
 
1689
1711
  packet_initiate_web_socket_connection:
1690
1712
  !id: 0x5f
@@ -1696,9 +1718,11 @@ packet_set_last_hurt_by:
1696
1718
  !bound: client
1697
1719
  unknown: varint
1698
1720
 
1721
+ # BookEdit is sent by the client when it edits a book. It is sent each time a modification was made and the
1722
+ # player stops its typing 'session', rather than simply after closing the book.
1699
1723
  packet_book_edit:
1700
1724
  !id: 0x61
1701
- !bound: client
1725
+ !bound: server
1702
1726
  type: u8 =>
1703
1727
  0: replace_page
1704
1728
  1: add_page
@@ -1769,7 +1793,7 @@ packet_show_profile:
1769
1793
  # in the settings UI.
1770
1794
  packet_set_default_game_type:
1771
1795
  !id: 0x69
1772
- !bound: client
1796
+ !bound: server
1773
1797
  # GameType is the new game type that is set. When sent by the client, this is the requested new default
1774
1798
  # game type.
1775
1799
  gamemode: GameMode
@@ -1804,6 +1828,7 @@ packet_lab_table:
1804
1828
  action_type: u8 =>
1805
1829
  0: combine
1806
1830
  1: react
1831
+ 2: reset
1807
1832
  # Position is the position at which the lab table used was located.
1808
1833
  position: vec3i
1809
1834
  # ReactionType is the type of the reaction that took place as a result of the items put into the lab
@@ -1980,7 +2005,7 @@ packet_level_event_generic:
1980
2005
  # or if the book should be removed from it.
1981
2006
  packet_lectern_update:
1982
2007
  !id: 0x7d
1983
- !bound: client
2008
+ !bound: server
1984
2009
  # Page is the page number in the book that was opened by the player on the lectern.
1985
2010
  page: u8
1986
2011
  # PageCount is the number of pages that the book opened in the lectern has.
@@ -1996,7 +2021,9 @@ packet_video_stream_connect:
1996
2021
  !bound: client
1997
2022
  server_uri: string
1998
2023
  frame_send_frequency: lf32
1999
- action: u8
2024
+ action: u8 =>
2025
+ 1: none
2026
+ 2: close
2000
2027
  resolution_x: li32
2001
2028
  resolution_y: li32
2002
2029
 
@@ -2036,7 +2063,7 @@ packet_map_create_locked_copy:
2036
2063
 
2037
2064
  packet_structure_template_data_export_request:
2038
2065
  !id: 0x84
2039
- !bound: client
2066
+ !bound: server
2040
2067
 
2041
2068
  packet_structure_template_data_export_response:
2042
2069
  !id: 0x85
@@ -2051,7 +2078,7 @@ packet_update_block_properties:
2051
2078
  # what blobs it needs and which blobs it already has, in an ACK type system.
2052
2079
  packet_client_cache_blob_status:
2053
2080
  !id: 0x87
2054
- !bound: client
2081
+ !bound: server
2055
2082
  # The number of MISSes in this packet
2056
2083
  misses: varint
2057
2084
  # The number of HITs in this packet
@@ -2351,7 +2378,7 @@ ArmorDamageType: [ "bitflags",
2351
2378
  # identical to the SetPlayerGameType packet.
2352
2379
  packet_update_player_game_type:
2353
2380
  !id: 0x97
2354
- !bound: server
2381
+ !bound: client
2355
2382
  # GameType is the new game type of the player. It is one of the constants that can be found in
2356
2383
  # set_player_game_type.go. Some of these game types require additional flags to be set in an
2357
2384
  # AdventureSettings packet for the game mode to obtain its full functionality.
@@ -2531,7 +2558,7 @@ packet_item_component:
2531
2558
  # safer version of the text.
2532
2559
  packet_filter_text_packet:
2533
2560
  !id: 0xa3
2534
- !bound: client
2561
+ !bound: both
2535
2562
  # Text is either the text from the client or the safer version of the text sent by the server.
2536
2563
  text: string
2537
2564
  # FromServer indicates if the packet was sent by the server or not.
@@ -4415,7 +4415,17 @@
4415
4415
  },
4416
4416
  {
4417
4417
  "name": "event_id",
4418
- "type": "u8"
4418
+ "type": [
4419
+ "mapper",
4420
+ {
4421
+ "type": "u8",
4422
+ "mappings": {
4423
+ "1": "add",
4424
+ "2": "update",
4425
+ "3": "remove"
4426
+ }
4427
+ }
4428
+ ]
4419
4429
  },
4420
4430
  {
4421
4431
  "name": "effect_id",
@@ -4523,6 +4533,7 @@
4523
4533
  "mappings": {
4524
4534
  "3": "leave_vehicle",
4525
4535
  "4": "mouse_over_entity",
4536
+ "5": "npc_open",
4526
4537
  "6": "open_inventory"
4527
4538
  }
4528
4539
  }
@@ -5156,7 +5167,18 @@
5156
5167
  [
5157
5168
  {
5158
5169
  "name": "event_type",
5159
- "type": "lu16"
5170
+ "type": [
5171
+ "mapper",
5172
+ {
5173
+ "type": "lu16",
5174
+ "mappings": {
5175
+ "0": "uninitialized_subtype",
5176
+ "1": "enable_commands",
5177
+ "2": "disable_commands",
5178
+ "3": "unlock_world_template_settings"
5179
+ }
5180
+ }
5181
+ ]
5160
5182
  }
5161
5183
  ]
5162
5184
  ],
@@ -6100,7 +6122,18 @@
6100
6122
  ],
6101
6123
  "packet_purchase_receipt": [
6102
6124
  "container",
6103
- []
6125
+ [
6126
+ {
6127
+ "name": "receipts",
6128
+ "type": [
6129
+ "array",
6130
+ {
6131
+ "countType": "varint",
6132
+ "type": "string"
6133
+ }
6134
+ ]
6135
+ }
6136
+ ]
6104
6137
  ],
6105
6138
  "packet_player_skin": [
6106
6139
  "container",
@@ -6129,7 +6162,18 @@
6129
6162
  ],
6130
6163
  "packet_sub_client_login": [
6131
6164
  "container",
6132
- []
6165
+ [
6166
+ {
6167
+ "name": "tokens",
6168
+ "type": [
6169
+ "encapsulated",
6170
+ {
6171
+ "lengthType": "varint",
6172
+ "type": "LoginTokens"
6173
+ }
6174
+ ]
6175
+ }
6176
+ ]
6133
6177
  ],
6134
6178
  "packet_initiate_web_socket_connection": [
6135
6179
  "container",
@@ -6412,7 +6456,8 @@
6412
6456
  "type": "u8",
6413
6457
  "mappings": {
6414
6458
  "0": "combine",
6415
- "1": "react"
6459
+ "1": "react",
6460
+ "2": "reset"
6416
6461
  }
6417
6462
  }
6418
6463
  ]
@@ -6762,7 +6807,16 @@
6762
6807
  },
6763
6808
  {
6764
6809
  "name": "action",
6765
- "type": "u8"
6810
+ "type": [
6811
+ "mapper",
6812
+ {
6813
+ "type": "u8",
6814
+ "mappings": {
6815
+ "1": "none",
6816
+ "2": "close"
6817
+ }
6818
+ }
6819
+ ]
6766
6820
  },
6767
6821
  {
6768
6822
  "name": "resolution_x",