From 7553b0d6af963ebe6934ff0554ae9f54537b7cce Mon Sep 17 00:00:00 2001 From: yan Date: Sun, 18 Jan 2026 13:43:19 +0800 Subject: [PATCH] =?UTF-8?q?refactor(FullyAutoAndSemiAutoTools):=20?= =?UTF-8?q?=E9=87=8D=E6=9E=84=E8=B7=AF=E5=BE=84=E6=89=AB=E6=8F=8F=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F=E5=B9=B6=E4=BC=98=E5=8C=96=E5=A4=9A=E8=B4=A6=E5=8F=B7?= =?UTF-8?q?=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修复 manifest.json 中的密钥格式,去除多余空格 - 重构路径扫描功能,支持任意深度目录结构的树状扫描 - 新增按 UID 缓存路径列表功能,提升多账号切换性能 - 优化黑白名单过滤逻辑,使用 Set 数据结构提升查找效率 - 更新 README 文档,详细说明新的路径扫描和缓存机制 - 修改配置文件结构,新增 RefreshSettings.json 和 path-json-by-uid.json - 调整 CD 规则配置,更新示例中的冷却时间设置 - 完善 Cron 解析服务部署文档,提供多种部署方式说明 - 优化用户操作流程,简化首次配置和日常使用的步骤 --- repo/js/FullyAutoAndSemiAutoTools/README.md | 249 ++++++++---------- .../FullyAutoAndSemiAutoTools/manifest.json | 2 +- 2 files changed, 108 insertions(+), 143 deletions(-) diff --git a/repo/js/FullyAutoAndSemiAutoTools/README.md b/repo/js/FullyAutoAndSemiAutoTools/README.md index ff2e4c7fb..960405e42 100644 --- a/repo/js/FullyAutoAndSemiAutoTools/README.md +++ b/repo/js/FullyAutoAndSemiAutoTools/README.md @@ -4,21 +4,22 @@ BetterGI 平台下功能最全面的路径批量执行解决方案之一 ## 项目概述 -FullyAutoAndSemiAutoTools 是一套高度模块化、可高度自定义的自动化路径执行工具箱。 +FullyAutoAndSemiAutoTools 是一套高度模块化、可高度自定义的自动化路径执行工具箱,主要用于原神(BetterGI平台)的日常、周常、素材收集等重复性任务自动化。 支持**全自动**与**半自动**两种运行模式,核心目标包括: -- 智能扫描 & 多层级管理大量路径文件 -- 精细的冷却时间控制(小时制 + Cron)因BGI不支持Cron解析,需搭配bettergi-scripts-tools+开启JS HTTP[前往bettergi-scripts-tools部署](https://github.com/Kirito520Asuna/bettergi-scripts-tools) +- 智能扫描 & 多层级管理大量路径文件(支持任意深度目录结构) +- 精细的冷却时间控制(小时制 + Cron,需要外部解析服务) - 根据路径特性自动切换战斗/元素队伍 - 集成丰富的实时辅助功能 - 执行记录防重复 + 择优优先未完成路径 -- 支持黑白名单、多 UID 隔离记录 +- 支持黑白名单、多 UID 隔离记录与路径缓存 -### 核心亮点 +### 核心亮点(最新版) -- 路径树状扫描 + 多级加载(默认2级,可调) -- 小时制 & Cron 双冷却系统(需要支持外部 HTTP API) +- **路径扫描全面重构**:支持任意层级目录,父子关系清晰,性能稳定 +- **按 UID 缓存路径列表**(`path-json-by-uid.json`),多账号切换极快 +- 小时制 & Cron 双冷却系统(需搭配 bettergi-scripts-tools) - 智能队伍切换(战斗/七元素) - 实时任务:自动对话跳过、自动拾取、自动战斗 - 择优执行 + 执行记录 + 错误路径追踪 @@ -30,24 +31,28 @@ FullyAutoAndSemiAutoTools 是一套高度模块化、可高度自定义的自动 ``` FullyAutoAndSemiAutoTools/ ├── config/ -│ ├── SevenElement.json # 七元素路径→队伍映射 -│ ├── cd-pathing.json # 路径冷却规则(hours/cron) -│ ├── record.json # 本次执行记录 -│ ├── PathRecord.json # 历史路径执行记录 -│ └── uidSettings.json # 用户配置快照(多UID支持) +│ ├── SevenElement.json # 七元素路径→队伍映射 +│ ├── cd-pathing.json # 路径冷却规则(hours/cron) +│ ├── record.json # 本次执行记录 +│ ├── PathRecord.json # 历史路径执行记录 +│ ├── uidSettings.json # 用户配置快照(多UID支持) +│ ├── path-json-by-uid.json # 按UID缓存的路径JSON列表 +│ └── RefreshSettings.json # 刷新配置缓存(可选) ├── utils/ -│ ├── SwitchTeam.js # 队伍切换核心 -│ ├── cron.js # Cron 解析工具 -│ └── uid.js # UID 识别模块 -├── pathing/ # ★ 所有路径文件目录(需符号链接) -├── SymLink.bat # 一键创建 pathing 链接 -├── main.js # 主程序入口 -├── manifest.json # 脚本元信息 & 版本标识 -└── settings.json # 配置模板(用户界面依据) +│ ├── SwitchTeam.js # 队伍切换核心 +│ ├── cron.js # Cron 解析工具 +│ └── uid.js # UID 识别模块 +├── pathing/ # ★ 所有路径文件目录(需符号链接) +├── SymLink.bat # 一键创建 pathing 链接 +├── main.js # 主程序入口(已重构路径扫描) +├── manifest.json # 脚本元信息 & 版本标识 +└── settings.json # 配置模板(用户界面依据) ``` ## 核心流程图 -### 1 + +### 1. 整体流程图(graph TD 风格,适合看结构与分支) + ```mermaid graph TD A[启动脚本] --> B[初始化
配置/工具/记录/密钥检查] @@ -55,14 +60,14 @@ graph TD B --> C{运行模式?} C -->|刷新配置| D[扫描 pathing 目录
构建树状结构
生成多选配置项
应用黑白名单] - D --> E[保存用户配置
到 uidSettings.json] + D --> E[保存用户配置
到 uidSettings.json + path-json-by-uid.json] - C -->|加载配置| F[读取 uidSettings.json
恢复上次选择 & 记录] + C -->|加载配置| F[读取 uidSettings.json & path-json-by-uid.json
快速恢复上次选择 & 路径缓存] C -->|开始执行| G[核心执行流程] subgraph 核心执行流程 - G --> H[读取 CD 配置
加载执行记录] + G --> H[读取 CD 配置
加载执行记录 & UID路径缓存] H --> I[构建 needRunMap
遍历路径组 & 过滤] I --> J{CD 检查
hours/cron} J -->|仍在CD| K[移除该路径] @@ -107,13 +112,13 @@ graph TD style G fill:#f3e5f5,stroke:#7b1fa2 style AE fill:#c8e6c9,stroke:#2e7d32,stroke-width:3px ``` -### 2 +### 2. 执行时序图(sequenceDiagram 风格,适合看交互顺序) ```mermaid sequenceDiagram participant U as 用户 participant S as 脚本设置界面 participant Init as 初始化模块 - participant Scan as 路径扫描 + participant Scan as 路径扫描(重构版) participant CD as 冷却检查 participant Exec as 执行引擎 participant RT as 实时任务 @@ -124,19 +129,19 @@ sequenceDiagram U->>S: 启动脚本 → 选择模式 alt 模式 = 刷新配置 - S->>Scan: 扫描 pathing 目录 - Scan-->>S: 返回树状结构 & 文件列表 - S->>S: 生成多选配置项
应用黑白名单过滤 + S->>Scan: 扫描 pathing 目录(支持任意深度) + Scan-->>S: 返回完整树状结构 & 文件列表 + S->>S: 生成多选配置项
应用黑白名单精确过滤(Set优化) S-->>U: 显示配置界面供勾选 U->>S: 保存配置 - S->>Record: 写入 uidSettings.json + S->>Record: 写入 uidSettings.json + path-json-by-uid.json else 模式 = 加载配置 - S->>Record: 读取 uidSettings.json - Record-->>S: 返回上次配置 & 路径选择 - S-->>U: 恢复配置界面 + S->>Record: 读取 uidSettings.json & path-json-by-uid.json + Record-->>S: 返回上次配置 & 缓存路径列表 + S-->>U: 快速恢复配置界面 else 模式 = 执行 S->>Init: 开始执行 - Init->>Record: 加载历史记录(record & PathRecord) + Init->>Record: 加载历史记录 & UID路径缓存 Init->>CD: 读取 cd-pathing.json CD-->>Init: 返回冷却状态 @@ -190,146 +195,106 @@ sequenceDiagram end ``` - ## 重要配置项一览(settings.json) -| 配置项 | 类型 | 主要作用 | 推荐默认/示例 | -|-------------------------|------------|----------------------------------------|----------------------------| -| config_run | 下拉 | 运行模式:刷新 / 加载 / 执行 | 刷新 → 首次,加载 → 日常 | -| loading_level | 文本 | 路径层级深度(≥1) | 2 或 3 | -| config_white_list | 文本 | 白名单(逗号分隔) | 晶蝶,特产 | -| config_black_list | 文本 | 黑名单(优先级更高) | 其他,锄地专区,周本 | -| open_cd | 复选框 | 启用冷却控制 | 建议开启 | -| http_api | 文本 | Cron 解析服务地址 | http://127.0.0.1:port/... | -| real_time_missions | 多选 | 实时辅助(对话/战斗/拾取) | 至少开「自动拾取」 | -| choose_best | 复选框 | 择优模式(优先未跑/最久未跑路径) | 推荐开启 | -| mode | 下拉 | 全自动 / 半自动 | 全自动(日常) | -| auto_semi_key_mode | 下拉 | 半自动快捷键行为(继续/跳过) | 继续运行 | -| auto_key | 文本 | 半自动干预快捷键 | F10 / F11(避免冲突) | -| team_fight | 文本 | 战斗/通用行走队伍名称 | 必须填写 | -| team_seven_elements | 文本 | 七元素队伍(矿物,火,水,风,雷,草,冰,岩)| 按顺序填写 | -| is_debug | 复选框 | 开发者模式(详细日志) | 调试时开启 | +| 配置项 | 类型 | 主要作用 | 推荐默认/示例 | +| --------------- | ------ |----------------------------------------------------------|-----------------------------------------| +| config_run | 下拉 | 运行模式:刷新 / 加载 / 执行 | 刷新 → 首次,加载 → 日常 | +| loading_level | 文本 | 路径层级深度(≥1,实际支持更高深度) | 2 或 3 | +| order_rules | 文本 | 执行顺序规则(可留空)
语法:父文件夹名称->文件夹名称=顺序整数,...
示例:食材与炼金->晶蝶=1, | ""(默认按扫描顺序)或 "食材与炼金->晶蝶=1,pathing->地方特产=2" | +| config_white_list | 文本 | 白名单(逗号分隔) | 晶蝶,特产 | +| config_black_list | 文本 | 黑名单(优先级更高) | 其他,锄地专区,周本 | +| open_cd | 复选框 | 启用冷却控制 | 建议开启 | +| http_api | 文本 | Cron 解析服务地址 | http://127.0.0.1:8081/... | +| real_time_missions | 多选 | 实时辅助(对话/战斗/拾取) | 至少开「自动拾取」 | +| choose_best | 复选框 | 择优模式(优先未跑/最久未跑路径) | 推荐开启 | +| mode | 下拉 | 全自动 / 半自动 | 全自动(日常) | +| auto_semi_key_mode | 下拉 | 半自动快捷键行为(继续/跳过) | 继续运行 | +| auto_key | 文本 | 半自动干预快捷键 | F10 / F11(避免冲突) | +| team_fight | 文本 | 战斗/通用行走队伍名称 | 必须填写 | +| team_seven_elements | 文本 | 七元素队伍(矿物,火,水,风,雷,草,冰,岩) | 按顺序填写 | +| is_debug | 复选框 | 开发者模式(详细日志) | 调试时开启 | ## CD 规则示例(cd-pathing.json) ```json [ - { - "name": "晶蝶", - "type": "hours", - "level": 2, - "value": 12 - }, - { - "name": "矿物", - "type": "cron", - "level": 1, - "value": "0 0 0 1/3 * ?" - }, - { - "name": "周本", - "type": "hours", - "level": 3, - "value": 168 - } + { + "name": "晶蝶", + "type": "hours", + "level": 2, + "value": 12 + }, + { + "name": "地方特产", + "type": "hours", + "level": 1, + "value": 46 + }, + { + "name": "矿物", + "type": "cron", + "level": 1, + "value": "0 0 0 1/3 * ?" + } ] ``` -### 部署 [bettergi-scripts-tools](https://github.com/Kirito520Asuna/bettergi-scripts-tools)开启Cron解析 +## Cron 解析服务部署(必须) -#### 1.windows exe 直接运行 -前往 [release](https://github.com/Kirito520Asuna/bettergi-scripts-tools/releases) 下载 带windows的zip包解压运行.exe文件即可 -#### 2.java -前往 [release](https://github.com/Kirito520Asuna/bettergi-scripts-tools/releases) 下载 jar包 -```shell -java -jar xxxx.jar +**bettergi-scripts-tools** 是 Cron 解析的必要依赖,请至少选择一种方式部署: + +### 1. Windows 一键运行 +下载 [release](https://github.com/Kirito520Asuna/bettergi-scripts-tools/releases) 中的 windows zip 包 → 解压 → 双击 .exe 运行 + +### 2. Java 运行 +下载 jar 包 → 执行: +```bash +java -jar bettergi-scripts-tools-xxxx.jar ``` -#### 3.部署docker -```shell + +### 3. Docker 部署 +```bash docker pull ghcr.io/kirito520asuna/bettergi-scripts-tools:latest -docker run -d -p 8081:8081 -v /path/to/application-prod.yml:/app/application-prod.yml --name bettergi-scripts-tools ghcr.io/kirito520asuna/bettergi-scripts-tools:latest +docker run -d -p 8081:8081 --name bettergi-scripts-tools ghcr.io/kirito520asuna/bettergi-scripts-tools:latest ``` -### Cron Api -```http request -### -POST http://localhost:8081/bgi/cron/next-timestamp -Content-Type: application/json - -{ - "cronExpression": "", - "startTimestamp": 1, - "endTimestamp": 1 -} - -### -POST http://localhost:8081/bgi/api/cron/next-timestamp -Content-Type: application/json - -{ - "cronExpression": "", - "startTimestamp": 1, - "endTimestamp": 1 -} - -### -POST http://localhost:8081/bgi/jwt/cron/next-timestamp -Content-Type: application/json - -{ - "cronExpression": "", - "startTimestamp": 1, - "endTimestamp": 1 -} -``` ---- +**默认 API 地址**:`http://127.0.0.1:8081/bgi/cron/next-timestamp` ## 推荐使用流程 -1. **首次准备** - 双击 `SymLink.bat` 创建 pathing 链接 - 将所有 .json 路径文件放入 pathing 或子目录 +1. 双击 `SymLink.bat` 创建 pathing 链接 +2. 首次运行强烈建议先「刷新」一次(生成 path-json-by-uid.json 缓存) +3. 日常使用「加载」模式 → 快速恢复配置 & 路径列表 +4. 微调路径组 → 切换「执行」模式 → 一键启动 -2. **第一次完整配置**(建议花 5–10 分钟) - → 选择「**刷新**」模式 → 执行 - → 设置白/黑名单、队伍、CD规则、实时任务、执行模式等 - → 保存(自动生成 uidSettings.json) - -3. **日常执行**(最常用方式) - → 打开设置 → 选择「**加载**」模式 → 执行 - → 微调本次要跑的路径组 - → 切换到「**执行**」模式 → 一键启动 - -4. **半自动模式建议** - mode = 半自动 - 设置不常用快捷键(推荐 F10/F11) - 路径完成后暂停,等待按键决定继续或跳过 +**多账号特别友好**:每个 UID 都有独立路径缓存,切换账号无需重复扫描 ## 小技巧与实用建议 -- 最省事:全自动 + 择优模式 + 自动拾取 + 冷却控制 -- 最安全:半自动 + 自动拾取 + 详细日志 + 大量黑名单 -- 每1–2周建议执行一次「刷新」同步新路径 +- 最省事组合:全自动 + 择优模式 + 自动拾取 + 冷却控制 +- 最安全组合:半自动 + 自动拾取 + 详细日志 + 大量黑名单 +- 路径目录再深也没关系,扫描已支持任意层级 - 错误路径反复出现?查看 record.json 加黑名单或修复 -- 多UID用户:每个号先「刷新」一次,建立独立配置 +- 多UID用户:首次每个号都「刷新」一次,建立独立缓存 ## 注意事项 -- 需要战斗的路径建议在描述中写「请配置好战斗策略」或放在战斗相关目录 +- 首次使用或升级后建议删除旧 `path-json-by-uid.json` 重新生成 - 半自动模式请确保快捷键不与 BetterGI 冲突 -- Cron 模式需要网络正常并正确配置 http_api 地址 -- 记录文件自动保存,支持断点续跑与多UID隔离 +- Cron 模式必须部署解析服务,否则冷却检查无效 - 最低兼容版本:BetterGI 0.54.3+ ## 版本密钥 -| 版本 | 密钥 | -|:------|:----------| -| 0.0.1 | PGCSBY37NJ| -## 版本历史 -### 0.0.1 (2026-01-05) - - 基础功能已完成 +| 版本 | 密钥 | +|----------------|-------------------------------------------| +| 0.0.1 | PGCSBY37NJ | +## 版本历史(简要) + +### 0.0.1 2026.01.18 +基本功能完成 **作者**:云端客 (Kirito520Asuna) diff --git a/repo/js/FullyAutoAndSemiAutoTools/manifest.json b/repo/js/FullyAutoAndSemiAutoTools/manifest.json index cc8f7fc0a..6c6435987 100644 --- a/repo/js/FullyAutoAndSemiAutoTools/manifest.json +++ b/repo/js/FullyAutoAndSemiAutoTools/manifest.json @@ -3,7 +3,7 @@ "name": "全自动或半自动工具箱", "version": "0.0.1", "bgi_version": "0.54.3", - "key": " PGCSBY37NJ ", + "key": "PGCSBY37NJ", "description": "", "saved_files": [], "authors": [