尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

10分钟做出你的第一个 Minecraft 机器人:Mineflayer 实操上手完整指南

10分钟做出你的第一个 Minecraft 机器人:Mineflayer 实操上手完整指南 10分钟做出你的第一个 Minecraft 机器人Mineflayer 实操上手完整指南【免费下载链接】mineflayerCreate Minecraft bots with a powerful, stable, and high level JavaScript API.项目地址: https://gitcode.com/gh_mirrors/mi/mineflayer你有没有想过在游戏聊天框里随手打一句!ping对面有个叫 EchoBot 的角色秒回pong!或者干脆让一个角色自己找树、自己挖矿全程不用你碰键盘这就是 Mineflayer 能帮你做的事——它是一个用 Node.js 写的 JavaScript 库让你以编程方式控制 Minecraft 客户端几行代码就能造出一个能进服、会聊天、干活的机器人。前提只有一个你电脑上有 Node.js终端敲node -v能看到版本号即可第一个机器人 3 分钟就能跑起来。3分钟跑通如何连接 Minecraft 服务器并登录先别急着学原理。新建一个文件夹把mineflayer装进来一句话命令npm install mineflayer然后建一个bot.js写下这 8 行const mineflayer require(mineflayer) const bot mineflayer.createBot({ host: localhost, // 服务器在哪 port: 25565, // 服务器端口号 username: EchoBot // 机器人在游戏里的名字 }) bot.once(login, () console.log(登录成功等待世界加载…)) bot.once(spawn, () console.log(机器人已经站在世界里了))保存后在终端运行node bot.js。如果本地开着一个单人存档或服务器几秒后控制台会依次打出两行提示打开游戏你就会看见你的机器人——恭喜你已经比大多数只看了文档的人走得更远了。上面几个参数用大白话翻译一遍参数作用备注host服务器 IP本机就填localhostport服务器端口默认 25565username机器人游戏内 ID别和别人重名version客户端版本不填则跟随服务器auth认证方式offline免账号mojang官方正版 动手一下把username改成你的名字再跑一次去游戏里确认是不是真的换上了。底层逻辑拆解机器人如何听见游戏 机器人并不实时盯着游戏它更像公司前台服务器这边不断有人敲门——有人聊天了、有人死了、天气变了前台听到一声就派一次活。bot.on(事件名, 回调函数)就是每逢这种敲门声跑一遍这段代码bot.on(chat, (username, message) { if (username ! bot.username) { console.log(${username} 说${message}) } })两个细节值得注意bot.on是每次敲门都响应bot.once是只响应这一次登录成功这种事一辈子只来一回所以用once。上面这段代码的妙处是自己说的话不处理——否则机器人会把自己的回声再打一遍永远停不下来。再讲一个新手最容易踩的坑异步。Minecraft 的世界是一圈一圈加载出来的你让机器人立刻挖一块远处的木头它可能根本还没看见那块木头。bot.waitForChunksToLoad()就像外卖送达通知你不用站在门口刷手机下单后去忙别的送到了区块加载完了系统会自动通知你继续。这就是 Promise 加await在代码里的角色——并行下单而不是干等。 想一想为什么挖矿之前要等世界加载如果顺序反了会发生什么2~3个实战小场景从聊天指令到自动采集场景一做一个聊天指令机器人把机器人当成值班客服玩家发什么指令它就办什么事bot.on(chat, (username, message) { if (message !ping) bot.chat(pong) if (message.startsWith(!say )) bot.chat(message.slice(5)) })!ping是固定口令!say 你好则是把空格后面的内容原样读出来——slice(5)就是掐掉前面 5 个字符。官方仓库里有个几乎一样的现成例子可以对照着读examples/echo.js。场景二自动采集附近的木头把刚才的等通知逻辑用在这里就顺了——先等世界加载再找最近的木头找到才去挖bot.once(spawn, async () { await bot.waitForChunksToLoad() // 先等世界加载完 const block await bot.findBlock({ name: oak_log, maxDistance: 16 }) if (!block) return bot.chat(附近没有橡木原木帮不了你) await bot.dig(block) // 自动走位并挖掘 bot.chat(成功采集到一块木头) })注意三处await它们是等这一步办完再往下走的语法。周围想学挖的更多花样可以翻翻这个官方示例examples/digger.js。常用事件与方法速查事件什么时候触发spawn登录且世界加载完成可以开始干活chat任何人发了聊天消息death机器人死亡kicked被服务器踢出error连接或运行时出错方法用途bot.chat(text)发消息bot.findBlock({...})找最近的指定方块bot.dig(block)挖掉一个方块bot.lookAt(point)把视线转向某坐标排错速查报错对照表️ 第一次跑挂掉基本逃不出下面几种按症状对号入座报错/症状最可能的原因解法ECONNREFUSEDIP 或端口写错服务器没开检查host/port确认服务器在运行登录被拒、提示 session 无效用正版账号连了离线服配置里加auth: offline登录成功后毫无反应你在世界没加载完时就让它干活所有操作放到spawn事件之后提示名字重复被踢游戏里已存在同名玩家换一个username控制台一堆 Promise 报错异步操作失败没处理用try/catch包住await的代码 调试三板斧先看error事件打了什么、再用console.log在关键节点打点、最后对照这张表排查——90% 的新手问题到此为止。学习地图下一步往哪走你现在已经拥有一个会聊天、会挖矿的机器人骨架接下来按这条路径走最省力读官方教程从连接、事件到背包操作的完整讲解docs/tutorial.md查 API 字典每个方法和事件签名都在这份文档里docs/api.md逛示例目录examples/下从回声机器人到自动钓鱼、自动合成应有尽有改改参数就是你的第一个作品。留给你两道加餐题能不能让机器人在血量低于一半时自动吃面包能不能加一条!where指令把你自己当前的坐标用聊天报出来答案都在上面那份 API 字典里祝你在服务器里玩得开心。【免费下载链接】mineflayerCreate Minecraft bots with a powerful, stable, and high level JavaScript API.项目地址: https://gitcode.com/gh_mirrors/mi/mineflayer创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表