2024-02-10 20:42:50 +08:00
2023-10-29 20:44:36 +08:00
2023-10-31 16:32:06 +08:00
2023-11-06 14:09:59 +08:00
2023-11-06 13:49:01 +08:00
2023-11-03 14:30:33 +08:00
2023-11-05 21:49:15 +08:00
2023-11-05 21:49:15 +08:00
2024-02-10 20:42:50 +08:00
2023-10-29 20:44:36 +08:00
2023-11-05 21:49:15 +08:00
2023-11-03 11:50:43 +08:00
2023-11-05 21:49:15 +08:00

Compass Bot

安装

运行下面命令安装 Node.JS 的依赖包并应用补丁:

npm i
npx patch-package

配置认证数据

在项目根目录下创建 credentials.json,包含如下内容:

{
	"endpoint": "Yggdrasil API 调用点",
	"endpoint_auth": "Yggdrasil API 用户服务器调用点(可选)",
	"endpoint_session": "Yggdrasil API 会话服务器调用点(可选)",
	"accounts": [{
		"handle": "登录名(在支持非邮箱登录的 Yggdrasil 服务器上可选)",
		"password": "密码",
		"profiles": ["角色名1", "角色名2"]
	}]
}

运行

运行下面命令启动:

node index.mjs profile@hostname[:port]

参数含义:

  • profile:表示连接到服务器使用的角色名
  • hostname:服务器地址
  • port:服务器端口(可选,默认值为 25565

命令行选项:

  • --offline:使用离线模式启动
  • --credentials-lib <file>:指定登录凭据文件(可选,默认值:credentials.json
  • --no-local-repl:禁用终端内 REPL
  • --protocal:指定服务器版本(可选,不指定时自动检测)
  • --owner: 指定 REPL 上下文内 owner() 函数返回的玩家
  • --enable-tcp-repl:启用基于 TCP 连接的远程 REPL
    • --tcp-repl-portTCP 远程 REPL 的服务端口(可选,默认值 2121
  • --remote-repl-passcode-length:远程 REPL 的服务口令强度(可选,默认值 8

REPL

REPL 上下文内预先定义了如下变量/函数/类型:

  • PI:常数,等于 Math.PI
  • bot:机器人对象
  • Vec33 维向量类型
  • debug:调试日志模块
  • mineflayer: mineflayer 模块默认导出
  • lib.utils: compass-utils 模块导出
  • lib.control: mineflayer-control 模块导出
  • lib.flyctl: mineflayer-fly-control 模块导出
  • sc.pos(): 缩写,返回 bot.entity.position
  • sc.debug_mfc():缩写,等价于 debug.enable('mineflayer-control')
  • sc.debug_mff():缩写,等价于 debug.enable('mineflayer-fly-control')
  • sc.sleep:缩写,等价于 lib.utils.asyncSleep
  • sc.tossHeld():缩写,等价于 bot.tossStack(bot.heldItem)
  • bb:所有 REPL 实例的共享数据
Description
A toolset of creating Minecraft bots in JavaScript.
Readme 189 KiB
Languages
JavaScript 100%