minecraft-data 3.50.0 → 3.52.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 (109) hide show
  1. package/data.js +51 -1
  2. package/doc/history.md +8 -0
  3. package/index.d.ts +398 -1
  4. package/minecraft-data/README.md +1 -1
  5. package/minecraft-data/data/bedrock/1.16.201/proto.yml +1 -0
  6. package/minecraft-data/data/bedrock/1.16.201/protocol.json +12 -5
  7. package/minecraft-data/data/bedrock/1.16.201/types.yml +2 -2
  8. package/minecraft-data/data/bedrock/1.16.210/proto.yml +1 -0
  9. package/minecraft-data/data/bedrock/1.16.210/protocol.json +12 -5
  10. package/minecraft-data/data/bedrock/1.16.210/types.yml +2 -2
  11. package/minecraft-data/data/bedrock/1.16.220/proto.yml +1 -0
  12. package/minecraft-data/data/bedrock/1.16.220/protocol.json +12 -5
  13. package/minecraft-data/data/bedrock/1.16.220/types.yml +2 -2
  14. package/minecraft-data/data/bedrock/1.17.0/proto.yml +1 -0
  15. package/minecraft-data/data/bedrock/1.17.0/protocol.json +12 -5
  16. package/minecraft-data/data/bedrock/1.17.0/types.yml +2 -2
  17. package/minecraft-data/data/bedrock/1.17.10/proto.yml +1 -0
  18. package/minecraft-data/data/bedrock/1.17.10/protocol.json +12 -5
  19. package/minecraft-data/data/bedrock/1.17.10/types.yml +2 -2
  20. package/minecraft-data/data/bedrock/1.17.30/proto.yml +1 -0
  21. package/minecraft-data/data/bedrock/1.17.30/protocol.json +12 -5
  22. package/minecraft-data/data/bedrock/1.17.30/types.yml +2 -2
  23. package/minecraft-data/data/bedrock/1.17.40/proto.yml +1 -0
  24. package/minecraft-data/data/bedrock/1.17.40/protocol.json +12 -5
  25. package/minecraft-data/data/bedrock/1.17.40/types.yml +2 -2
  26. package/minecraft-data/data/bedrock/1.18.0/proto.yml +1 -0
  27. package/minecraft-data/data/bedrock/1.18.0/protocol.json +12 -5
  28. package/minecraft-data/data/bedrock/1.18.0/types.yml +2 -2
  29. package/minecraft-data/data/bedrock/1.18.11/proto.yml +1 -0
  30. package/minecraft-data/data/bedrock/1.18.11/protocol.json +12 -5
  31. package/minecraft-data/data/bedrock/1.18.11/types.yml +2 -2
  32. package/minecraft-data/data/bedrock/1.18.30/proto.yml +1 -0
  33. package/minecraft-data/data/bedrock/1.18.30/protocol.json +12 -5
  34. package/minecraft-data/data/bedrock/1.18.30/types.yml +2 -2
  35. package/minecraft-data/data/bedrock/1.19.1/proto.yml +1 -0
  36. package/minecraft-data/data/bedrock/1.19.1/protocol.json +12 -5
  37. package/minecraft-data/data/bedrock/1.19.1/types.yml +2 -2
  38. package/minecraft-data/data/bedrock/1.19.10/proto.yml +1 -0
  39. package/minecraft-data/data/bedrock/1.19.10/protocol.json +12 -5
  40. package/minecraft-data/data/bedrock/1.19.10/types.yml +2 -2
  41. package/minecraft-data/data/bedrock/1.19.20/proto.yml +1 -0
  42. package/minecraft-data/data/bedrock/1.19.20/protocol.json +12 -5
  43. package/minecraft-data/data/bedrock/1.19.20/types.yml +2 -2
  44. package/minecraft-data/data/bedrock/1.19.21/proto.yml +1 -0
  45. package/minecraft-data/data/bedrock/1.19.21/protocol.json +12 -5
  46. package/minecraft-data/data/bedrock/1.19.21/types.yml +2 -2
  47. package/minecraft-data/data/bedrock/1.19.30/proto.yml +1 -0
  48. package/minecraft-data/data/bedrock/1.19.30/protocol.json +12 -5
  49. package/minecraft-data/data/bedrock/1.19.30/types.yml +2 -2
  50. package/minecraft-data/data/bedrock/1.19.40/proto.yml +1 -0
  51. package/minecraft-data/data/bedrock/1.19.40/protocol.json +12 -5
  52. package/minecraft-data/data/bedrock/1.19.40/types.yml +2 -2
  53. package/minecraft-data/data/bedrock/1.19.50/proto.yml +1 -0
  54. package/minecraft-data/data/bedrock/1.19.50/protocol.json +12 -5
  55. package/minecraft-data/data/bedrock/1.19.50/types.yml +2 -2
  56. package/minecraft-data/data/bedrock/1.19.60/proto.yml +1 -0
  57. package/minecraft-data/data/bedrock/1.19.60/protocol.json +13 -6
  58. package/minecraft-data/data/bedrock/1.19.60/types.yml +3 -3
  59. package/minecraft-data/data/bedrock/1.19.62/proto.yml +1 -0
  60. package/minecraft-data/data/bedrock/1.19.62/protocol.json +13 -6
  61. package/minecraft-data/data/bedrock/1.19.62/types.yml +3 -3
  62. package/minecraft-data/data/bedrock/1.19.70/proto.yml +1 -0
  63. package/minecraft-data/data/bedrock/1.19.70/protocol.json +13 -6
  64. package/minecraft-data/data/bedrock/1.19.70/types.yml +3 -3
  65. package/minecraft-data/data/bedrock/1.19.80/proto.yml +1 -0
  66. package/minecraft-data/data/bedrock/1.19.80/protocol.json +14 -7
  67. package/minecraft-data/data/bedrock/1.19.80/types.yml +4 -4
  68. package/minecraft-data/data/bedrock/1.20.0/proto.yml +1 -0
  69. package/minecraft-data/data/bedrock/1.20.0/protocol.json +14 -7
  70. package/minecraft-data/data/bedrock/1.20.0/types.yml +4 -4
  71. package/minecraft-data/data/bedrock/1.20.10/proto.yml +1 -0
  72. package/minecraft-data/data/bedrock/1.20.10/protocol.json +14 -7
  73. package/minecraft-data/data/bedrock/1.20.10/types.yml +4 -4
  74. package/minecraft-data/data/bedrock/1.20.30/proto.yml +1 -0
  75. package/minecraft-data/data/bedrock/1.20.30/protocol.json +14 -7
  76. package/minecraft-data/data/bedrock/1.20.30/types.yml +4 -4
  77. package/minecraft-data/data/bedrock/1.20.40/proto.yml +1 -0
  78. package/minecraft-data/data/bedrock/1.20.40/protocol.json +14 -7
  79. package/minecraft-data/data/bedrock/1.20.40/types.yml +4 -4
  80. package/minecraft-data/data/bedrock/1.20.50/protocol.json +14 -7
  81. package/minecraft-data/data/bedrock/latest/proto.yml +1 -0
  82. package/minecraft-data/data/bedrock/latest/types.yml +4 -4
  83. package/minecraft-data/data/dataPaths.json +53 -3
  84. package/minecraft-data/data/pc/1.20.2/loginPacket.json +8464 -0
  85. package/minecraft-data/data/pc/1.20.2/protocol.json +14 -14
  86. package/minecraft-data/data/pc/1.20.2/recipes.json +385 -409
  87. package/minecraft-data/data/pc/1.20.3/blockCollisionShapes.json +136951 -0
  88. package/minecraft-data/data/pc/1.20.3/blocks.json +39334 -0
  89. package/minecraft-data/data/pc/1.20.3/commands.json +18734 -0
  90. package/minecraft-data/data/pc/1.20.3/entities.json +1262 -0
  91. package/minecraft-data/data/pc/1.20.3/foods.json +402 -0
  92. package/minecraft-data/data/pc/1.20.3/items.json +8591 -0
  93. package/minecraft-data/data/pc/1.20.3/language.json +6542 -0
  94. package/minecraft-data/data/pc/1.20.3/materials.json +154 -0
  95. package/minecraft-data/data/pc/1.20.3/particles.json +406 -0
  96. package/minecraft-data/data/pc/1.20.3/recipes.json +15119 -0
  97. package/minecraft-data/data/pc/1.20.3/version.json +5 -0
  98. package/minecraft-data/data/pc/1.20.4/blocks.json +39334 -0
  99. package/minecraft-data/data/pc/1.20.4/version.json +5 -0
  100. package/minecraft-data/data/pc/1.8/items.json +1114 -90
  101. package/minecraft-data/data/pc/common/protocolVersions.json +16 -0
  102. package/minecraft-data/data/pc/common/versions.json +3 -1
  103. package/minecraft-data/doc/history.md +12 -0
  104. package/minecraft-data/tools/js/test/audit_recipes.js +27 -0
  105. package/minecraft-data/tools/js/test/test.js +1 -0
  106. package/package.json +2 -2
  107. package/typings/generate-typings.js +21 -0
  108. package/typings/index-template.d.ts +2 -0
  109. package/typings/test-typings.ts +5 -0
@@ -1,4 +1,20 @@
1
1
  [
2
+ {
3
+ "minecraftVersion": "23w51b",
4
+ "version": 1073741994,
5
+ "dataVersion": 3802,
6
+ "usesNetty": true,
7
+ "majorVersion": "1.20",
8
+ "releaseType": "snapshot"
9
+ },
10
+ {
11
+ "minecraftVersion": "1.20.4",
12
+ "version": 765,
13
+ "dataVersion": 3700,
14
+ "usesNetty": true,
15
+ "majorVersion": "1.20",
16
+ "releaseType": "release"
17
+ },
2
18
  {
3
19
  "minecraftVersion": "1.20.4-rc1",
4
20
  "version": 1073741993,
@@ -54,5 +54,7 @@
54
54
  "1.19.4",
55
55
  "1.20",
56
56
  "1.20.1",
57
- "1.20.2"
57
+ "1.20.2",
58
+ "1.20.3",
59
+ "1.20.4"
58
60
  ]
@@ -1,3 +1,15 @@
1
+ ## 3.52.0
2
+ * [1.20.2: use new anonOptionalNbt and anonymousNbt types from prismarine-nbt, add loginPacket (#810)](https://github.com/PrismarineJS/minecraft-data/commit/15f860a55e2ea4c8a62c0eeeaaf05e30f9efb1ac) (thanks @extremeheat)
3
+
4
+ ## 3.51.0
5
+ * [Fix bedrock recipe text encoding issue (#808)](https://github.com/PrismarineJS/minecraft-data/commit/900ebf212eb2b97fdbca3aa8527d2ec530a90f2b) (thanks @extremeheat)
6
+ * [1.20.2 protocol: nbt data can have different root data types (#807)](https://github.com/PrismarineJS/minecraft-data/commit/37e288067964e403c29d1d2f72a4acc9a5b7ba52) (thanks @extremeheat)
7
+ * [Add 23w51b to pc protocolVersions.json](https://github.com/PrismarineJS/minecraft-data/commit/f851a09e3042247d42ab4f2775f986d39b45b39e) (thanks @github-actions[bot])
8
+ * [Add 1.20.3 and 1.20.4 extract-able data (#803)](https://github.com/PrismarineJS/minecraft-data/commit/b1088724d565819f1f1c8ae4931ca3b2fe609b3a) (thanks @wgaylord)
9
+ * [Improve correctness of 1.8 item varieties data (#772)](https://github.com/PrismarineJS/minecraft-data/commit/cf23a7fa2561cbbbbddaf4adc63449d835ac8f74) (thanks @kaduvert)
10
+ * [Fix 1.20.2 Recipes and add test to check for flipped door Fixed #804 (#805)](https://github.com/PrismarineJS/minecraft-data/commit/0ee510f07de8c72efd3634494ab850c9b550c8be) (thanks @wgaylord)
11
+ * [Add 1.20.4 to pc protocolVersions.json](https://github.com/PrismarineJS/minecraft-data/commit/a63198b3cecdd5397949c49aa123484cce77ceb5) (thanks @github-actions[bot])
12
+
1
13
  ## 3.50.0
2
14
  * [Add bedrock 1.20.50 protocol data (#800)](https://github.com/PrismarineJS/minecraft-data/commit/3dd855a3c0e372daaa210fc698b8040dd693cae8) (thanks @extremeheat)
3
15
 
@@ -90,5 +90,32 @@ require('./version_iterator')(function (p, versionString) {
90
90
  ])
91
91
  }
92
92
  })
93
+ it('iron door not rotated', () => {
94
+ const recipes = getIfExist(path.join(p, 'recipes.json'))
95
+ const items = getIfExist(path.join(p, 'items.json'))
96
+ if (recipes && items) {
97
+ const ironDoor = items.find(x => x.name === 'iron_door')
98
+ const iron = items.find(x => x.name === 'iron_ingot')
99
+
100
+ const recipe = recipes[ironDoor.id]
101
+
102
+ if (!recipe[0]) return
103
+
104
+ assert.deepStrictEqual(recipe[0].inShape, [
105
+ [
106
+ iron.id,
107
+ iron.id
108
+ ],
109
+ [
110
+ iron.id,
111
+ iron.id
112
+ ],
113
+ [
114
+ iron.id,
115
+ iron.id
116
+ ]
117
+ ])
118
+ }
119
+ })
93
120
  })
94
121
  })
@@ -27,6 +27,7 @@ require('./version_iterator')(function (p, versionString) {
27
27
  if (dataName === 'protocol') {
28
28
  const validator = new Validator()
29
29
 
30
+ instance.types.LatinString = 'native' // TODO: Update protodef validator
30
31
  validator.addType('entityMetadataItem', require('../../../schemas/protocol_types/entity_metadata_item.json'))
31
32
  validator.addType('entityMetadataLoop', require('../../../schemas/protocol_types/entity_metadata_loop.json'))
32
33
  validator.validateProtocol(instance)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "minecraft-data",
3
- "version": "3.50.0",
3
+ "version": "3.52.0",
4
4
  "description": "Provide easy access to minecraft data in node.js",
5
5
  "main": "index.js",
6
6
  "tonicExampleFilename": "example.js",
@@ -39,7 +39,7 @@
39
39
  "minecraft-packets": "^1.4.0",
40
40
  "mocha": "^10.0.0",
41
41
  "standard": "^17.0.0",
42
- "typescript": "~5.2.2"
42
+ "typescript": "~5.3.3"
43
43
  },
44
44
  "dependencies": {}
45
45
  }
@@ -1,6 +1,7 @@
1
1
  const { compileFromFile } = require('json-schema-to-typescript')
2
2
  const path = require('path')
3
3
  const fs = require('fs')
4
+ const features = require('../minecraft-data/data/pc/common/features.json')
4
5
 
5
6
  const templateTypings = fs.readFileSync(path.resolve(__dirname, './index-template.d.ts'), 'utf8')
6
7
 
@@ -32,6 +33,26 @@ async function generate () {
32
33
  .map((line) => ' ' + line)
33
34
  .join('\n')
34
35
 
36
+ // #region supports features
37
+ typingString += '\n\n export interface SupportsFeature {\n'
38
+ // prevent duplicates, use last feature with the same name
39
+ const featureNames = features.map(feature => feature.name)
40
+ const featuresUnique = features.filter(({ name }, i) => featureNames.lastIndexOf(name) === i)
41
+ for (const feature of featuresUnique) {
42
+ const versionsRange = feature.values
43
+ ? ''
44
+ : feature.version
45
+ ? feature.version
46
+ : feature.versions.join(' - ')
47
+
48
+ const valueType = feature.values ? feature.values.map(({ value }) => JSON.stringify(value)).join(' | ') : 'boolean'
49
+
50
+ typingString += ' /**' + (versionsRange && ` \`${versionsRange}\``) + '\n' + ' * ' + feature.description + ' */\n'
51
+ typingString += ' "' + feature.name.replaceAll('"', '\\"') + `": ${valueType};\n`
52
+ }
53
+ typingString += ' }\n\n'
54
+ // #endregion
55
+
35
56
  typingString += templateTypings
36
57
  .split('\n')
37
58
  .map((line) => ' ' + line)
@@ -189,6 +189,8 @@ export interface IndexedData {
189
189
  mapIconsArray: MapIcon[]
190
190
 
191
191
  tints: Tints
192
+
193
+ supportFeature: <T extends keyof SupportsFeature>(key: T) => SupportsFeature[T]
192
194
  }
193
195
 
194
196
  const versions: {
@@ -19,6 +19,11 @@ console.log(getMcData.postNettyVersionsByProtocolVersion['pc'][47][0])
19
19
 
20
20
  console.log(getMcData(47).version)
21
21
 
22
+ const supportFeature: boolean = getMcData('1.8.8').supportFeature('mobSpawner')
23
+ console.log(supportFeature)
24
+ const supportFeature2: 'string' | 'short' = getMcData('1.8.8').supportFeature('typeOfValueForEnchantLevel')
25
+ console.log(supportFeature2)
26
+
22
27
  console.log(getMcData('1.8').version)
23
28
 
24
29
  console.log(getMcData('15w40b').version)