首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mineflayer (扫雷器-数据;探路者):无法读取未定义的属性

Mineflayer (扫雷器-数据;探路者):无法读取未定义的属性
EN

Stack Overflow用户
提问于 2021-12-04 17:12:12
回答 1查看 371关注 0票数 0

因此,我一直试图制作一个跟随我的“我的世界”角色(playerCI = bot.players["Cyberyes"])的机器人,但是当我尝试启动它时,我得到了以下错误:

开始..。C:\Users\Jakob\Documents\Minecraft\Bot\FirstBot\node_modules\mineflayer-pathfinder\lib\movements.js:35 this.blocksCantBreak.add(mcData.blocksByName.chest.id) ^

(C:\Users\Jakob\Documents\Minecraft\Bot\FirstBot\node_modules\mineflayer-pathfinder\lib\movements.js:35:37) at EventEmitter.followPlayer (C:\Users\Jakob\Documents\Minecraft\Bot\FirstBot\main.js:28:23) at Object.onceWrapper (节点:事件:509:28)在EventEmitter.emit (节点:事件:402:35)处,TypeError:无法读取未定义的属性(读取“blocksByName”)。(C:\Users\Jakob\Documents\Minecraft\Bot\FirstBot\node_modules\mineflayer\lib\plugins\health.js:13:11) at Object.onceWrapper (节点:510:26)在Client.emit (节点:402:35)在FullPacketParser。(C:\Users\Jakob\Documents\Minecraft\Bot\FirstBot\node_modules\minecraft-protocol\src\client.js:91:12) at FullPacketParser.emit (节点:390:28)

这是我的守则:

代码语言:javascript
复制
console.log("Starting...")

const mineflayer = require('mineflayer')
const { pathfinder, Movements, goals } = require('mineflayer-pathfinder')
const GoalFollow = goals.GoalFollow


var settings = {
    username: "Bot",
    host: "185.245.96.138",
    port: "25592",
    version: "1.16.5",
    }

const bot = mineflayer.createBot(settings)
bot.loadPlugin(pathfinder)

function followPlayer() {
    const playerCI = bot.players['Cyberyes']

    if (!playerCI || !playerCI.entity) {
        bot.chat("I can't see Cyberyes!")
        return
    }


    const mcData = require('minecraft-data')(bot.version)
    const movements = new Movements(bot, mcData)
    bot.pathfinder.setMovements(movements)

    const goal = new GoalFollow(playerCI.entity, 1)
    bot.pathfinder.setGoal(goal, true)
}

bot.once("spawn", followPlayer)
EN

回答 1

Stack Overflow用户

发布于 2022-11-14 11:18:33

我也犯了同样的错误,我可以用这样的函数来解决这个问题,我的代码是用Python编写的,但是不应该有太多不同的JavaScript。

代码语言:javascript
复制
def initMovement():
        movements = pathfinder.Movements(bot)

        #If you want to Deactivate sth
        movements.canDig = False

        bot.pathfinder.setMovements(movements)

此功能在生成机器人后调用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70227790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档