minecraft-data 3.102.3 → 3.103.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 (36) hide show
  1. package/data.js +54 -0
  2. package/doc/history.md +4 -0
  3. package/index.d.ts +6 -0
  4. package/minecraft-data/README.md +1 -1
  5. package/minecraft-data/data/dataPaths.json +55 -1
  6. package/minecraft-data/data/pc/1.21.6/proto.yml +4 -1
  7. package/minecraft-data/data/pc/1.21.6/protocol.json +17 -1
  8. package/minecraft-data/data/pc/1.21.8/proto.yml +3497 -0
  9. package/minecraft-data/data/pc/1.21.8/protocol.json +19 -6
  10. package/minecraft-data/data/pc/1.21.9/attributes.json +247 -0
  11. package/minecraft-data/data/pc/1.21.9/biomes.json +652 -0
  12. package/minecraft-data/data/pc/1.21.9/blockCollisionShapes.json +146215 -0
  13. package/minecraft-data/data/pc/1.21.9/blocks.json +44684 -0
  14. package/minecraft-data/data/pc/1.21.9/effects.json +236 -0
  15. package/minecraft-data/data/pc/1.21.9/enchantments.json +959 -0
  16. package/minecraft-data/data/pc/1.21.9/entities.json +4238 -0
  17. package/minecraft-data/data/pc/1.21.9/foods.json +402 -0
  18. package/minecraft-data/data/pc/1.21.9/instruments.json +94 -0
  19. package/minecraft-data/data/pc/1.21.9/items.json +9813 -0
  20. package/minecraft-data/data/pc/1.21.9/language.json +7585 -0
  21. package/minecraft-data/data/pc/1.21.9/loginPacket.json +16537 -0
  22. package/minecraft-data/data/pc/1.21.9/materials.json +233 -0
  23. package/minecraft-data/data/pc/1.21.9/particles.json +462 -0
  24. package/minecraft-data/data/pc/1.21.9/proto.yml +3758 -0
  25. package/minecraft-data/data/pc/1.21.9/protocol.json +11406 -0
  26. package/minecraft-data/data/pc/1.21.9/recipes.json +31415 -0
  27. package/minecraft-data/data/pc/1.21.9/sounds.json +7086 -0
  28. package/minecraft-data/data/pc/1.21.9/tints.json +465 -0
  29. package/minecraft-data/data/pc/1.21.9/version.json +6 -0
  30. package/minecraft-data/data/pc/common/features.json +10 -0
  31. package/minecraft-data/data/pc/common/protocolVersions.json +24 -0
  32. package/minecraft-data/data/pc/common/versions.json +4 -2
  33. package/minecraft-data/data/pc/latest/proto.yml +328 -50
  34. package/minecraft-data/doc/history.md +6 -0
  35. package/minecraft-data/tools/js/test/audit_datapaths.js +5 -3
  36. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- !version: 1.21.8
1
+ !version: 1.21.9
2
2
  !StartDocs: true
3
3
 
4
4
  ^types:
@@ -33,6 +33,7 @@
33
33
  anonOptionalNbt: native
34
34
  registryEntryHolder: native
35
35
  registryEntryHolderSet: native
36
+ lpVec3: native
36
37
  ByteArray: ["buffer", { "countType": "varint" }]
37
38
  string: ["pstring", { "countType": "varint" }]
38
39
  vec2f:
@@ -55,6 +56,10 @@
55
56
  x: varint
56
57
  y: varint
57
58
  z: varint
59
+ vec3i32:
60
+ x: i32
61
+ y: i32
62
+ z: i32
58
63
  IDSet: ["registryEntryHolderSet", {
59
64
  "base": { name: "name", type: "string" },
60
65
  "otherwise": { name: "ids", type: "varint" }
@@ -347,9 +352,10 @@
347
352
  material: ["registryEntryHolder", { "baseName": "materialId", "otherwise": { "name": "data", "type": "ArmorTrimMaterial" } }]
348
353
  pattern: ["registryEntryHolder", { "baseName": "patternId", "otherwise": { "name": "data", "type": "ArmorTrimPattern" } }]
349
354
  if debug_stick_state: anonymousNbt
350
- if entity_data: anonymousNbt
355
+ if entity_data or block_entity_data:
356
+ type: varint
357
+ data: anonymousNbt
351
358
  if bucket_entity_data: anonymousNbt
352
- if block_entity_data: anonymousNbt
353
359
  if instrument:
354
360
  hasHolder: bool
355
361
  data: hasHolder ?
@@ -370,26 +376,14 @@
370
376
  if recipes: anonymousNbt
371
377
  if lodestone_tracker:
372
378
  # Specified if this lodestone points to a position; otherwise it spins randomly.
373
- globalPosition?:
374
- dimension: string
375
- # The position the compass points to. Only present if Has Global Position is true.
376
- position: position
379
+ globalPosition?: GlobalPos
377
380
  # Whether the component is removed when the associated lodestone is broken.
378
381
  tracked: bool
379
382
  if firework_explosion: ItemFireworkExplosion
380
383
  if fireworks:
381
384
  flightDuration: varint
382
385
  explosions: ItemFireworkExplosion[]varint
383
- if profile:
384
- # If the profile has a name, max 16 characters.
385
- name?: string
386
- uuid?: UUID
387
- properties: []varint
388
- # Max 64 characters
389
- name: string
390
- value: string
391
- # Max 1024 characters
392
- signature?: string
386
+ if profile: ResolvableProfile
393
387
  if note_block_sound: string
394
388
  if banner_patterns:
395
389
  layers: BannerPatternLayer[]varint
@@ -600,6 +594,209 @@
600
594
  hash: i32
601
595
  removeComponents: []varint
602
596
  type: SlotComponentType
597
+
598
+ RespawnData:
599
+ globalPos: GlobalPos
600
+ yaw: f32
601
+ pitch: f32
602
+
603
+ GlobalPos:
604
+ dimensionName: string
605
+ location: position
606
+
607
+ DebugStructureInfo:
608
+ boundingBoxMin: position
609
+ boundingBoxMax: position
610
+ pieces: []varint
611
+ boundingBoxMin: position
612
+ boundingBoxMax: position
613
+ isStart: bool
614
+
615
+ Node:
616
+ position: vec3i32
617
+ walkedDistance: f32
618
+ costMalus: f32
619
+ closed: bool
620
+ type: varint =>
621
+ - blocked
622
+ - open
623
+ - walkable
624
+ - walkable_door
625
+ - trapdoor
626
+ - powder_snow
627
+ - danger_powder_snow
628
+ - fence
629
+ - lava
630
+ - water
631
+ - water_border
632
+ - rail
633
+ - unpassable_rail
634
+ - danger_fire
635
+ - damage_fire
636
+ - danger_other
637
+ - damage_other
638
+ - door_open
639
+ - door_wood_closed
640
+ - door_iron_closed
641
+ - breach
642
+ - leaves
643
+ - sticky_honey
644
+ - cocoa
645
+ - damage_cautious
646
+ - danger_trapdoor
647
+ f: f32
648
+
649
+ PathDebugData:
650
+ openSet: Node[]varint
651
+ closedSet: Node[]varint
652
+ targetNodes: Node[]varint
653
+
654
+ Path:
655
+ reached: bool
656
+ nextNodeIndex: i32
657
+ target: position
658
+ nodes: Node[]varint
659
+ debugData: PathDebugData
660
+
661
+ DebugSubscriptionDataType: varint =>
662
+ - DedicatedServerTickTime
663
+ - Bees
664
+ - Brains
665
+ - Breezes
666
+ - GoalSelectors
667
+ - EntityPaths
668
+ - EntityBlockIntersections
669
+ - BeeHives
670
+ - Pois
671
+ - RedstoneWireOrientations
672
+ - VillageSections
673
+ - Raids
674
+ - Structures
675
+ - GameEventListeners
676
+ - NeighborUpdates
677
+ - GameEvents
678
+
679
+ DebugSubscriptionUpdate:
680
+ type: DebugSubscriptionDataType
681
+ _: type ?
682
+ if DedicatedServerTickTime: void
683
+ default:
684
+ payload?: type ?
685
+ if DedicatedServerTickTime or VillageSections: void
686
+ if Bees: # DebugSubscriptionDataBeeInfo
687
+ hivePos?: position
688
+ flowerPos?: position
689
+ travelTicks: varint
690
+ blacklistedHives: position[]varint
691
+ if Brains: # DebugSubscriptionDataBrainDump
692
+ name: string
693
+ profession: string
694
+ xp: i32
695
+ health: f32
696
+ maxHealth: f32
697
+ inventory: string
698
+ wantsGolem: bool
699
+ angerLevel: i32
700
+ activities: string[]varint
701
+ behaviors: string[]varint
702
+ memories: string[]varint
703
+ gossips: string[]varint
704
+ pois: position[]varint
705
+ potentialPois: position[]varint
706
+ if Breezes: # DebugSubscriptionDataBreezeInfo
707
+ attackTarget?: varint
708
+ jumpTarget?: position
709
+ if GoalSelectors: # DebugSubscriptionDataGoalInfo
710
+ goals: []varint
711
+ priority: varint
712
+ running: bool
713
+ name: string
714
+ if EntityPaths: # DebugSubscriptionDataPathInfo
715
+ path: Path
716
+ maxNodeDistance: f32
717
+ if EntityBlockIntersections: # DebugSubscriptionDataEntityBlockIntersection
718
+ id: varint
719
+ if BeeHives: # DebugSubscriptionDataHiveInfo
720
+ type: varint
721
+ occupantCount: varint
722
+ honeyLevel: varint
723
+ sedated: bool
724
+ if Pois: # DebugSubscriptionDataPoiInfo
725
+ pos: position
726
+ poiType: varint
727
+ freeTicketCount: varint
728
+ if RedstoneWireOrientations: # DebugSubscriptionDataOrientation
729
+ index: varint
730
+ if Raids: # DebugSubscriptionDataRaids
731
+ positions: position[]varint
732
+ if Structures: # DebugSubscriptionDataStructures
733
+ structures: DebugStructureInfo[]varint
734
+ if GameEventListeners: # DebugSubscriptionDataGameEventListenerInfo
735
+ listenerRadius: varint
736
+ if NeighborUpdates: # DebugSubscriptionDataNeighbor
737
+ pos: position
738
+ if GameEvents: # DebugSubscriptionDataGameEventInfo
739
+ event: varint
740
+ pos: vec3f64
741
+
742
+ DebugSubscriptionEvent:
743
+ type: DebugSubscriptionDataType
744
+ value: type ?
745
+ if DedicatedServerTickTime or VillageSections: void
746
+ if Bees: # DebugSubscriptionDataBeeInfo
747
+ hivePos?: position
748
+ flowerPos?: position
749
+ travelTicks: varint
750
+ blacklistedHives: position[]varint
751
+ if Brains: # DebugSubscriptionDataBrainDump
752
+ name: string
753
+ profession: string
754
+ xp: i32
755
+ health: f32
756
+ maxHealth: f32
757
+ inventory: string
758
+ wantsGolem: bool
759
+ angerLevel: i32
760
+ activities: string[]varint
761
+ behaviors: string[]varint
762
+ memories: string[]varint
763
+ gossips: string[]varint
764
+ pois: position[]varint
765
+ potentialPois: position[]varint
766
+ if Breezes: # DebugSubscriptionDataBreezeInfo
767
+ attackTarget?: varint
768
+ jumpTarget?: position
769
+ if GoalSelectors: # DebugSubscriptionDataGoalInfo
770
+ priority: varint
771
+ running: bool
772
+ name: string
773
+ if EntityPaths: # DebugSubscriptionDataPathInfo
774
+ path: Path
775
+ maxNodeDistance: f32
776
+ if EntityBlockIntersections: # DebugSubscriptionDataEntityBlockIntersection
777
+ id: varint
778
+ if BeeHives: # DebugSubscriptionDataHiveInfo
779
+ type: varint
780
+ occupantCount: varint
781
+ honeyLevel: varint
782
+ sedated: bool
783
+ if Pois: # DebugSubscriptionDataPoiInfo
784
+ pos: position
785
+ poiType: varint
786
+ freeTicketCount: varint
787
+ if RedstoneWireOrientations: # DebugSubscriptionDataOrientation
788
+ index: varint
789
+ if Raids: # DebugSubscriptionDataRaids
790
+ positions: position[]varint
791
+ if Structures: # DebugSubscriptionDataStructures
792
+ structures: DebugStructureInfo[]varint
793
+ if GameEventListeners: # DebugSubscriptionDataGameEventListenerInfo
794
+ listenerRadius: varint
795
+ if NeighborUpdates: # DebugSubscriptionDataNeighbor
796
+ pos: position
797
+ if GameEvents: # DebugSubscriptionDataGameEventInfo
798
+ event: varint
799
+ pos: vec3f64
603
800
 
604
801
  Particle:
605
802
  # See client/net/minecraft/core/particles/ParticleTypes.java
@@ -609,6 +806,7 @@
609
806
  - block_marker
610
807
  - bubble
611
808
  - cloud
809
+ - copper_fire_flame
612
810
  - crit
613
811
  - damage_indicator
614
812
  - dragon_breath
@@ -766,6 +964,12 @@
766
964
  color: u8
767
965
  if tinted_leaves: i32
768
966
  if firefly: void
967
+ if dragon_breath:
968
+ power: f32
969
+ if effect or instant_effect:
970
+ color: i32
971
+ power: f32
972
+ if flash: i32
769
973
  ingredient: Slot[]varint
770
974
  position: [
771
975
  "bitfield",
@@ -831,7 +1035,6 @@
831
1035
  - optional_uuid
832
1036
  - block_state
833
1037
  - optional_block_state
834
- - compound_tag
835
1038
  - particle
836
1039
  - particles
837
1040
  - villager_data
@@ -848,8 +1051,11 @@
848
1051
  - painting_variant
849
1052
  - sniffer_state
850
1053
  - armadillo_state
1054
+ - copper_golem_state
1055
+ - weathering_copper_golem_state
851
1056
  - vector3
852
1057
  - quaternion
1058
+ - resolvable_profile
853
1059
  value: type ?
854
1060
  if byte: i8
855
1061
  if int: varint
@@ -870,7 +1076,6 @@
870
1076
  if optional_uuid: ["option", "UUID"]
871
1077
  if block_state: varint
872
1078
  if optional_block_state: optvarint
873
- if compound_tag: anonymousNbt
874
1079
  if particle: Particle
875
1080
  if particles: Particle[]varint
876
1081
  if villager_data:
@@ -885,16 +1090,19 @@
885
1090
  if wolf_sound_variant: varint
886
1091
  if frog_variant: varint
887
1092
  if pig_variant: varint
888
- if chicken_variant: ["registryEntryHolder", { "baseName": "variantId", "otherwise": { "name": "variantData", "type": "string" } }]
889
- if optional_global_pos: ["option", "string"]
1093
+ if chicken_variant: varint
1094
+ if optional_global_pos: ["option", "GlobalPos"]
890
1095
  if painting_variant: ["registryEntryHolder", {
891
1096
  "baseName": "variantId",
892
1097
  "otherwise": { name: "variantData", type: "EntityMetadataPaintingVariant" }
893
1098
  }]
894
1099
  if sniffer_state: varint
895
1100
  if armadillo_state: varint
1101
+ if copper_golem_state: varint
1102
+ if weathering_copper_golem_state: varint
896
1103
  if vector3: vec3f
897
1104
  if quaternion: vec4f
1105
+ if resolvable_profile: ResolvableProfile
898
1106
  EntityMetadataPaintingVariant:
899
1107
  width: i32
900
1108
  height: i32
@@ -940,12 +1148,38 @@
940
1148
  "countType": "varint"
941
1149
  }
942
1150
  ]
943
- game_profile:
1151
+ # No UUID
1152
+ game_profile_name_prop:
944
1153
  name: string
945
- properties: []varint
946
- name: string
947
- value: string
948
- signature?: string
1154
+ properties: GameProfileProperty[]varint
1155
+ # With UUID
1156
+ GameProfile:
1157
+ uuid: UUID
1158
+ name: string
1159
+ properties: GameProfileProperty[]varint
1160
+ PartialResolvableProfile:
1161
+ name?: string
1162
+ uuid?: UUID
1163
+ properties: GameProfileProperty[]varint
1164
+ GameProfileProperty:
1165
+ name: string
1166
+ value: string
1167
+ signature?: string
1168
+ ResolvableProfile:
1169
+ type: varint =>
1170
+ - partial
1171
+ - complete
1172
+ _: type ?
1173
+ if partial: PartialResolvableProfile
1174
+ if complete: GameProfile
1175
+ skinPatch: PlayerSkinPatch
1176
+ PlayerSkinPatch:
1177
+ body?: string
1178
+ cape?: string
1179
+ elytra?: string
1180
+ model?: varint =>
1181
+ - wide
1182
+ - slim
949
1183
  command_node:
950
1184
  flags: [
951
1185
  "bitfield",
@@ -1470,6 +1704,9 @@
1470
1704
  if cookie_response: packet_common_cookie_response
1471
1705
  ^configuration.toClient.types:
1472
1706
  ## (Cookie Request is common)
1707
+ # MC: ClientboundCodeOfConductPacket
1708
+ packet_code_of_conduct:
1709
+ contents: string
1473
1710
  # MC: ClientboundCustomPayloadPacket
1474
1711
  packet_custom_payload:
1475
1712
  channel: string
@@ -1530,6 +1767,7 @@
1530
1767
  - server_links
1531
1768
  - clear_dialog
1532
1769
  - show_dialog
1770
+ - code_of_conduct
1533
1771
  params: name ?
1534
1772
  if cookie_request: packet_common_cookie_request
1535
1773
  if custom_payload: packet_custom_payload
@@ -1550,9 +1788,13 @@
1550
1788
  if server_links: packet_common_server_links
1551
1789
  if clear_dialog: packet_common_clear_dialog
1552
1790
  if show_dialog: packet_show_dialog
1791
+ if code_of_conduct: packet_code_of_conduct
1553
1792
  ^configuration.toServer.types:
1554
1793
  ## (Settings is Common) ##
1555
1794
  ## (Cookie Response is Common) ##
1795
+ # MC: ServerboundAcceptCodeOfConductPacket
1796
+ packet_accept_code_of_conduct:
1797
+ # Empty
1556
1798
  # MC: ServerboundCustomPayloadPacket
1557
1799
  packet_custom_payload:
1558
1800
  channel: string
@@ -1581,6 +1823,7 @@
1581
1823
  - resource_pack_receive
1582
1824
  - select_known_packs
1583
1825
  - custom_click_action
1826
+ - accept_code_of_conduct
1584
1827
  params: name ?
1585
1828
  if settings: packet_common_settings
1586
1829
  if cookie_response: packet_common_cookie_response
@@ -1591,6 +1834,7 @@
1591
1834
  if resource_pack_receive: packet_resource_pack_receive
1592
1835
  if select_known_packs: packet_common_select_known_packs
1593
1836
  if custom_click_action: packet_common_custom_click_action
1837
+ if accept_code_of_conduct: packet_accept_code_of_conduct
1594
1838
  ^play.toClient.types:
1595
1839
  SlotDisplay:
1596
1840
  type: varint =>
@@ -1663,9 +1907,7 @@
1663
1907
  previousGamemode: u8
1664
1908
  isDebug: bool
1665
1909
  isFlat: bool
1666
- death?:
1667
- dimensionName: string
1668
- location: position
1910
+ death?: GlobalPos
1669
1911
  portalCooldown: varint
1670
1912
  seaLevel: varint
1671
1913
 
@@ -1677,13 +1919,12 @@
1677
1919
  x: f64
1678
1920
  y: f64
1679
1921
  z: f64
1922
+ # TODO: Rename old fields
1923
+ velocity: lpVec3
1680
1924
  pitch: i8
1681
1925
  yaw: i8
1682
1926
  headPitch: i8
1683
1927
  objectData: varint
1684
- velocityX: i16
1685
- velocityY: i16
1686
- velocityZ: i16
1687
1928
  # MC: ClientboundAnimatePacket
1688
1929
  packet_animation:
1689
1930
  entityId: varint
@@ -1816,6 +2057,21 @@
1816
2057
  sourceCauseId: varint
1817
2058
  sourceDirectId: varint
1818
2059
  sourcePosition?: vec3f64
2060
+ # MC: ClientboundDebugBlockValuePacket
2061
+ packet_debug_block_value:
2062
+ blockPos: position
2063
+ update: DebugSubscriptionUpdate
2064
+ # MC: ClientboundDebugChunkValuePacket
2065
+ packet_debug_chunk_value:
2066
+ chunkPos: packedChunkPos
2067
+ update: DebugSubscriptionUpdate
2068
+ # MC: ClientboundEntityEntityValuePacket
2069
+ packet_debug_entity_value:
2070
+ entityId: varint
2071
+ update: DebugSubscriptionUpdate
2072
+ # MC: ClientboundDebugEventPacket
2073
+ packet_debug_event:
2074
+ event: DebugSubscriptionEvent
1819
2075
  # MC: ClientboundDebugSamplePacket
1820
2076
  packet_debug_sample:
1821
2077
  sample: i64[]varint
@@ -1872,14 +2128,22 @@
1872
2128
  yaw: f32
1873
2129
  pitch: f32
1874
2130
  onGround: bool
2131
+ ExplosionParticleInfo:
2132
+ particle: Particle
2133
+ scaling: f32
2134
+ speed: f32
2135
+ ExplosionParticleEntry:
2136
+ data: ExplosionParticleInfo
2137
+ weight: varint
1875
2138
  # MC: ClientboundExplodePacket
1876
2139
  packet_explosion:
1877
- x: f64
1878
- y: f64
1879
- z: f64
2140
+ center: vec3f64
2141
+ radius: f32
2142
+ blockCount: i32
1880
2143
  playerKnockback?: vec3f64
1881
2144
  explosionParticle: Particle
1882
2145
  sound: ItemSoundHolder
2146
+ blockParticles: ExplosionParticleEntry[]varint
1883
2147
  # MC: ClientboundForgetLevelChunkPacket
1884
2148
  packet_unload_chunk:
1885
2149
  chunkZ: i32
@@ -1902,6 +2166,10 @@
1902
2166
  12: limited_crafting
1903
2167
  13: level_chunks_load_start
1904
2168
  gameMode: f32
2169
+ # MC: ClientboundGameTestHighlightPosPacket
2170
+ packet_game_test_highlight_pos:
2171
+ absolutePos: position
2172
+ relativePos: position
1905
2173
  # MC: ClientboundHorseScreenOpenPacket
1906
2174
  packet_open_horse_window:
1907
2175
  windowId: ContainerID
@@ -2066,7 +2334,7 @@
2066
2334
  entityId: varint
2067
2335
  steps: []varint
2068
2336
  position: vec3f
2069
- movement: vec3f
2337
+ velocity: vec3f
2070
2338
  yaw: f32
2071
2339
  pitch: f32
2072
2340
  weight: f32
@@ -2165,7 +2433,7 @@
2165
2433
  data: []varint
2166
2434
  uuid: UUID
2167
2435
  player: ../action/add_player ?
2168
- if true: game_profile
2436
+ if true: game_profile_name_prop
2169
2437
  default: void
2170
2438
  chatSession: ../action/initialize_chat ?
2171
2439
  if true: chat_session
@@ -2223,7 +2491,9 @@
2223
2491
  # MC: ClientboundPlayerRotationPacket
2224
2492
  packet_player_rotation:
2225
2493
  yaw: f32
2494
+ relativeYaw: bool
2226
2495
  pitch: f32
2496
+ relativePitch: bool
2227
2497
 
2228
2498
  # MC: ClientboundRecipeBookAddPacket
2229
2499
  packet_recipe_book_add:
@@ -2337,9 +2607,7 @@
2337
2607
  packet_set_cursor_item:
2338
2608
  contents: Slot
2339
2609
  # MC: ClientboundSetDefaultSpawnPositionPacket
2340
- packet_spawn_position:
2341
- location: position
2342
- angle: f32
2610
+ packet_spawn_position: RespawnData
2343
2611
  # MC: ClientboundSetDisplayObjectivePacket
2344
2612
  packet_scoreboard_display_objective:
2345
2613
  position: varint
@@ -2355,9 +2623,7 @@
2355
2623
  # MC: ClientboundSetEntityMotionPacket
2356
2624
  packet_entity_velocity:
2357
2625
  entityId: varint
2358
- velocityX: i16
2359
- velocityY: i16
2360
- velocityZ: i16
2626
+ velocity: lpVec3
2361
2627
  # MC: ClientboundSetEquipmentPacket
2362
2628
  packet_entity_equipment:
2363
2629
  entityId: varint
@@ -2689,7 +2955,10 @@
2689
2955
  id: string
2690
2956
  icon:
2691
2957
  style: string
2692
- color?: i32 # RGB color with alpha fixed at FF
2958
+ color?:
2959
+ red: u8
2960
+ green: u8
2961
+ blue: u8
2693
2962
  type: varint =>
2694
2963
  0: empty
2695
2964
  1: vec3i
@@ -2733,6 +3002,10 @@
2733
3002
  - chat_suggestions
2734
3003
  - custom_payload
2735
3004
  - damage_event
3005
+ - debug_block_value
3006
+ - debug_chunk_value
3007
+ - debug_entity_value
3008
+ - debug_event
2736
3009
  - debug_sample
2737
3010
  - hide_message
2738
3011
  - kick_disconnect
@@ -2742,6 +3015,7 @@
2742
3015
  - explosion
2743
3016
  - unload_chunk
2744
3017
  - game_state_change
3018
+ - game_test_highlight_pos
2745
3019
  - open_horse_window
2746
3020
  - hurt_animation
2747
3021
  - initialize_world_border
@@ -2868,6 +3142,10 @@
2868
3142
  if chat_suggestions: packet_chat_suggestions
2869
3143
  if custom_payload: packet_custom_payload
2870
3144
  if damage_event: packet_damage_event
3145
+ if debug_block_value: packet_debug_block_value
3146
+ if debug_chunk_value: packet_debug_chunk_value
3147
+ if debug_entity_value: packet_debug_entity_value
3148
+ if debug_event: packet_debug_event
2871
3149
  if debug_sample: packet_debug_sample
2872
3150
  if hide_message: packet_hide_message
2873
3151
  if kick_disconnect: packet_kick_disconnect
@@ -2877,6 +3155,7 @@
2877
3155
  if explosion: packet_explosion
2878
3156
  if unload_chunk: packet_unload_chunk
2879
3157
  if game_state_change: packet_game_state_change
3158
+ if game_test_highlight_pos: packet_game_test_highlight_pos
2880
3159
  if open_horse_window: packet_open_horse_window
2881
3160
  if hurt_animation: packet_hurt_animation
2882
3161
  if initialize_world_border: packet_initialize_world_border
@@ -2976,7 +3255,6 @@
2976
3255
  if tracked_waypoint: packet_tracked_waypoint
2977
3256
  if clear_dialog: packet_common_clear_dialog
2978
3257
  if show_dialog: packet_show_dialog
2979
-
2980
3258
  ^play.toServer.types:
2981
3259
  # MC: ServerboundAcceptTeleportationPacket
2982
3260
  packet_teleport_confirm:
@@ -3099,9 +3377,9 @@
3099
3377
  packet_custom_payload:
3100
3378
  channel: string
3101
3379
  data: restBuffer
3102
- # MC: ServerboundDebugSampleSubscriptionPacket
3103
- packet_debug_sample_subscription:
3104
- type: varint
3380
+ # MC: ServerboundDebugSubscriptionRequestPacket
3381
+ packet_debug_subscription_request:
3382
+ subscriptions: DebugSubscriptionDataType[]varint
3105
3383
  # MC: ServerboundEditBookPacket
3106
3384
  packet_edit_book:
3107
3385
  hand: varint
@@ -3381,7 +3659,7 @@
3381
3659
  - set_slot_state
3382
3660
  - cookie_response
3383
3661
  - custom_payload
3384
- - debug_sample_subscription
3662
+ - debug_subscription_request
3385
3663
  - edit_book
3386
3664
  - query_entity_nbt
3387
3665
  - use_entity
@@ -3448,7 +3726,7 @@
3448
3726
  if set_slot_state: packet_set_slot_state
3449
3727
  if cookie_response: packet_common_cookie_response
3450
3728
  if custom_payload: packet_custom_payload
3451
- if debug_sample_subscription: packet_debug_sample_subscription
3729
+ if debug_subscription_request: packet_debug_subscription_request
3452
3730
  if edit_book: packet_edit_book
3453
3731
  if query_entity_nbt: packet_query_entity_nbt
3454
3732
  if use_entity: packet_use_entity
@@ -1,3 +1,9 @@
1
+ ## 3.103.0
2
+ * [🎈 Add Minecraft pc 1.21.9/1.21.10 data (#1096)](https://github.com/PrismarineJS/minecraft-data/commit/c2609713383da7844bb8ce1e6cb580b767f04a53) (thanks @rom1504bot)
3
+ * [Add 26.1-snapshot-4 to pc protocolVersions.json](https://github.com/PrismarineJS/minecraft-data/commit/6dac6d16330ebc9e4326b0d52cb71fcfac9bbb9c) (thanks @github-actions[bot])
4
+ * [Add 26.1-snapshot-3 to pc protocolVersions.json](https://github.com/PrismarineJS/minecraft-data/commit/1555cce4730cf7a830630b954d172c6f17e8600e) (thanks @github-actions[bot])
5
+ * [Add 26.1-snapshot-2 to pc protocolVersions.json](https://github.com/PrismarineJS/minecraft-data/commit/9443ed0dec3b9b8cdfe82ddb8a8097a622df10a7) (thanks @github-actions[bot])
6
+
1
7
  ## 3.102.3
2
8
  * [bedrock protocol: use ZigZag64 instead of VarInt64 in packet_player_location (#1081)](https://github.com/PrismarineJS/minecraft-data/commit/803fce17e9cbefdba4013a772698c68a7792bb7f) (thanks @Snowbelldog)
3
9
  * [pc: Fix packet_explosion partial packet issue 1.21.4 - 1.21.8 (#1114)](https://github.com/PrismarineJS/minecraft-data/commit/c7048f26a8f60f75f3634817b4507bc49b575fae) (thanks @Rohan2460)
@@ -10,9 +10,11 @@ describe('audit dataPaths', function () {
10
10
  require('./version_iterator')(function (p, versionString) {
11
11
  const [type, version] = versionString.split(' ')
12
12
  const dp = dataPaths[type][version]
13
- const files = fs.readdirSync(p).map(f => f.split('.')[0])
14
- for (const file of files) {
15
- assert(dp[file], `missing dataPath for ${type} ${version} ${file}`)
13
+ if (fs.existsSync(p)) {
14
+ const files = fs.readdirSync(p).map(f => f.split('.')[0])
15
+ for (const file of files) {
16
+ assert(dp[file], `missing dataPath for ${type} ${version} ${file}`)
17
+ }
16
18
  }
17
19
  })
18
20
  })
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "minecraft-data",
3
- "version": "3.102.3",
3
+ "version": "3.103.0",
4
4
  "description": "Provide easy access to minecraft data in node.js",
5
5
  "main": "index.js",
6
6
  "tonicExampleFilename": "example.js",