Search code examples
node.jsminecraftmineflayer

How do you get the bot to move in node-minecraft-protocol?


I am trying to build a JavaScript Minecraft bot. I tried Mineflayer, but they do not support version 1.17.1. That's when I found out about node-minecraft-protocol, the library which mineflayer is based out of. They support version 1.17.1! I have been trying to make my bot move for the past three days, but I'm not able to figure it out from the docs. I even tried looking into mineflayer's code! Connecting to the server, sending chat messages, reading chat messages, and reading current position are all fine! It's moving the bot that gives me trouble. Or for that matter, flying, looking or anything similar (that takes f64/f32 values as input). To give you an idea of what I'm trying to achieve, here is something that I have tried running (-181.52092902441308, 84, and 134.53013736121238 are the spawn coordinates):

client.write('position', {
    x: -182.52092902441308,
    y: 84,
    z: 134.53013736121238
})

Solution

  • I fixed it, for anyone who's looking for an answer! The problem was with the 1.17.1 update in the Minecraft protocol. You need to send 'teleport_confirm' with the 'teleportId' sent with the position update in order to actually move the bot.