文件
BotStore/.env.example
lyizai 51664c55b6 feat: 1.7.0 落地 TODO 全部待办(地面修正 / 手动执行器 / 自救 / 回城 / 租约 / 通知)
按 TODO.md 的优先级把待办全部落地为代码,详见 CHANGELOG 的 [1.7.0]。

- 「走不动」攻关:地面状态修正(syncGroundToPhysics / trustSetbackOnGround)、
  出站包类型分布、备选执行器 manualMover(只借 A* 规划、自己按键执行)
- 原点自救分两轮并统计成败;回城前评估「原地是否更差」并记录前后坐标
- 新增目标区块租约表(targetLease)避免多机器人撞同一块
- 定时消息支持 cron 与「期望回复」确认;新增人工介入 Webhook 通知(notifier)
- 大地图后台预热与视野裁剪;控制台日志按帧批量写入、配置面板支持搜索

顺带修掉两个影响部署的细节:
- 部署脚本(deploy.js / ssh-helper.js)改为也能从 .env 读 SSH 凭据 ——
  在命令行传密码会留在 shell 历史与进程列表里,写进已被忽略的 .env 更安全;
  显式环境变量仍然优先。.env.example 补上占位符并说明这些只在本机用。
- package.json / package-lock.json 版本对齐到 1.7.0(此前停留在 1.1.0,
  与 CHANGELOG 的语义化版本声明脱节)。

测试:368 → 436 个用例,`npm test` 与 `npm run check` 全绿。
2026-09-28 22:46:39 +08:00

67 行
3.2 KiB
Bash

此文件含有模棱两可的 Unicode 字符
此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。
# 环境变量示例:复制为 .env 并填入真实值
# .env 已被 .gitignore 忽略,绝不要提交真实密钥
# ==================== Minecraft 服务器 ====================
MC_HOST=bgjq.simpfun.cn
MC_PORT=25565
MC_VERSION=1.21.4
# ---- 多机器人(推荐):同时挂多个玩家,用逗号分隔「用户名:密码」 ----
# 密码只从这里读取,绝不写入代码、配置文件或控制台存储
MC_BOTS=<bot-name-1>:<password-1>,<bot-name-2>:<password-2>
# 用户名/密码里含逗号或冒号时,改用 JSON 数组写法:
# MC_BOTS=[{"username":"bot1","password":"p1"},{"username":"bot2","password":"p2","label":"二号机"}]
# ---- 单机器人兜底:未设置 MC_BOTS 时生效 ----
MC_USERNAME=<your-bot-name>
MC_PASSWORD=<your-server-password>
# offline=离线服(服务器用 /login 密码登录);microsoft=正版
MC_AUTH=offline
# ==================== Web 控制台 ====================
WEB_HOST=127.0.0.1
WEB_PORT=3081
# 控制台令牌(可写进 URL 的 ?token=,便于直接点击打开;留空则本机免登录)
WEB_TOKEN=
# 控制台登录密码:配置后页面会弹出登录框,验证通过才允许操作机器人的控制台 / 聊天框 / 扩地任务
WEB_PASSWORD=
# ==================== 领土数据源与大地图 ====================
# 地图站点根地址(末尾不带斜杠)
# 程序会请求:
# <DYNMAP_BASE>/tiles/<DYNMAP_WORLD>/markers.json 领土标记
# <DYNMAP_BASE>/tiles/<DYNMAP_WORLD>/<z>/<x>_<y>.png 大地图瓦片图片
DYNMAP_BASE=http://bgjq.simpfun.cn
# 世界目录名(对应地图站点上的世界名)
DYNMAP_WORLD=minecraft_overworld
# ==================== SimpCore 开放 API(可选) ====================
# 文档:https://open.bgjq.top/api-docs.html
# 注意:API 与 API-V2 是两套**独立、互不通用**的密钥体系,需要在密钥中心分别申请
#
# 第一套 API:邦国 / 领土 / 玩家 / 全服数据(https://bgjq.simpfun.cn/api/)
SIMP_API_KEY=<your-simp-api-key>
# 第二套 API-V2(ServerOpenAPI):在线玩家 / 装备 / 游戏时间 / 末影龙
# https://bgjq.simpfun.cn/api-v2/
# 配额很小(末影龙仅 1 次/分钟),程序只按需查询、不做轮询
SIMP_API_V2_KEY=<your-simp-api-v2-key>
# ==================== 人工介入提醒(可选) ====================
# 等待登录验证码 / 原点自救失败时推送提醒(默认按飞书、Lark 自定义机器人的文本消息格式)
# 用法:控制台「服务器 → 通知提醒」勾选「启用通知」并填地址;地址留空时回退本环境变量
# 注意:Webhook 地址等同于「任何人都能往群里发消息」的凭据,不要提交进仓库
NOTIFY_WEBHOOK_URL=
# ==================== 部署(可选,只在本地开发机用) ====================
# 只有 `npm run deploy` / `node scripts/ssh-helper.js` 会读这几个变量;
# 程序本体(src/)不读它们,所以服务器上的 .env 不需要填。
# 放在这里是为了不把 SSH 密码写进命令行(会留在 shell 历史与进程列表里)。
SSH_HOST=<your-server-ip>
SSH_PORT=<your-ssh-port>
SSH_USER=root
SSH_PASS=<your-ssh-password>
# 部署目录与健康检查端口(留空则用脚本默认值 /opt/autostore-bot 与 78)
DEPLOY_APP=
DEPLOY_PORT=