CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PrismarineJS

Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place. Commercial Alternative to JupyterHub.

GitHub Repository: PrismarineJS/mineflayer
Path: blob/master/docs/zh/README_ZH_CN.md
Views: 789

Mineflayer

NPM version Build Status Discord Gitter Irc Issue Hunt

Try it on gitpod Open In Colab

使用强大、稳定、高级的 JavaScript API 来开发 Minecraft 机器人,同时支持 Python。

第一次使用 node.js ?你可以先看看 使用教程 。了解过 Python?这里有一些 Python 实例,同时你也可以在谷歌 Colab 中运行 Mineflayer 来体验一下。

特点

  • 支持版本:Minecraft 1.8, 1.9, 1.10, 1.11, 1.12, 1.13, 1.14, 1.15, 1.16, 1.17, 1.18, 1.19 和 1.20

  • 实体感知与追踪

  • 方块感知,你可以在几毫秒内查找到bot周围的任何方块

  • 物理和运动引擎 - 支持所有的碰撞箱

  • 攻击实体,使用交通工具

  • 背包管理

  • 使用工作台、箱子、酿造台、附魔台

  • 挖掘和建造

  • 各种各样的的信息接口,比如查看你的血量或是否下雨

  • 激活方块和使用物品

  • 进行聊天

路线图

点这里 看看目前我们有哪些实用的项目

安装

首先,从 nodejs.org 安装 nodejs(版本要求 >= 18),

然后在你创建的bot项目目录中,使用命令行运行:

npm install mineflayer

文档

链接描述
使用教程node.js 和 mineflayer 入门
FAQ使用中出现问题?先看看这个文档吧
api不稳定的api完整的接口参考文档
更新日志mineflayer 的更新日志
示例/我们为你准备的 mineflayer 使用实例

参与贡献

请参阅 为本项目贡献,以及为 Prismarine 贡献

如何使用

视频(Youtube)

这里 是一个解释bot基本设置过程的教程视频。

如果你想了解更多,更多的视频教程可以在 这里 找到,视频的相应的源码在 这里

tutorial 1 tutorial 2 tutorial 3 tutorial 4

开始使用

如果没有指定特定版本,使用的服务器版本将自动判断并使用。 如果没有指定登录类型,默认使用 mojang 账户认证登录。

例子:复读机

const mineflayer = require('mineflayer') const bot = mineflayer.createBot({ host: 'localhost', // minecraft 服务器的 IP 地址 username: '[email protected]', // minecraft 用户名 password: '12345678' // minecraft 密码, 如果你玩的是不需要正版验证的服务器,请注释掉。 // port: 25565, // 默认使用 25565,如果你的服务器端口不是这个请取消注释并填写。 // version: false, // 如果需要指定使用一个版本或快照时,请取消注释并手动填写(如:"1.8.9" 或 "1.16.5"),否则会自动设置。 // auth: 'mojang' // 如果需要使用微软账号登录时,请取消注释,然后将值设置为 'microsoft',否则会自动设置为 'mojang'。 }) bot.on('chat', (username, message) => { if (username === bot.username) return bot.chat(message) }) // 记录错误和被踢出服务器的原因: bot.on('kicked', console.log) bot.on('error', console.log)

看看你的 bot 在做什么

感谢 prismarine-viewer项目,它可以在浏览器窗口显示你的机器人正在做什么。 只需要运行 npm install prismarine-viewer 并将其添加到你的 bot 代码中。

const { mineflayer: mineflayerViewer } = require('prismarine-viewer') bot.once('spawn', () => { mineflayerViewer(bot, { port: 3007, firstPerson: true }) // port 是本地网页运行的端口 ,如果 firstPerson: false,那么将会显示鸟瞰图。 })

然后你会得到一个看起来像这样的实时视图

viewer

更多示例

例子描述
viewer在浏览器中显示 bot 的视角
pathfinder让你的 bot 自动前往任何地点
chest使用箱子、熔炉、酿造台、附魔台
digger学习如何创建一个能够挖掘方块的简单bot
discord将 discord bot 与 mineflayer bot 进行消息互通
jumper学习如何移动、跳跃、骑乘载具、攻击附近的实体
ansi使用全彩色在命令行中显示 bot 的聊天记录
guard让bot守卫一个指定的区域,不让附近的生物进入。
multiple-from-file创建一个包含账户信息的文本文件,让它们全部同时登录

还有更多的例子在 examples 文件夹中

模块

很多活跃的开发都发生在 mineflayer 所使用的小型 npm 包内

The Node Way & trade;

"当你很好的编写了一个应用程序,此时它的价值仅限于这些特定的需求。你要知道,真正好的、可重复使用的优秀组件都会升华到github和npm上,在那里,每个人都可以合作来推进公共事业。" — 《 how I write modules 》 - substack

子模块

这些是 构成 mineflayer 的主要模块:

模块描述
minecraft-protocol解析和序列化 minecraft 数据包,以及身份验证和加密。
minecraft-data为 minecraft 客户端、服务器和库提供 minecraft 数据的语言独立模块。
prismarine-physics为 minecraft 实体提供物理引擎
prismarine-chunk一个为 Minecraft 保存区块数据的类
node-vec3具有强大单元测试的 3d 矢量数学
prismarine-block用相关数据表示一个 minecraft 方块
prismarine-chatminecraft 聊天消息解析器(从 mineflayer 中提取)
node-yggdrasilNode.js 库与 Mojang 的身份验证系统交互
prismarine-worldprismarine 世界的核心实现
prismarine-windows表示 minecraft 窗口
prismarine-item用相关数据表示一个 minecraft 物品
prismarine-nbtnode-minecraft-protocol 的 NBT 解析器
prismarine-recipe展示我的世界合成表
prismarine-biome用相关数据表示 minecraft 生物群落
prismarine-entity表示一个 minecraft 实体

调试

您可以使用 DEBUG 环境变量启用某些协议调试输出:

DEBUG="minecraft-protocol" node [...]

在 windows 上:

set DEBUG=minecraft-protocol node your_script.js

第三方插件

mineflayer 支持插件;任何人都可以创建一个插件,在 mineflayer 之上添加更高级别的 API。

最新和最有用的有:

也可以看看这些 :

正在使用 mineflayer 的项目

测试

完整测试

运行

npm test

测试指定版本

运行

npm mocha_test -- -g <version>

其中 <version> 表示 minecraft 版本号 如 1.12, 1.15.2...

测试指定测试脚本

运行

npm mocha_test -- -g <test_name>

其中 <test_name> 是测试名称,例如 bed, useChests, rayTrace...

示例

npm run mocha_test -- -g "1.18.1.*BlockFinder"

进行 1.18.1 寻路测试

许可证

MIT