javascript - 如何让 Mineflayer (Minecraft Bot) 单击像 Sign 这样的块
问题描述
我正在尝试制作一个名为 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
解决方案
为您的 startClicking 函数添加延迟。
推荐阅读
- angular - 根据 id 访问对象属性
- qt - 从不同于包含它的文件访问 QML Stackview
- python - 无法在本地机器上加载张量板
- javascript - 减去今天和明天的日期,得到第 365 天
- php - 我的核心 php 网站站点地图未在谷歌网站管理员中索引
- spring - 如何在构建会话工厂期间获取元数据
- sql - SQL Count 部分字符串
- dialogflow-es - 为什么DialogFlow的fullfillment_text和fulfillment_message会不同?
- asp.net-core - “asp.net core”可以连接SAP吗?
- c++ - Visual C++ 中的标准不符合项