This commit is contained in:
2026-06-24 13:01:52 +08:00
parent f0e535c8ca
commit d8ceb93ea7
9 changed files with 996 additions and 426 deletions
+38 -13
View File
@@ -2,24 +2,27 @@
基于 [AstrBot](https://docs.astrbot.app/) 框架开发的剑网三游戏数据查询插件。插件主要通过 JX3API、JX3BOX、茶馆等外部接口获取游戏数据,整理为文本消息、富媒体消息,或通过 `HTML + Jinja2` 模板渲染成图片后发送。
当前插件以“查询型功能”为主,覆盖日常、奇遇、名剑、阵营、交易、职业、排行、副本、活动、名片、百战、推送和本地避雷等场景。部分功能需要配置 JX3API Token,少量职业/角色类接口还需要推栏 ticket。
当前插件以“查询型功能”为主,覆盖日常、官方、角色、职业、休闲、阵营、副本、活动、交易、杂项、排行、推送和本地避雷等场景。部分功能需要配置 JX3API Token,少量职业/角色类接口还需要推栏 ticket。
## 功能概览
插件内置 `功能` 指令,会以图片形式展示完整指令列表、参数说明和是否需要令牌。当前帮助页按 16 个功能分组维护,约 87 条指令。
插件内置 `功能` 指令,会以图片形式展示完整指令列表、参数说明和是否需要令牌。当前帮助页按 13 个功能分组维护,约 88 条指令。
主要功能包括:
- 日常与官方:日常、月历、名望、公告、维护、区服、开服、状态、技改
- 职业与角色:角色、阵眼、奇穴、技能、小药、宏、配装、资历排行、试炼排行
- 奇遇:角色奇遇、未做奇遇、奇遇统计、近期奇遇、奇遇汇总、奇遇攻略
- 名剑:战绩、名剑排行、名剑统计
- 阵营:沙盘、阵营拍卖、阵营事件、关隘首领、帮战记录、统战 YY
- 交易:金价、外观物价、交易行、贴吧物价
- 活动:扶摇、诛恶事件、本日赤兔、本周赤兔、刷马、的卢
- 其他:拜师、收徒、名片、百战、精耐、招募、掉落、解密、八卦、骗子查询
- 本地功能:避雷添加、查看、查询、修改、删除
- 日常功能:日常、月历、名望、诛恶
- 官方功能:公告、维护、技改、区服、开服、状态
- 角色功能:角色、资历、名片、所有名片、奇遇、未做奇遇、战绩、精耐
- 职业功能:小药、宏、配装、阵眼、奇穴、技能
- 休闲功能:烟花、拜师、收徒、随机名片、攻略、奇遇统计、近期奇遇、奇遇汇总
- 阵营功能:沙盘、阵营拍卖、阵营事件、关隘首领、帮战记录、统战 YY
- 副本功能:百战、招募、掉落、解密
- 活动功能:扶摇、本日赤兔、本周赤兔、刷马、的卢
- 交易功能:金价、物价、交易行、贴吧物价
- 杂项功能:科举、花价、装饰、器物、八卦、骗子、骚话。
- 排行功能:名剑统计、名剑排行、资历排行、试炼排行和各类风云录榜单。
- 推送功能:开服推送、新闻推送、刷马推送、赤兔推送。
- 避雷功能:避雷查看、添加、删除、修改、查询。
## 安装与依赖
@@ -43,7 +46,7 @@ pip install -r requirements.txt
- `apscheduler`:后台推送任务调度。
- `matplotlib`:部分图像/数据展示依赖。
插件元信息在 `metadata.yaml` 中维护,要求 AstrBot 版本 `>=4.11.0`
插件元信息在 `metadata.yaml` 中维护,当前版本为 `v2.6`要求 AstrBot 版本 `>=4.11.0`
## 插件配置
@@ -166,9 +169,12 @@ pip install -r requirements.txt
```text
日常
诛恶
资历 飞翔大野猪
奇遇 飞翔大野猪
未做奇遇 飞翔大野猪 梦江南
战绩 飞翔大野猪 梦江南 33
名剑排行 50 33
贴吧物价 狐金 5 梦江南
统战 梦江南
```
@@ -234,6 +240,7 @@ astrbot_plugin_jx3/
- `image_msg()`:直接发送图片 URL 或图片数据。
- `plain_chain()`:发送文本 + 图片等富媒体消息链。
- `handler_plain_image_msg()`:先发文本,再发图片,适用于部分组合型功能。
- `handler_zili_msg()`:资历查询专用两轮会话,先发送 `0-18` 分类菜单,再按用户选择渲染资历进度图片。
所有可选服务器参数都会通过 `serverdefault()` 补齐默认服务器。
@@ -332,10 +339,28 @@ html_renderer.render_custom_template()
- 避雷记录。
- 推送任务状态缓存。
- 资历菜单与资历点数基础数据缓存,默认缓存 30 天,接口失败时可使用旧缓存兜底。
`core/sqlite.py` 封装了异步增删改查;`core/bilei_data.py` 基于该封装实现避雷数据管理。
### 8. 后台推送
### 8. 资历查询
`资历 角色名称 [服务器]` 是 2.6 新增的两轮对话功能。
第一轮会发送固定分类菜单,用户输入 `0-18` 后进入第二轮:
- `0`:展示角色资历总览,并列出 18 个大类的完成进度。
- `1-18`:展示对应大类总览,并列出该大类下所有子类的完成进度。
实现流程:
1. 通过角色信息接口 `jx3_jueshexinxi` 获取角色 `globalId`
2.`globalId` 请求 JX3BOX 角色资历接口,获取已完成资历 ID 列表。
3. 从资历菜单接口和资历点数接口读取基础数据,并缓存到本地 SQLite。
4. 展开菜单中单个 ID 和数组 ID,按资历点数计算 `已完成点数 / 总点数` 与百分比。
5. 使用 `templates/zili.html` 渲染进度条图片。
### 9. 后台推送
`core/async_task.py` 使用 APScheduler 实现轮询推送。