如何使Mineflayer(Minecraft Bot)单击类似于Sign的块

时间:2019-09-30 08:58:53

标签: javascript node.js minecraft

我正在尝试制作一个名为Mineflayer的Minecraft机器人,单击一个块,在本例中为“ Sign Block”。在这种情况下,我也无法处理Vec3。简而言之:我如何让机器人点击标志块。

我已经尝试参考Mineflayer的官方文档,但是完全没有解释。我也尝试过问一些使用Mineflayer的人,但是这些都不能帮助我。 下面是代码和我面临的错误。

const mineflayer = require('mineflayer')
const Vec3 = require('vec3');

const bot = mineflayer.createBot({
  host: 'localhost',
  port: 25564,
  username: 'Minecharmer',
  version: '1.12.2'
})

let blockAt = (x, y, z) => blockAt(new Vec3(x, y, z));
let blockAtVec3 = (v) => bot.blockAt(v);
let blockClick = (x, y, z, callback) => {
     bot.activateBlock(blockAt(x, y, z), callback);
}

bot.on('chat', (username, message) => {
  if (username == 'Username' && message == 'clickblock') {
    startClicking();
  }
})

function startClicking() {
  blockClick(-74, 65, 254, () => {
      console.log('Clicked block!')
      startClicking();
  });
}
RangeError: Maximum call stack size exceeded

1 个答案:

答案 0 :(得分:-1)

为您的startClicking功能添加延迟。