fix: held item display was not updated after server/window GUI manipulation on inventory

This commit is contained in:
Vitaly Turovsky 2024-05-13 04:14:16 +03:00
commit 3329d0e75e
2 changed files with 11 additions and 1 deletions

View file

@ -547,6 +547,15 @@ async function connect (connectOptions: ConnectOptions) {
window.Vec3 = Vec3
window.pathfinder = pathfinder
// patch mineflayer
// todo move to mineflayer
bot.inventory.on('updateSlot', (index) => {
if ((index as unknown as number) === bot.quickBarSlot + bot.inventory.hotbarStart) {
//@ts-expect-error
bot.emit('heldItemChanged')
}
})
miscUiState.gameLoaded = true
miscUiState.loadedServerIndex = connectOptions.serverIndex ?? ''
customEvents.emit('gameLoaded')

View file

@ -20,13 +20,14 @@ export default () => {
return canvas.toDataURL('image/png')
})
// TODO delete maps!
const updateHeldMap = () => {
setDataUrl(null)
if (!bot.heldItem || !['filled_map', 'map'].includes(bot.heldItem.name)) return
// setDataUrl(true)
const mapNumber = (bot.heldItem?.nbt?.value as any)?.map?.value
// if (!mapNumber) return
setDataUrl(bot.mapDownloader.maps[mapNumber] as unknown as string)
setDataUrl(bot.mapDownloader.maps?.[mapNumber] as unknown as string)
}
bot.on('heldItemChanged' as any, () => {