Skip to content

Commit 09815d2

Browse files
authored
1.20.5 (#118)
* 1.20.5 * Update index.js * Update index.js * Update index.js * Update index.js * Update index.js
1 parent 094e32a commit 09815d2

File tree

1 file changed

+27
-3
lines changed

1 file changed

+27
-3
lines changed

index.js

+27-3
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,12 @@ function loader (registryOrVersion) {
1818
this.metadata = metadata == null ? 0 : metadata
1919
this.nbt = nbt || null
2020

21+
// pc 1.20.5, TODO: properly implement...
22+
if (registry.supportFeature('itemsWithComponents')) {
23+
this.components = []
24+
this.removedComponents = []
25+
}
26+
2127
// Probably add a new feature to mcdata, e.g itemsCanHaveStackId
2228
if (registry.type === 'bedrock') {
2329
if (stackId == null && !sentByServer) stackId = Item.nextStackId()
@@ -77,7 +83,17 @@ function loader (registryOrVersion) {
7783
const hasNBT = item && item.nbt && Object.keys(item.nbt.value).length > 0
7884

7985
if (registry.type === 'pc') {
80-
if (registry.supportFeature('itemSerializationAllowsPresent')) {
86+
if (registry.supportFeature('itemsWithComponents')) {
87+
if (!item) return { itemCount: 0 }
88+
return {
89+
itemCount: item.count,
90+
itemId: item.type,
91+
addedComponentCount: item.components.length,
92+
removedComponentCount: item.removedComponents.length,
93+
components: item.components,
94+
removeComponents: item.removedComponents
95+
}
96+
} else if (registry.supportFeature('itemSerializationAllowsPresent')) {
8197
if (item == null) return { present: false }
8298
return {
8399
present: true,
@@ -130,7 +146,13 @@ function loader (registryOrVersion) {
130146

131147
static fromNotch (networkItem, stackId) {
132148
if (registry.type === 'pc') {
133-
if (registry.supportFeature('itemSerializationWillOnlyUsePresent')) {
149+
if (registry.supportFeature('itemsWithComponents')) { // 1.20.5+
150+
if (networkItem.itemCount === 0) return null
151+
const item = new Item(networkItem.itemId, networkItem.itemCount, null, null, true)
152+
item.components = networkItem.components
153+
item.removedComponents = networkItem.removeComponents
154+
return item
155+
} else if (registry.supportFeature('itemSerializationWillOnlyUsePresent')) {
134156
if (networkItem.present === false) return null
135157
return new Item(networkItem.itemId, networkItem.itemCount, networkItem.nbtData, null, true)
136158
} else if (registry.supportFeature('itemSerializationAllowsPresent')) {
@@ -139,6 +161,8 @@ function loader (registryOrVersion) {
139161
} else if (registry.supportFeature('itemSerializationUsesBlockId')) {
140162
if (networkItem.blockId === -1) return null
141163
return new Item(networkItem.blockId, networkItem.itemCount, networkItem.itemDamage, networkItem.nbtData, null, true)
164+
} else {
165+
throw new Error('Unknown Minecraft item version')
142166
}
143167
} else if (registry.type === 'bedrock') {
144168
if (networkItem.network_id === 0) return null
@@ -155,7 +179,7 @@ function loader (registryOrVersion) {
155179
return item
156180
}
157181
}
158-
throw new Error("Don't know how to deserialize for this mc version ")
182+
throw new Error("Don't know how to deserialize for this mc version")
159183
}
160184

161185
get customName () {

0 commit comments

Comments
 (0)