pages235/src/botUtils.ts
2025-03-29 09:19:54 +03:00

49 lines
1 KiB
TypeScript

import { versionToNumber } from 'renderer/viewer/common/utils'
import * as nbt from 'prismarine-nbt'
export const displayClientChat = (text: string) => {
const message = {
text
}
if (versionToNumber(bot.version) >= versionToNumber('1.19')) {
bot._client.emit('systemChat', {
formattedMessage: JSON.stringify(message),
position: 0,
sender: 'minecraft:chat'
})
return
}
bot._client.emit('chat', {
message: JSON.stringify(message),
position: 0,
sender: 'minecraft:chat'
})
}
export const parseFormattedMessagePacket = (arg) => {
if (typeof arg === 'string') {
try {
arg = JSON.parse(arg)
return {
formatted: arg,
plain: ''
}
} catch {}
}
if (typeof arg === 'object') {
try {
return {
formatted: nbt.simplify(arg),
plain: ''
}
} catch (err) {
console.warn('Failed to parse formatted message', arg, err)
return {
plain: JSON.stringify(arg)
}
}
}
return {
plain: String(arg)
}
}