minecraft-data 3.78.0 → 3.80.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 (48) hide show
  1. package/data.js +78 -2
  2. package/doc/history.md +8 -0
  3. package/index.d.ts +3 -0
  4. package/minecraft-data/README.md +2 -2
  5. package/minecraft-data/data/bedrock/1.21.20/proto.yml +2 -2
  6. package/minecraft-data/data/bedrock/1.21.20/protocol.json +2 -2
  7. package/minecraft-data/data/bedrock/1.21.20/types.yml +1 -1
  8. package/minecraft-data/data/bedrock/1.21.30/proto.yml +2 -2
  9. package/minecraft-data/data/bedrock/1.21.30/protocol.json +1 -1
  10. package/minecraft-data/data/bedrock/1.21.42/proto.yml +4337 -0
  11. package/minecraft-data/data/bedrock/1.21.42/protocol.json +3 -3
  12. package/minecraft-data/data/bedrock/1.21.42/types.yml +2422 -0
  13. package/minecraft-data/data/bedrock/1.21.50/protocol.json +13034 -0
  14. package/minecraft-data/data/bedrock/1.21.50/version.json +6 -0
  15. package/minecraft-data/data/bedrock/common/protocolVersions.json +6 -0
  16. package/minecraft-data/data/bedrock/common/versions.json +2 -1
  17. package/minecraft-data/data/bedrock/latest/proto.yml +79 -3
  18. package/minecraft-data/data/bedrock/latest/types.yml +20 -3
  19. package/minecraft-data/data/dataPaths.json +79 -3
  20. package/minecraft-data/data/pc/1.20.5/proto.yml +5 -34
  21. package/minecraft-data/data/pc/1.20.5/protocol.json +26 -129
  22. package/minecraft-data/data/pc/1.21/version.json +6 -0
  23. package/minecraft-data/data/pc/1.21.1/attributes.json +219 -0
  24. package/minecraft-data/data/pc/1.21.1/proto.yml +3534 -0
  25. package/minecraft-data/data/pc/1.21.1/protocol.json +55 -51
  26. package/minecraft-data/data/pc/1.21.3/attributes.json +226 -0
  27. package/minecraft-data/data/pc/1.21.3/biomes.json +652 -0
  28. package/minecraft-data/data/pc/1.21.3/blockCollisionShapes.json +137701 -0
  29. package/minecraft-data/data/pc/1.21.3/blocks.json +40773 -0
  30. package/minecraft-data/data/pc/1.21.3/entities.json +4158 -0
  31. package/minecraft-data/data/pc/1.21.3/foods.json +402 -0
  32. package/minecraft-data/data/pc/1.21.3/items.json +9038 -0
  33. package/minecraft-data/data/pc/1.21.3/language.json +6974 -0
  34. package/minecraft-data/data/pc/1.21.3/materials.json +134 -0
  35. package/minecraft-data/data/pc/1.21.3/particles.json +446 -0
  36. package/minecraft-data/data/pc/1.21.3/protocol.json +9518 -0
  37. package/minecraft-data/data/pc/1.21.3/recipes.json +29693 -0
  38. package/minecraft-data/data/pc/1.21.3/sounds.json +6546 -0
  39. package/minecraft-data/data/pc/1.21.3/tints.json +465 -0
  40. package/minecraft-data/data/pc/1.21.3/version.json +6 -0
  41. package/minecraft-data/data/pc/common/features.json +5 -0
  42. package/minecraft-data/data/pc/common/protocolVersions.json +80 -0
  43. package/minecraft-data/data/pc/common/versions.json +3 -2
  44. package/minecraft-data/data/pc/latest/proto.yml +444 -603
  45. package/minecraft-data/doc/history.md +19 -0
  46. package/minecraft-data/tools/js/extractPcEntityMetadata.js +32 -10
  47. package/minecraft-data/tools/js/extractSlotComponents.js +23 -0
  48. package/package.json +1 -1
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 766,
3
+ "minecraftVersion": "1.21.50",
4
+ "majorVersion": "1.21",
5
+ "releaseType": "release"
6
+ }
@@ -1,4 +1,10 @@
1
1
  [
2
+ {
3
+ "version": 766,
4
+ "minecraftVersion": "1.21.50",
5
+ "majorVersion": "1.21",
6
+ "releaseType": "release"
7
+ },
2
8
  {
3
9
  "version": 748,
4
10
  "minecraftVersion": "1.21.42",
@@ -37,5 +37,6 @@
37
37
  "1.21.2",
38
38
  "1.21.20",
39
39
  "1.21.30",
40
- "1.21.42"
40
+ "1.21.42",
41
+ "1.21.50"
41
42
  ]
@@ -1,7 +1,7 @@
1
1
  # Created from MiNET and gophertunnel docs
2
2
  # The version below is the latest version this protocol schema was updated for.
3
3
  # The output protocol.json will be in the folder for the version
4
- !version: 1.21.42
4
+ !version: 1.21.50
5
5
 
6
6
  # Some ProtoDef aliases
7
7
  string: ["pstring",{"countType":"varint"}] # String / array types
@@ -123,6 +123,8 @@ packet_disconnect:
123
123
  default:
124
124
  # An optional message to show when disconnected.
125
125
  message: string
126
+ # FilteredMessage is a filtered version of Message with all the profanity removed. The client will use
127
+ # this over Message if this field is not empty and they have the "Filter Profanity" setting enabled.
126
128
  filtered_message: string
127
129
 
128
130
 
@@ -136,6 +138,14 @@ packet_resource_packs_info:
136
138
  has_addons: bool
137
139
  # If scripting is enabled.
138
140
  has_scripts: bool
141
+ world_template:
142
+ # WorldTemplateUUID is teh UUID of the template that has been used to generate the world. Templates can
143
+ # be downloaded from the marketplace or installed via '.mctemplate' files. If the world was not generated
144
+ # from a template, this field is empty.
145
+ uuid: uuid
146
+ # WorldTemplateVersion is the version of the world template that has been used to generate the world. If
147
+ # the world was not generated from a template, this field is empty.
148
+ version: string
139
149
  # A list of resource packs that the client needs to download before joining the server.
140
150
  # The order of these resource packs is not relevant in this packet. It is however important in the Resource Pack Stack packet.
141
151
  texture_packs: TexturePackInfos
@@ -207,6 +217,8 @@ packet_text:
207
217
  # Nintendo Switch). It is otherwise an empty string, and is used to decide which players are able to
208
218
  # chat with each other.
209
219
  platform_chat_id: string
220
+ # FilteredMessage is a filtered version of Message with all the profanity removed. The client will use
221
+ # this over Message if this field is not empty and they have the "Filter Profanity" setting enabled.
210
222
  filtered_message: string
211
223
  # For additional information and examples of all the chat types above, see here: https://imgur.com/a/KhcFscg
212
224
 
@@ -837,6 +849,8 @@ packet_level_event:
837
849
  9812: animation_vault_deactivate
838
850
  9813: animation_vault_eject_item
839
851
  9814: animation_spawn_cobweb
852
+ 9815: add_particle_smash_attack_ground_dust
853
+ 9816: add_particle_creaking_heart_trail
840
854
  0x4000: add_particle_mask
841
855
  # 0x4000 | + particle ID
842
856
  16385: add_particle_bubble # 1
@@ -2153,6 +2167,8 @@ packet_set_title:
2153
2167
  xuid: string
2154
2168
  # PlatformOnlineID is either a uint64 or an empty string.
2155
2169
  platform_online_id: string
2170
+ # FilteredMessage is a filtered version of Message with all the profanity removed. The client will use
2171
+ # this over Message if this field is not empty and they have the "Filter Profanity" setting enabled.
2156
2172
  filtered_message: string
2157
2173
 
2158
2174
  packet_add_behavior_tree:
@@ -3132,7 +3148,12 @@ packet_player_auth_input:
3132
3148
  # AnalogueMoveVector is a Vec2 that specifies the direction in which the player moved, as a combination of X/Z
3133
3149
  # values which are created using an analogue input.
3134
3150
  analogue_move_vector: vec2f
3151
+ # CameraOrientation is the vector that represents the camera's forward direction which can be used to
3152
+ # transform movement to be camera relative.
3135
3153
  camera_orientation: vec3f
3154
+ # RawMoveVector is the value of MoveVector before it is affected by input permissions, sneaking/fly
3155
+ # speeds and isn't normalised for analogue inputs.
3156
+ raw_move_vector: vec2f
3136
3157
 
3137
3158
  #TODO: update to use the new `shift` option in bitflags
3138
3159
  InputFlag: [ "bitflags", {
@@ -3191,10 +3212,18 @@ InputFlag: [ "bitflags", {
3191
3212
  "vertical_collision",
3192
3213
  "down_left",
3193
3214
  "down_right",
3215
+ "start_using_item",
3194
3216
  "camera_relative_movement_enabled",
3195
3217
  "rot_controlled_by_move_direction",
3196
3218
  "start_spin_attack",
3197
- "stop_spin_attack"
3219
+ "stop_spin_attack",
3220
+ "hotbar_only_touch",
3221
+ "jump_released_raw",
3222
+ "jump_pressed_raw",
3223
+ "jump_current_raw",
3224
+ "sneak_released_raw",
3225
+ "sneak_pressed_raw",
3226
+ "sneak_current_raw"
3198
3227
  ]
3199
3228
  }]
3200
3229
 
@@ -4093,15 +4122,19 @@ packet_camera_instruction:
4093
4122
  # player, causing it to be shifted in a certain direction.
4094
4123
  offset?: vec2f
4095
4124
  default?: bool
4125
+ # Clear can be set to true to clear all the current camera instructions.
4096
4126
  clear?: bool
4127
+ # Fade is a camera instruction that fades the screen to a specified colour.
4097
4128
  fade?:
4098
4129
  fade_in_duration: lf32
4099
4130
  wait_duration: lf32
4100
4131
  fade_out_duration: lf32
4101
4132
  color_rgb: vec3f
4133
+ # Target is a camera instruction that targets a specific entity.
4102
4134
  target?:
4103
4135
  offset?: vec3f
4104
4136
  entity_unique_id: li64
4137
+ # RemoveTarget can be set to true to remove the current aim assist target.
4105
4138
  remove_target?: bool
4106
4139
 
4107
4140
 
@@ -4238,7 +4271,7 @@ packet_serverbound_loading_screen:
4238
4271
  !bound: server
4239
4272
  # The type of the loading screen event.
4240
4273
  type: zigzag32
4241
- loading_screen_id?: varint
4274
+ loading_screen_id?: lu32
4242
4275
 
4243
4276
  # JigsawStructureData is sent by the server to let the client know all the rules for jigsaw structures.
4244
4277
  packet_jigsaw_structure_data:
@@ -4277,6 +4310,8 @@ packet_serverbound_diagnostics:
4277
4310
  packet_camera_aim_assist:
4278
4311
  !id: 0x13C
4279
4312
  !bound: server
4313
+ # Preset is the ID of the preset that has previously been defined in the CameraAimAssistPresets packet.
4314
+ preset_id: string
4280
4315
  # CameraAimAssistTargetModeAngle.
4281
4316
  view_angle: vec2f
4282
4317
  # Distance is the distance that the camera should keep from the target, if TargetMode is set to
@@ -4323,3 +4358,44 @@ packet_set_movement_authority:
4323
4358
  0: client
4324
4359
  1: server
4325
4360
  2: server_with_rewind
4361
+
4362
+ # CameraAimAssistPresets is sent by the server to the client to provide a list of categories and presets
4363
+ # that can be used when sending a CameraAimAssist packet or a CameraInstruction including aim assist.
4364
+ packet_camera_aim_assist_presets:
4365
+ !id: 0x140
4366
+ !bound: client
4367
+ # CategoryGroups is a list of groups of categories which can be referenced by one of the Presets.
4368
+ category_groups: []varint
4369
+ # Identifier is the unique identifier of the group.
4370
+ id: string
4371
+ # Categories is a list of categories within this group.
4372
+ categories: []varint
4373
+ name: string
4374
+ # Priorities represents the block and entity specific priorities for targetting. The aim
4375
+ # assist will select the block or entity with the highest priority within the specified thresholds.
4376
+ priorities:
4377
+ entities: []varint
4378
+ id: string
4379
+ priority: li32
4380
+ blocks: []varint
4381
+ id: string
4382
+ priority: li32
4383
+ entity_default?: li32
4384
+ block_default?: li32
4385
+ presets: []varint
4386
+ id: string
4387
+ categories: string
4388
+ exclude_blocks: string[]varint
4389
+ target_liquids: string[]varint
4390
+ item_settings: []varint
4391
+ # Identifier of the item to apply the settings to.
4392
+ id: string
4393
+ # Category is the identifier of a category to use which has been defined by a CameraAimAssistCategory.
4394
+ category: string
4395
+ # DefaultItemSettings is the identifier of a category to use when the player is not holding an item
4396
+ # listed in ItemSettings. This must be the identifier of a category within the
4397
+ # above `categories` field.
4398
+ default_item_settings?: string
4399
+ # HandSettings is the identifier of a category to use when the player is not holding an item. This must
4400
+ # be the identifier of a category within the above `categories` field.
4401
+ hand_settings?: string
@@ -1,7 +1,7 @@
1
1
  !StartDocs: Types
2
2
 
3
3
  TexturePackInfos: []li16
4
- uuid: string
4
+ uuid: uuid
5
5
  version: string
6
6
  size: lu64
7
7
  content_key: string
@@ -1151,6 +1151,9 @@ ItemStackResponses: []varint
1151
1151
  item_stack_id: zigzag32
1152
1152
  # CustomName is the custom name of the item stack. It is used in relation to text filtering.
1153
1153
  custom_name: string
1154
+ # FilteredCustomName is a filtered version of CustomName with all the profanity removed. The client will
1155
+ # use this over CustomName if this field is not empty and they have the "Filter Profanity" setting enabled.
1156
+ filtered_custom_name: string
1154
1157
  # DurabilityCorrection is the current durability of the item stack. This durability will be shown
1155
1158
  # client-side after the response is sent to the client.
1156
1159
  durability_correction: zigzag32
@@ -2279,7 +2282,7 @@ CameraPresets:
2279
2282
  position: Vec3fopts
2280
2283
  rotation: Vec2fopts
2281
2284
  # RotationSpeed is the speed at which the camera should rotate.
2282
- rotation_speed?: f32
2285
+ rotation_speed?: lf32
2283
2286
  # SnapToTarget determines whether the camera should snap to the target entity or not.
2284
2287
  snap_to_target?: bool
2285
2288
  # horizontal_rotation_limit is the horizontal rotation limit of the camera.
@@ -2288,6 +2291,8 @@ CameraPresets:
2288
2291
  vertical_rotation_limit?: vec2f
2289
2292
  # continue_targeting determines whether the camera should continue targeting the entity or not.
2290
2293
  continue_targeting?: bool
2294
+ # TrackingRadius is the radius around the camera that the aim assist should track targets.
2295
+ tracking_radius?: lf32
2291
2296
  # ViewOffset is only used in a follow_orbit camera and controls an offset based on a pivot point to the
2292
2297
  # player, causing it to be shifted in a certain direction.
2293
2298
  offset?: vec2f
@@ -2295,12 +2300,24 @@ CameraPresets:
2295
2300
  entity_offset?: vec3f
2296
2301
  # Radius is only used in a follow_orbit camera and controls how far away from the player the camera should
2297
2302
  # be rendered.
2298
- radius?: f32
2303
+ radius?: lf32
2299
2304
  ## TODO: make this an enum afer adding proper optional support inside pdefyaml
2300
2305
  audio_listener?: u8
2301
2306
  player_effects?: bool
2302
2307
  # align_target_and_camera_forward determines whether the camera should align the target and the camera forward or not.
2303
2308
  align_target_and_camera_forward?: bool
2309
+ aim_assist?:
2310
+ # Preset is the ID of the preset that has previously been defined in the CameraAimAssistPresets packet.
2311
+ preset_id?: string
2312
+ target_mode?: li32 =>
2313
+ - angle
2314
+ - distance
2315
+ # Angle is the maximum angle around the playes's cursor that the aim assist should check for a target,
2316
+ # if `target_mode` is set to `angle`.
2317
+ angle?: vec2f
2318
+ # Distance is the maximum distance from the player's cursor should check for a target, if TargetMode is
2319
+ # set to target_mode distance.
2320
+ distance?: lf32
2304
2321
 
2305
2322
  DisconnectFailReason: zigzag32 =>
2306
2323
  - unknown
@@ -1450,8 +1450,35 @@
1450
1450
  "sounds": "pc/1.20.4",
1451
1451
  "proto": "pc/1.20.5"
1452
1452
  },
1453
+ "1.21": {
1454
+ "attributes": "pc/1.21.1",
1455
+ "blocks": "pc/1.21.1",
1456
+ "blockCollisionShapes": "pc/1.20.5",
1457
+ "biomes": "pc/1.20.5",
1458
+ "effects": "pc/1.20.5",
1459
+ "items": "pc/1.21.1",
1460
+ "enchantments": "pc/1.21.1",
1461
+ "recipes": "pc/1.21.1",
1462
+ "instruments": "pc/1.20.5",
1463
+ "materials": "pc/1.21.1",
1464
+ "language": "pc/1.21.1",
1465
+ "entities": "pc/1.20.5",
1466
+ "protocol": "pc/1.21.1",
1467
+ "windows": "pc/1.16.1",
1468
+ "version": "pc/1.21",
1469
+ "foods": "pc/1.21.1",
1470
+ "particles": "pc/1.20.5",
1471
+ "blockLoot": "pc/1.20",
1472
+ "entityLoot": "pc/1.20",
1473
+ "loginPacket": "pc/1.20.5",
1474
+ "tints": "pc/1.21.1",
1475
+ "mapIcons": "pc/1.20.2",
1476
+ "commands": "pc/1.20.3",
1477
+ "sounds": "pc/1.21.1",
1478
+ "proto": "pc/latest"
1479
+ },
1453
1480
  "1.21.1": {
1454
- "attributes": "pc/1.17",
1481
+ "attributes": "pc/1.21.1",
1455
1482
  "blocks": "pc/1.21.1",
1456
1483
  "blockCollisionShapes": "pc/1.20.5",
1457
1484
  "biomes": "pc/1.20.5",
@@ -1475,6 +1502,33 @@
1475
1502
  "mapIcons": "pc/1.20.2",
1476
1503
  "commands": "pc/1.20.3",
1477
1504
  "sounds": "pc/1.21.1",
1505
+ "proto": "pc/1.21.1"
1506
+ },
1507
+ "1.21.3": {
1508
+ "attributes": "pc/1.21.3",
1509
+ "blockCollisionShapes": "pc/1.21.3",
1510
+ "blocks": "pc/1.21.3",
1511
+ "blockLoot": "pc/1.20",
1512
+ "biomes": "pc/1.21.3",
1513
+ "commands": "pc/1.20.3",
1514
+ "effects": "pc/1.20.5",
1515
+ "enchantments": "pc/1.21.1",
1516
+ "entities": "pc/1.21.3",
1517
+ "entityLoot": "pc/1.20",
1518
+ "foods": "pc/1.21.1",
1519
+ "instruments": "pc/1.20.5",
1520
+ "items": "pc/1.21.3",
1521
+ "language": "pc/1.21.3",
1522
+ "loginPacket": "pc/1.20.5",
1523
+ "mapIcons": "pc/1.20.2",
1524
+ "materials": "pc/1.21.3",
1525
+ "particles": "pc/1.21.3",
1526
+ "protocol": "pc/1.21.3",
1527
+ "recipes": "pc/1.21.3",
1528
+ "sounds": "pc/1.21.3",
1529
+ "tints": "pc/1.21.3",
1530
+ "version": "pc/1.21.3",
1531
+ "windows": "pc/1.16.1",
1478
1532
  "proto": "pc/latest"
1479
1533
  }
1480
1534
  },
@@ -2273,10 +2327,32 @@
2273
2327
  "steve": "bedrock/1.20.80",
2274
2328
  "blocksB2J": "bedrock/1.21.0",
2275
2329
  "blocksJ2B": "bedrock/1.21.0",
2276
- "proto": "bedrock/latest",
2330
+ "proto": "bedrock/1.21.42",
2277
2331
  "types": "bedrock/latest",
2278
2332
  "version": "bedrock/1.21.42",
2279
2333
  "language": "bedrock/1.20.10"
2334
+ },
2335
+ "1.21.50": {
2336
+ "blocks": "bedrock/1.21.0",
2337
+ "blockStates": "bedrock/1.21.0",
2338
+ "blockCollisionShapes": "bedrock/1.21.0",
2339
+ "biomes": "bedrock/1.20.0",
2340
+ "entities": "bedrock/1.21.0",
2341
+ "items": "bedrock/1.21.0",
2342
+ "recipes": "bedrock/1.19.10",
2343
+ "instruments": "bedrock/1.17.0",
2344
+ "materials": "pc/1.17",
2345
+ "enchantments": "bedrock/1.19.1",
2346
+ "effects": "pc/1.17",
2347
+ "protocol": "bedrock/1.21.50",
2348
+ "windows": "bedrock/1.16.201",
2349
+ "steve": "bedrock/1.20.80",
2350
+ "blocksB2J": "bedrock/1.21.0",
2351
+ "blocksJ2B": "bedrock/1.21.0",
2352
+ "proto": "bedrock/latest",
2353
+ "types": "bedrock/latest",
2354
+ "version": "bedrock/1.21.50",
2355
+ "language": "bedrock/1.20.10"
2280
2356
  }
2281
2357
  }
2282
- }
2358
+ }
@@ -95,7 +95,6 @@
95
95
  - block_entity_data
96
96
  - instrument
97
97
  - ominous_bottle_amplifier
98
- - jukebox_playable
99
98
  - recipes
100
99
  - lodestone_tracker
101
100
  - firework_explosion
@@ -123,7 +122,11 @@
123
122
  if custom_name: anonymousNbt
124
123
  if item_name: anonymousNbt
125
124
  if lore: anonOptionalNbt[]varint
126
- if rarity: varint
125
+ if rarity: varint =>
126
+ - common
127
+ - uncommon
128
+ - rare
129
+ - epic
127
130
  if enchantments:
128
131
  enchantments: []varint
129
132
  id: varint
@@ -330,38 +333,6 @@
330
333
  useDuration: f32
331
334
  range: f32
332
335
  if ominous_bottle_amplifier: varint
333
- # Name Type Description
334
- # Direct Mode Boolean Whether the jukebox song is specified directly, or just referenced by name.
335
- # Jukebox Song Name Optional Identifier The name of the jukebox song in its respective registry. Only present if Direct Mode is false.
336
- # Jukebox Song Type Optional VarInt Identifier used to determine the data that follows. It can be either:
337
- # 0 - Directly represents a jukebox song, with the necessary data following.
338
- # Anything else - References a jukebox song in its registry, by the ID of Jukebox Song Type - 1.
339
- # Only present if Direct Mode is true.
340
- # Sound Event Optional Sound Event The sound to be played. Only present if Direct Mode is true and Jukebox Song Type is 0.
341
- # Description Optional Text Component The description shown in the item lore. Only present if Direct Mode is true and Jukebox Song Type is 0.
342
- # Duration Optional Float The duration the songs should play for, in seconds. Only present if Direct Mode is true and Jukebox Song Type is 0.
343
- # Output Optional VarInt The output strength given by a comparator. Between 0 and 15. Only present if Direct Mode is true and Jukebox Song Type is 0.
344
- # Show In Tooltip Boolean Whether the song should be shown on the item's tooltip.
345
- if jukebox_playable:
346
- directMode: bool
347
- _: directMode ?
348
- if true:
349
- jukeboxSongName: string
350
- jukeboxSongType: varint
351
- _: jukeboxSongType ?
352
- if 0:
353
- soundEvent:
354
- soundEventType: varint
355
- _: soundEventType ?
356
- if 0:
357
- soundName: string
358
- fixedRange?: f32
359
- description: anonymousNbt
360
- duration: f32
361
- output: varint
362
- if false:
363
- songLocation: string
364
- showInTooltip: bool
365
336
  if recipes: anonymousNbt
366
337
  # Name Type Description
367
338
  # Has Global Position Boolean Whether this lodestone points to a position, otherwise it spins randomly.
@@ -143,21 +143,20 @@
143
143
  "39": "block_entity_data",
144
144
  "40": "instrument",
145
145
  "41": "ominous_bottle_amplifier",
146
- "42": "jukebox_playable",
147
- "43": "recipes",
148
- "44": "lodestone_tracker",
149
- "45": "firework_explosion",
150
- "46": "fireworks",
151
- "47": "profile",
152
- "48": "note_block_sound",
153
- "49": "banner_patterns",
154
- "50": "base_color",
155
- "51": "pot_decorations",
156
- "52": "container",
157
- "53": "block_state",
158
- "54": "bees",
159
- "55": "lock",
160
- "56": "container_loot"
146
+ "42": "recipes",
147
+ "43": "lodestone_tracker",
148
+ "44": "firework_explosion",
149
+ "45": "fireworks",
150
+ "46": "profile",
151
+ "47": "note_block_sound",
152
+ "48": "banner_patterns",
153
+ "49": "base_color",
154
+ "50": "pot_decorations",
155
+ "51": "container",
156
+ "52": "block_state",
157
+ "53": "bees",
158
+ "54": "lock",
159
+ "55": "container_loot"
161
160
  }
162
161
  }
163
162
  ],
@@ -189,7 +188,18 @@
189
188
  "type": "anonOptionalNbt"
190
189
  }
191
190
  ],
192
- "rarity": "varint",
191
+ "rarity": [
192
+ "mapper",
193
+ {
194
+ "type": "varint",
195
+ "mappings": {
196
+ "0": "common",
197
+ "1": "uncommon",
198
+ "2": "rare",
199
+ "3": "epic"
200
+ }
201
+ }
202
+ ],
193
203
  "enchantments": [
194
204
  "container",
195
205
  [
@@ -791,119 +801,6 @@
791
801
  ]
792
802
  ],
793
803
  "ominous_bottle_amplifier": "varint",
794
- "jukebox_playable": [
795
- "container",
796
- [
797
- {
798
- "name": "directMode",
799
- "type": "bool"
800
- },
801
- {
802
- "anon": true,
803
- "type": [
804
- "switch",
805
- {
806
- "compareTo": "directMode",
807
- "fields": {
808
- "true": [
809
- "container",
810
- [
811
- {
812
- "name": "jukeboxSongName",
813
- "type": "string"
814
- },
815
- {
816
- "name": "jukeboxSongType",
817
- "type": "varint"
818
- },
819
- {
820
- "anon": true,
821
- "type": [
822
- "switch",
823
- {
824
- "compareTo": "jukeboxSongType",
825
- "fields": {
826
- "0": [
827
- "container",
828
- [
829
- {
830
- "name": "soundEvent",
831
- "type": [
832
- "container",
833
- [
834
- {
835
- "name": "soundEventType",
836
- "type": "varint"
837
- },
838
- {
839
- "anon": true,
840
- "type": [
841
- "switch",
842
- {
843
- "compareTo": "soundEventType",
844
- "fields": {
845
- "0": [
846
- "container",
847
- [
848
- {
849
- "name": "soundName",
850
- "type": "string"
851
- },
852
- {
853
- "name": "fixedRange",
854
- "type": [
855
- "option",
856
- "f32"
857
- ]
858
- }
859
- ]
860
- ]
861
- }
862
- }
863
- ]
864
- }
865
- ]
866
- ]
867
- }
868
- ]
869
- ]
870
- }
871
- }
872
- ]
873
- },
874
- {
875
- "name": "description",
876
- "type": "anonymousNbt"
877
- },
878
- {
879
- "name": "duration",
880
- "type": "f32"
881
- },
882
- {
883
- "name": "output",
884
- "type": "varint"
885
- }
886
- ]
887
- ],
888
- "false": [
889
- "container",
890
- [
891
- {
892
- "name": "songLocation",
893
- "type": "string"
894
- }
895
- ]
896
- ]
897
- }
898
- }
899
- ]
900
- },
901
- {
902
- "name": "showInTooltip",
903
- "type": "bool"
904
- }
905
- ]
906
- ],
907
804
  "recipes": "anonymousNbt",
908
805
  "lodestone_tracker": [
909
806
  "container",
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 767,
3
+ "minecraftVersion": "1.21",
4
+ "majorVersion": "1.21",
5
+ "releaseType": "release"
6
+ }