minecraft-data 3.44.0 → 3.46.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 (63) hide show
  1. package/data.js +23 -1
  2. package/doc/history.md +8 -0
  3. package/index.d.ts +4 -1
  4. package/minecraft-data/.github/helper-bot/index.js +58 -59
  5. package/minecraft-data/.github/workflows/update-helper.yml +1 -1
  6. package/minecraft-data/README.md +1 -1
  7. package/minecraft-data/data/bedrock/1.16.220/protocol.json +1 -1
  8. package/minecraft-data/data/bedrock/1.16.220/types.yml +2 -2
  9. package/minecraft-data/data/bedrock/1.17.0/protocol.json +1 -1
  10. package/minecraft-data/data/bedrock/1.17.0/types.yml +2 -2
  11. package/minecraft-data/data/bedrock/1.17.10/protocol.json +1 -1
  12. package/minecraft-data/data/bedrock/1.17.10/types.yml +2 -2
  13. package/minecraft-data/data/bedrock/1.17.30/protocol.json +1 -1
  14. package/minecraft-data/data/bedrock/1.17.30/types.yml +2 -2
  15. package/minecraft-data/data/bedrock/1.17.40/protocol.json +1 -1
  16. package/minecraft-data/data/bedrock/1.17.40/types.yml +2 -2
  17. package/minecraft-data/data/bedrock/1.18.0/protocol.json +1 -1
  18. package/minecraft-data/data/bedrock/1.18.0/types.yml +2 -2
  19. package/minecraft-data/data/bedrock/1.18.11/protocol.json +1 -1
  20. package/minecraft-data/data/bedrock/1.18.11/types.yml +2 -2
  21. package/minecraft-data/data/bedrock/1.18.30/protocol.json +1 -1
  22. package/minecraft-data/data/bedrock/1.18.30/types.yml +2 -2
  23. package/minecraft-data/data/bedrock/1.19.1/protocol.json +1 -1
  24. package/minecraft-data/data/bedrock/1.19.1/types.yml +2 -2
  25. package/minecraft-data/data/bedrock/1.19.10/protocol.json +1 -1
  26. package/minecraft-data/data/bedrock/1.19.10/types.yml +1 -1
  27. package/minecraft-data/data/bedrock/1.19.20/protocol.json +1 -1
  28. package/minecraft-data/data/bedrock/1.19.20/types.yml +1 -1
  29. package/minecraft-data/data/bedrock/1.19.21/protocol.json +1 -1
  30. package/minecraft-data/data/bedrock/1.19.21/types.yml +1 -1
  31. package/minecraft-data/data/bedrock/1.19.30/protocol.json +1 -1
  32. package/minecraft-data/data/bedrock/1.19.30/types.yml +1 -1
  33. package/minecraft-data/data/bedrock/1.19.40/protocol.json +1 -1
  34. package/minecraft-data/data/bedrock/1.19.40/types.yml +1 -1
  35. package/minecraft-data/data/bedrock/1.19.50/protocol.json +1 -1
  36. package/minecraft-data/data/bedrock/1.19.50/types.yml +1 -1
  37. package/minecraft-data/data/bedrock/1.19.60/protocol.json +1 -1
  38. package/minecraft-data/data/bedrock/1.19.60/types.yml +1 -1
  39. package/minecraft-data/data/bedrock/1.19.62/protocol.json +1 -1
  40. package/minecraft-data/data/bedrock/1.19.62/types.yml +1 -1
  41. package/minecraft-data/data/bedrock/1.19.70/protocol.json +1 -1
  42. package/minecraft-data/data/bedrock/1.19.70/types.yml +1 -1
  43. package/minecraft-data/data/bedrock/1.19.80/protocol.json +1 -1
  44. package/minecraft-data/data/bedrock/1.19.80/types.yml +1 -1
  45. package/minecraft-data/data/bedrock/1.20.0/protocol.json +1 -1
  46. package/minecraft-data/data/bedrock/1.20.0/types.yml +1 -1
  47. package/minecraft-data/data/bedrock/1.20.10/proto.yml +4021 -0
  48. package/minecraft-data/data/bedrock/1.20.10/protocol.json +1 -1
  49. package/minecraft-data/data/bedrock/1.20.10/types.yml +2101 -0
  50. package/minecraft-data/data/bedrock/1.20.30/protocol.json +11748 -0
  51. package/minecraft-data/data/bedrock/1.20.30/version.json +6 -0
  52. package/minecraft-data/data/bedrock/common/features.json +10 -0
  53. package/minecraft-data/data/bedrock/common/protocolVersions.json +6 -0
  54. package/minecraft-data/data/bedrock/common/versions.json +2 -1
  55. package/minecraft-data/data/bedrock/latest/proto.yml +80 -9
  56. package/minecraft-data/data/bedrock/latest/types.yml +17 -1
  57. package/minecraft-data/data/dataPaths.json +24 -2
  58. package/minecraft-data/data/pc/1.20/blocks.json +18251 -16821
  59. package/minecraft-data/data/pc/common/features.json +16 -1
  60. package/minecraft-data/data/pc/common/protocolVersions.json +64 -0
  61. package/minecraft-data/doc/history.md +10 -0
  62. package/package.json +1 -1
  63. package/typings/index-template.d.ts +4 -1
package/data.js CHANGED
@@ -1782,9 +1782,31 @@ module.exports =
1782
1782
  get steve () { return require("./minecraft-data/data/bedrock/1.16.201/steve.json") },
1783
1783
  get blocksB2J () { return require("./minecraft-data/data/bedrock/1.20.0/blocksB2J.json") },
1784
1784
  get blocksJ2B () { return require("./minecraft-data/data/bedrock/1.20.0/blocksJ2B.json") },
1785
+ proto: __dirname + '/minecraft-data/data/bedrock/1.20.10/proto.yml',
1786
+ types: __dirname + '/minecraft-data/data/bedrock/1.20.10/types.yml',
1787
+ get version () { return require("./minecraft-data/data/bedrock/1.20.10/version.json") },
1788
+ get language () { return require("./minecraft-data/data/bedrock/1.20.10/language.json") }
1789
+ },
1790
+ '1.20.30': {
1791
+ get blocks () { return require("./minecraft-data/data/bedrock/1.20.0/blocks.json") },
1792
+ get blockStates () { return require("./minecraft-data/data/bedrock/1.20.0/blockStates.json") },
1793
+ get blockCollisionShapes () { return require("./minecraft-data/data/bedrock/1.20.0/blockCollisionShapes.json") },
1794
+ get biomes () { return require("./minecraft-data/data/bedrock/1.20.0/biomes.json") },
1795
+ get entities () { return require("./minecraft-data/data/bedrock/1.19.1/entities.json") },
1796
+ get items () { return require("./minecraft-data/data/bedrock/1.20.0/items.json") },
1797
+ get recipes () { return require("./minecraft-data/data/bedrock/1.19.10/recipes.json") },
1798
+ get instruments () { return require("./minecraft-data/data/bedrock/1.17.0/instruments.json") },
1799
+ get materials () { return require("./minecraft-data/data/pc/1.17/materials.json") },
1800
+ get enchantments () { return require("./minecraft-data/data/bedrock/1.19.1/enchantments.json") },
1801
+ get effects () { return require("./minecraft-data/data/pc/1.17/effects.json") },
1802
+ get protocol () { return require("./minecraft-data/data/bedrock/1.20.30/protocol.json") },
1803
+ get windows () { return require("./minecraft-data/data/bedrock/1.16.201/windows.json") },
1804
+ get steve () { return require("./minecraft-data/data/bedrock/1.16.201/steve.json") },
1805
+ get blocksB2J () { return require("./minecraft-data/data/bedrock/1.20.0/blocksB2J.json") },
1806
+ get blocksJ2B () { return require("./minecraft-data/data/bedrock/1.20.0/blocksJ2B.json") },
1785
1807
  proto: __dirname + '/minecraft-data/data/bedrock/latest/proto.yml',
1786
1808
  types: __dirname + '/minecraft-data/data/bedrock/latest/types.yml',
1787
- get version () { return require("./minecraft-data/data/bedrock/1.20.10/version.json") },
1809
+ get version () { return require("./minecraft-data/data/bedrock/1.20.30/version.json") },
1788
1810
  get language () { return require("./minecraft-data/data/bedrock/1.20.10/language.json") }
1789
1811
  }
1790
1812
  }
package/doc/history.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # History
2
2
 
3
+ ## 3.46.0
4
+
5
+ * update `minecraft-data`
6
+
7
+ ## 3.45.0
8
+
9
+ * update `minecraft-data`
10
+
3
11
  ## 3.44.0
4
12
 
5
13
  * update `minecraft-data`
package/index.d.ts CHANGED
@@ -1024,7 +1024,10 @@ declare namespace MinecraftData {
1024
1024
  * Bedrock edition only
1025
1025
  */
1026
1026
  blockStates?: { name: string; states: object; version: number }[]
1027
- blockCollisionShapes: { blocks: { [name: string]: number[] }; shapes: { [id: number]: [number[]] } }
1027
+ /**
1028
+ * id is the shape id of the block converted to a string
1029
+ */
1030
+ blockCollisionShapes: { blocks: { [name: string]: number | number[] }; shapes: { [id: string]: [number[]] } }
1028
1031
 
1029
1032
  loginPacket: LoginPacket
1030
1033
 
@@ -1,28 +1,9 @@
1
1
  const fs = require('fs')
2
2
  const cp = require('child_process')
3
- const https = require('https')
4
3
  const helper = require('./github-helper')
5
4
  const pcManifestURL = 'https://launchermeta.mojang.com/mc/game/version_manifest.json'
6
5
  const changelogURL = 'https://feedback.minecraft.net/hc/en-us/sections/360001186971-Release-Changelogs'
7
6
 
8
- // this is a polyfill for node <18
9
- const fetch = globalThis.fetch || function (url) {
10
- return new Promise((resolve, reject) => {
11
- https.get(url, (res) => {
12
- let data = ''
13
- res.on('data', (chunk) => {
14
- data += chunk
15
- })
16
- res.on('end', () => {
17
- resolve({
18
- ok: true,
19
- text: () => Promise.resolve(data),
20
- json: () => Promise.resolve(JSON.parse(data))
21
- })
22
- })
23
- }).on('error', reject)
24
- })
25
- }
26
7
  const download = (url, dest) => cp.execSync(`curl -L ${url} -o ${dest}`)
27
8
 
28
9
  function buildFirstIssue (title, result, jarData) {
@@ -65,43 +46,78 @@ async function updateManifestPC () {
65
46
  const manifest = await fetch(pcManifestURL).then(res => res.json())
66
47
  // fs.writeFileSync('./manifest.json', JSON.stringify(manifest, null, 2))
67
48
  const knownVersions = protocolVersions.pc.reduce((acc, cur) => (acc[cur.minecraftVersion] = cur, acc), {})
68
- const latestRelease = manifest.latest.release
49
+ const latestVersion = manifest.latest.snapshot
50
+ const latestVersionData = manifest.versions.find(v => v.id === latestVersion)
51
+ const latestVersionIsSnapshot = latestVersionData.type !== 'release'
69
52
 
70
- const title = `Support Minecraft PC ${latestRelease}`
53
+ const title = `Support Minecraft PC ${latestVersion}`
71
54
  const issueStatus = await helper.getIssueStatus(title)
72
55
 
73
- if (supportedVersions.pc.includes(latestRelease)) {
74
- if (issueStatus.open) {
75
- helper.close(issueStatus.id, `Closing as PC ${latestRelease} is now supported`)
56
+ if (latestVersionIsSnapshot) {
57
+ // don't make issues for snapshots
58
+ if (supportedVersions.pc.includes(latestVersion) || knownVersions[latestVersion]) {
59
+ console.log('Latest version is a known snapshot, no work to do')
60
+ return
76
61
  }
77
- console.log('Latest PC version is supported.')
78
- return
79
- } else if (knownVersions[latestRelease]) {
80
- console.log(`Latest PC version ${latestRelease} is known in protocolVersions.json, but not in versions.json (protocol version ${knownVersions[latestRelease].version})`)
81
- return
82
62
  } else {
83
- console.log(`Latest PC version ${latestRelease} is not known in protocolVersions.json, adding and making issue`)
63
+ if (supportedVersions.pc.includes(latestVersion)) {
64
+ if (issueStatus.open) {
65
+ helper.close(issueStatus.id, `Closing as PC ${latestVersion} is now supported`)
66
+ }
67
+ console.log('Latest PC version is supported.')
68
+ return
69
+ } else if (knownVersions[latestVersion]) {
70
+ console.log(`Latest PC version ${latestVersion} is known in protocolVersions.json, but not in versions.json (protocol version ${knownVersions[latestVersion].version})`)
71
+ return
72
+ } else {
73
+ console.log(`Latest PC version ${latestVersion} is not known in protocolVersions.json, adding and making issue`)
74
+ }
84
75
  }
85
- const latestReleaseData = manifest.versions.find(v => v.id === latestRelease)
86
76
 
87
- // Note: We don't use the below check to track if the version is supported properly or not
88
- // (data like protocol/blocks/items/etc is present), just to make sure the known protocol version is correct.
77
+ let versionJson
89
78
  try {
90
- const latestReleaseManifest = await fetch(latestReleaseData.url).then(res => res.json())
79
+ versionJson = await addEntryFor(latestVersion, latestVersionData)
80
+ } catch (e) {
81
+ console.error(e)
82
+
83
+ if (latestVersionIsSnapshot) {
84
+ console.warn('Failed to update protocolVersions.json for the snapshot', latestVersion)
85
+ } else {
86
+ console.log('Latest PC version is not supported and we failed to load data. Opening issue...')
87
+ const issuePayload = buildFirstIssue(title, latestVersionData)
88
+ helper.createIssue(issuePayload)
89
+
90
+ fs.writeFileSync('./issue.md', issuePayload.body)
91
+ console.log('OK, wrote to ./issue.md', issuePayload)
92
+ }
93
+ }
94
+
95
+ if (!latestVersionIsSnapshot && !issueStatus.open && !issueStatus.closed) {
96
+ console.log('Opening issue', versionJson)
97
+ const issuePayload = buildFirstIssue(title, latestVersionData, versionJson)
98
+
99
+ helper.createIssue(issuePayload)
100
+
101
+ fs.writeFileSync('./issue.md', issuePayload.body)
102
+ console.log('OK, wrote to ./issue.md', issuePayload)
103
+ }
104
+
105
+ async function addEntryFor (releaseVersion, releaseData) {
106
+ const latestReleaseManifest = await fetch(releaseData.url).then(res => res.json())
91
107
  // Download client jar
92
- if (!fs.existsSync(`./${latestRelease}.jar`)) {
108
+ if (!fs.existsSync(`./${releaseVersion}.jar`)) {
93
109
  const clientJarUrl = latestReleaseManifest.downloads.client.url
94
110
  console.log('Downloading client jar', clientJarUrl)
95
- download(clientJarUrl, `./${latestRelease}.jar`)
111
+ download(clientJarUrl, `./${releaseVersion}.jar`)
96
112
  }
97
113
 
98
114
  // Log the byte size of the client jar
99
- const clientJarSize = fs.statSync(`./${latestRelease}.jar`).size
100
- console.log(`Downloaded client jar ${latestRelease}.jar (${clientJarSize} bytes), extracting its version.json...`)
115
+ const clientJarSize = fs.statSync(`./${releaseVersion}.jar`).size
116
+ console.log(`Downloaded client jar ${releaseVersion}.jar (${clientJarSize} bytes), extracting its version.json...`)
101
117
 
102
118
  // unzip with tar / unzip, Actions image uses 7z
103
- if (process.platform === 'win32') cp.execSync(`tar -xf ./${latestRelease}.jar version.json`)
104
- else cp.execSync(`7z -y e ./${latestRelease}.jar version.json`, { stdio: 'inherit' })
119
+ if (process.platform === 'win32') cp.execSync(`tar -xf ./${releaseVersion}.jar version.json`)
120
+ else cp.execSync(`7z -y e ./${releaseVersion}.jar version.json`, { stdio: 'inherit' })
105
121
  const versionJson = require('./version.json')
106
122
 
107
123
  let majorVersion
@@ -118,7 +134,7 @@ async function updateManifestPC () {
118
134
  dataVersion: versionJson.world_version,
119
135
  usesNetty: true,
120
136
  majorVersion,
121
- releaseType: latestReleaseData.type
137
+ releaseType: latestVersionData.type
122
138
  }
123
139
  console.log('Adding new entry to pc protocolVersions.json', newEntry)
124
140
  const updatedProtocolVersions = [newEntry, ...protocolVersions.pc]
@@ -134,24 +150,7 @@ async function updateManifestPC () {
134
150
  cp.execSync('git push')
135
151
  }
136
152
 
137
- if (!issueStatus.open && !issueStatus.closed) {
138
- console.log('Opening issue', versionJson)
139
- const issuePayload = buildFirstIssue(title, latestReleaseData, versionJson)
140
-
141
- helper.createIssue(issuePayload)
142
-
143
- fs.writeFileSync('./issue.md', issuePayload.body)
144
- console.log('OK, wrote to ./issue.md', issuePayload)
145
- }
146
- } catch (e) {
147
- console.error(e)
148
-
149
- console.log('Latest PC version is not supported and we failed to load data. Opening issue...')
150
- const issuePayload = buildFirstIssue(title, latestReleaseData)
151
- helper.createIssue(issuePayload)
152
-
153
- fs.writeFileSync('./issue.md', issuePayload.body)
154
- console.log('OK, wrote to ./issue.md', issuePayload)
153
+ return versionJson
155
154
  }
156
155
  }
157
156
 
@@ -14,7 +14,7 @@ jobs:
14
14
  - name: Set up Node.js
15
15
  uses: actions/setup-node@master
16
16
  with:
17
- node-version: 16.0.0
17
+ node-version: 18.0.0
18
18
  - name: Install Github Actions toolkit
19
19
  run: npm i @actions/github
20
20
  working-directory: .github/helper-bot
@@ -10,7 +10,7 @@ Language independent module providing minecraft data for minecraft clients, serv
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
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
- * 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, 1.20.10
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, 1.20.10, 1.20.30
14
14
 
15
15
 
16
16
  ## Wrappers
@@ -481,7 +481,7 @@
481
481
  },
482
482
  {
483
483
  "name": "has_stack_id",
484
- "type": "u8"
484
+ "type": "bool"
485
485
  },
486
486
  {
487
487
  "name": "stack_id",
@@ -129,7 +129,7 @@ Item:
129
129
  metadata: varint
130
130
  # When server authoritative inventory is enabled, all allocated items have a unique ID used to identify
131
131
  # a specifc item instance.
132
- has_stack_id: u8
132
+ has_stack_id: bool
133
133
  # StackNetworkID is the network ID of this item *instance*. If the stack is empty, 0 is always written for this
134
134
  # field. If not, the field should be set to 1 if the server authoritative inventories are disabled in the
135
135
  # StartGame packet, or to a unique stack ID if it is enabled.
@@ -1656,4 +1656,4 @@ LegacyEntityType: li32 =>
1656
1656
  110: drowned
1657
1657
  111: tropicalfish
1658
1658
  112: cod
1659
- 113: panda
1659
+ 113: panda
@@ -485,7 +485,7 @@
485
485
  },
486
486
  {
487
487
  "name": "has_stack_id",
488
- "type": "u8"
488
+ "type": "bool"
489
489
  },
490
490
  {
491
491
  "name": "stack_id",
@@ -130,7 +130,7 @@ Item:
130
130
  metadata: varint
131
131
  # When server authoritative inventory is enabled, all allocated items have a unique ID used to identify
132
132
  # a specifc item instance.
133
- has_stack_id: u8
133
+ has_stack_id: bool
134
134
  # StackNetworkID is the network ID of this item *instance*. If the stack is empty, 0 is always written for this
135
135
  # field. If not, the field should be set to 1 if the server authoritative inventories are disabled in the
136
136
  # StartGame packet, or to a unique stack ID if it is enabled.
@@ -1698,4 +1698,4 @@ LegacyEntityType: li32 =>
1698
1698
  110: drowned
1699
1699
  111: tropicalfish
1700
1700
  112: cod
1701
- 113: panda
1701
+ 113: panda
@@ -485,7 +485,7 @@
485
485
  },
486
486
  {
487
487
  "name": "has_stack_id",
488
- "type": "u8"
488
+ "type": "bool"
489
489
  },
490
490
  {
491
491
  "name": "stack_id",
@@ -130,7 +130,7 @@ Item:
130
130
  metadata: varint
131
131
  # When server authoritative inventory is enabled, all allocated items have a unique ID used to identify
132
132
  # a specifc item instance.
133
- has_stack_id: u8
133
+ has_stack_id: bool
134
134
  # StackNetworkID is the network ID of this item *instance*. If the stack is empty, 0 is always written for this
135
135
  # field. If not, the field should be set to 1 if the server authoritative inventories are disabled in the
136
136
  # StartGame packet, or to a unique stack ID if it is enabled.
@@ -1700,4 +1700,4 @@ LegacyEntityType: li32 =>
1700
1700
  110: drowned
1701
1701
  111: tropicalfish
1702
1702
  112: cod
1703
- 113: panda
1703
+ 113: panda
@@ -485,7 +485,7 @@
485
485
  },
486
486
  {
487
487
  "name": "has_stack_id",
488
- "type": "u8"
488
+ "type": "bool"
489
489
  },
490
490
  {
491
491
  "name": "stack_id",
@@ -130,7 +130,7 @@ Item:
130
130
  metadata: varint
131
131
  # When server authoritative inventory is enabled, all allocated items have a unique ID used to identify
132
132
  # a specifc item instance.
133
- has_stack_id: u8
133
+ has_stack_id: bool
134
134
  # StackNetworkID is the network ID of this item *instance*. If the stack is empty, 0 is always written for this
135
135
  # field. If not, the field should be set to 1 if the server authoritative inventories are disabled in the
136
136
  # StartGame packet, or to a unique stack ID if it is enabled.
@@ -1746,4 +1746,4 @@ LegacyEntityType: li32 =>
1746
1746
  110: drowned
1747
1747
  111: tropicalfish
1748
1748
  112: cod
1749
- 113: panda
1749
+ 113: panda
@@ -485,7 +485,7 @@
485
485
  },
486
486
  {
487
487
  "name": "has_stack_id",
488
- "type": "u8"
488
+ "type": "bool"
489
489
  },
490
490
  {
491
491
  "name": "stack_id",
@@ -130,7 +130,7 @@ Item:
130
130
  metadata: varint
131
131
  # When server authoritative inventory is enabled, all allocated items have a unique ID used to identify
132
132
  # a specifc item instance.
133
- has_stack_id: u8
133
+ has_stack_id: bool
134
134
  # StackNetworkID is the network ID of this item *instance*. If the stack is empty, 0 is always written for this
135
135
  # field. If not, the field should be set to 1 if the server authoritative inventories are disabled in the
136
136
  # StartGame packet, or to a unique stack ID if it is enabled.
@@ -1761,4 +1761,4 @@ LegacyEntityType: li32 =>
1761
1761
  110: drowned
1762
1762
  111: tropicalfish
1763
1763
  112: cod
1764
- 113: panda
1764
+ 113: panda
@@ -485,7 +485,7 @@
485
485
  },
486
486
  {
487
487
  "name": "has_stack_id",
488
- "type": "u8"
488
+ "type": "bool"
489
489
  },
490
490
  {
491
491
  "name": "stack_id",
@@ -130,7 +130,7 @@ Item:
130
130
  metadata: varint
131
131
  # When server authoritative inventory is enabled, all allocated items have a unique ID used to identify
132
132
  # a specifc item instance.
133
- has_stack_id: u8
133
+ has_stack_id: bool
134
134
  # StackNetworkID is the network ID of this item *instance*. If the stack is empty, 0 is always written for this
135
135
  # field. If not, the field should be set to 1 if the server authoritative inventories are disabled in the
136
136
  # StartGame packet, or to a unique stack ID if it is enabled.
@@ -1771,4 +1771,4 @@ LegacyEntityType: li32 =>
1771
1771
  110: drowned
1772
1772
  111: tropicalfish
1773
1773
  112: cod
1774
- 113: panda
1774
+ 113: panda
@@ -485,7 +485,7 @@
485
485
  },
486
486
  {
487
487
  "name": "has_stack_id",
488
- "type": "u8"
488
+ "type": "bool"
489
489
  },
490
490
  {
491
491
  "name": "stack_id",
@@ -130,7 +130,7 @@ Item:
130
130
  metadata: varint
131
131
  # When server authoritative inventory is enabled, all allocated items have a unique ID used to identify
132
132
  # a specifc item instance.
133
- has_stack_id: u8
133
+ has_stack_id: bool
134
134
  # StackNetworkID is the network ID of this item *instance*. If the stack is empty, 0 is always written for this
135
135
  # field. If not, the field should be set to 1 if the server authoritative inventories are disabled in the
136
136
  # StartGame packet, or to a unique stack ID if it is enabled.
@@ -1800,4 +1800,4 @@ DeviceOS: li32 =>
1800
1800
  - Orbis
1801
1801
  - NintendoSwitch
1802
1802
  - Xbox
1803
- - WindowsPhone
1803
+ - WindowsPhone
@@ -486,7 +486,7 @@
486
486
  },
487
487
  {
488
488
  "name": "has_stack_id",
489
- "type": "u8"
489
+ "type": "bool"
490
490
  },
491
491
  {
492
492
  "name": "stack_id",
@@ -131,7 +131,7 @@ Item:
131
131
  metadata: varint
132
132
  # When server authoritative inventory is enabled, all allocated items have a unique ID used to identify
133
133
  # a specifc item instance.
134
- has_stack_id: u8
134
+ has_stack_id: bool
135
135
  # StackNetworkID is the network ID of this item *instance*. If the stack is empty, 0 is always written for this
136
136
  # field. If not, the field should be set to 1 if the server authoritative inventories are disabled in the
137
137
  # StartGame packet, or to a unique stack ID if it is enabled.
@@ -1857,4 +1857,4 @@ DeviceOS: li32 =>
1857
1857
  - Orbis
1858
1858
  - NintendoSwitch
1859
1859
  - Xbox
1860
- - WindowsPhone
1860
+ - WindowsPhone
@@ -486,7 +486,7 @@
486
486
  },
487
487
  {
488
488
  "name": "has_stack_id",
489
- "type": "u8"
489
+ "type": "bool"
490
490
  },
491
491
  {
492
492
  "name": "stack_id",
@@ -131,7 +131,7 @@ Item:
131
131
  metadata: varint
132
132
  # When server authoritative inventory is enabled, all allocated items have a unique ID used to identify
133
133
  # a specifc item instance.
134
- has_stack_id: u8
134
+ has_stack_id: bool
135
135
  # StackNetworkID is the network ID of this item *instance*. If the stack is empty, 0 is always written for this
136
136
  # field. If not, the field should be set to 1 if the server authoritative inventories are disabled in the
137
137
  # StartGame packet, or to a unique stack ID if it is enabled.
@@ -1884,4 +1884,4 @@ DeviceOS: li32 =>
1884
1884
  - NintendoSwitch
1885
1885
  - Xbox
1886
1886
  - WindowsPhone
1887
- - Linux
1887
+ - Linux
@@ -486,7 +486,7 @@
486
486
  },
487
487
  {
488
488
  "name": "has_stack_id",
489
- "type": "u8"
489
+ "type": "bool"
490
490
  },
491
491
  {
492
492
  "name": "stack_id",
@@ -131,7 +131,7 @@ Item:
131
131
  metadata: varint
132
132
  # When server authoritative inventory is enabled, all allocated items have a unique ID used to identify
133
133
  # a specifc item instance.
134
- has_stack_id: u8
134
+ has_stack_id: bool
135
135
  # StackNetworkID is the network ID of this item *instance*. If the stack is empty, 0 is always written for this
136
136
  # field. If not, the field should be set to 1 if the server authoritative inventories are disabled in the
137
137
  # StartGame packet, or to a unique stack ID if it is enabled.
@@ -486,7 +486,7 @@
486
486
  },
487
487
  {
488
488
  "name": "has_stack_id",
489
- "type": "u8"
489
+ "type": "bool"
490
490
  },
491
491
  {
492
492
  "name": "stack_id",
@@ -131,7 +131,7 @@ Item:
131
131
  metadata: varint
132
132
  # When server authoritative inventory is enabled, all allocated items have a unique ID used to identify
133
133
  # a specifc item instance.
134
- has_stack_id: u8
134
+ has_stack_id: bool
135
135
  # StackNetworkID is the network ID of this item *instance*. If the stack is empty, 0 is always written for this
136
136
  # field. If not, the field should be set to 1 if the server authoritative inventories are disabled in the
137
137
  # StartGame packet, or to a unique stack ID if it is enabled.
@@ -486,7 +486,7 @@
486
486
  },
487
487
  {
488
488
  "name": "has_stack_id",
489
- "type": "u8"
489
+ "type": "bool"
490
490
  },
491
491
  {
492
492
  "name": "stack_id",
@@ -131,7 +131,7 @@ Item:
131
131
  metadata: varint
132
132
  # When server authoritative inventory is enabled, all allocated items have a unique ID used to identify
133
133
  # a specifc item instance.
134
- has_stack_id: u8
134
+ has_stack_id: bool
135
135
  # StackNetworkID is the network ID of this item *instance*. If the stack is empty, 0 is always written for this
136
136
  # field. If not, the field should be set to 1 if the server authoritative inventories are disabled in the
137
137
  # StartGame packet, or to a unique stack ID if it is enabled.
@@ -486,7 +486,7 @@
486
486
  },
487
487
  {
488
488
  "name": "has_stack_id",
489
- "type": "u8"
489
+ "type": "bool"
490
490
  },
491
491
  {
492
492
  "name": "stack_id",
@@ -131,7 +131,7 @@ Item:
131
131
  metadata: varint
132
132
  # When server authoritative inventory is enabled, all allocated items have a unique ID used to identify
133
133
  # a specifc item instance.
134
- has_stack_id: u8
134
+ has_stack_id: bool
135
135
  # StackNetworkID is the network ID of this item *instance*. If the stack is empty, 0 is always written for this
136
136
  # field. If not, the field should be set to 1 if the server authoritative inventories are disabled in the
137
137
  # StartGame packet, or to a unique stack ID if it is enabled.
@@ -486,7 +486,7 @@
486
486
  },
487
487
  {
488
488
  "name": "has_stack_id",
489
- "type": "u8"
489
+ "type": "bool"
490
490
  },
491
491
  {
492
492
  "name": "stack_id",
@@ -131,7 +131,7 @@ Item:
131
131
  metadata: varint
132
132
  # When server authoritative inventory is enabled, all allocated items have a unique ID used to identify
133
133
  # a specifc item instance.
134
- has_stack_id: u8
134
+ has_stack_id: bool
135
135
  # StackNetworkID is the network ID of this item *instance*. If the stack is empty, 0 is always written for this
136
136
  # field. If not, the field should be set to 1 if the server authoritative inventories are disabled in the
137
137
  # StartGame packet, or to a unique stack ID if it is enabled.
@@ -486,7 +486,7 @@
486
486
  },
487
487
  {
488
488
  "name": "has_stack_id",
489
- "type": "u8"
489
+ "type": "bool"
490
490
  },
491
491
  {
492
492
  "name": "stack_id",
@@ -131,7 +131,7 @@ Item:
131
131
  metadata: varint
132
132
  # When server authoritative inventory is enabled, all allocated items have a unique ID used to identify
133
133
  # a specifc item instance.
134
- has_stack_id: u8
134
+ has_stack_id: bool
135
135
  # StackNetworkID is the network ID of this item *instance*. If the stack is empty, 0 is always written for this
136
136
  # field. If not, the field should be set to 1 if the server authoritative inventories are disabled in the
137
137
  # StartGame packet, or to a unique stack ID if it is enabled.
@@ -486,7 +486,7 @@
486
486
  },
487
487
  {
488
488
  "name": "has_stack_id",
489
- "type": "u8"
489
+ "type": "bool"
490
490
  },
491
491
  {
492
492
  "name": "stack_id",
@@ -131,7 +131,7 @@ Item:
131
131
  metadata: varint
132
132
  # When server authoritative inventory is enabled, all allocated items have a unique ID used to identify
133
133
  # a specifc item instance.
134
- has_stack_id: u8
134
+ has_stack_id: bool
135
135
  # StackNetworkID is the network ID of this item *instance*. If the stack is empty, 0 is always written for this
136
136
  # field. If not, the field should be set to 1 if the server authoritative inventories are disabled in the
137
137
  # StartGame packet, or to a unique stack ID if it is enabled.
@@ -486,7 +486,7 @@
486
486
  },
487
487
  {
488
488
  "name": "has_stack_id",
489
- "type": "u8"
489
+ "type": "bool"
490
490
  },
491
491
  {
492
492
  "name": "stack_id",