Skip to content

Commit 3b95039

Browse files
committed
fix: fix custom item display on 1.21.4, fix text component potential crash
1 parent 795f241 commit 3b95039

File tree

3 files changed

+5
-30
lines changed

3 files changed

+5
-30
lines changed

src/chatUtils.test.ts

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -11,24 +11,6 @@ const mapIncludeDefined = (props) => {
1111
}
1212
}
1313

14-
/*
15-
TODO (nbt)
16-
{
17-
"extra": [
18-
{
19-
"italic": 0,
20-
"underlined": 0,
21-
"bold": 0,
22-
"color": "aqua",
23-
"obfuscated": 0,
24-
"strikethrough": 0,
25-
"text": "minecraft:lift"
26-
}
27-
],
28-
"text": ""
29-
}
30-
*/
31-
3214
test('formatMessage', () => {
3315
const result = formatMessage({
3416
'json': {

src/mineflayer/items.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ export const getItemMetadata = (item: GeneralInputItem) => {
3838

3939
const customTextComponent = componentMap.get('custom_name') || componentMap.get('item_name')
4040
if (customTextComponent) {
41-
customText = customTextComponent.data.value
41+
customText = nbt.simplify(customTextComponent.data)
4242
}
4343
const customModelComponent = componentMap.get('item_model')
4444
if (customModelComponent) {
@@ -70,6 +70,9 @@ export const getItemNameRaw = (item: Pick<import('prismarine-item').Item, 'nbt'>
7070
const { customText } = getItemMetadata(item as any)
7171
if (!customText) return
7272
try {
73+
if (typeof customText === 'object') {
74+
return customText
75+
}
7376
const parsed = customText.startsWith('{') && customText.endsWith('}') ? mojangson.simplify(mojangson.parse(customText)) : fromFormattedString(customText)
7477
if (parsed.extra) {
7578
return parsed as Record<string, any>
@@ -78,7 +81,7 @@ export const getItemNameRaw = (item: Pick<import('prismarine-item').Item, 'nbt'>
7881
}
7982
} catch (err) {
8083
return {
81-
text: customText
84+
text: JSON.stringify(customText)
8285
}
8386
}
8487
}

src/react/MessageFormattedString.tsx

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,6 @@ export default ({ message, fallbackColor, className }: {
1212
}) => {
1313
const messageJson = useMemo(() => {
1414
if (!message) return null
15-
// const transformIfNbt = (x) => {
16-
// if (typeof x === 'object' && x?.type) return nbt.simplify(x) as Record<string, any>
17-
// // if (Array.isArray(x)) return x.map(transformIfNbt)
18-
// // if (typeof x === 'object') return Object.fromEntries(Object.entries(x).map(([k, v]) => [k, transformIfNbt(v)]))
19-
// return x
20-
// }
21-
// if (typeof message === 'object' && message.text?.text?.type) {
22-
// message.text.text = transformIfNbt(message.text.text)
23-
// message.text.extra = transformIfNbt(message.text.extra)
24-
// }
2515
try {
2616
const texts = formatMessage(typeof message === 'string' ? fromFormattedString(message) : message)
2717
return texts.map(text => {

0 commit comments

Comments
 (0)