Releases: paotuan/qqchannel-bot
v2.0.1
v2.0.0
🎲 更新日志
大家久等了,由于下半年工作持续繁忙,只能断断续续做点更新。这次发布 2.0 正式版本,更新内容如下:
-
支持场景&战斗面板的实时同步
重构了场景模块的数据同步方式。现在地图与战斗信息保存在数据库中,并支持实时同步。意味着如果你多开浏览器 tab,或把机器人部署在公网,多人同时登录同个频道,可以实时地看到地图的变更。
在战斗面板新建 NPC/怪物时,若为它们初始化了新的人物卡,人物卡会同时新增在”人物卡“ tab 下,并和玩家人物卡一样支持实时同步。
注:受重构影响,旧版本的场景数据不再保留。如果有旧的还在使用中的场景,建议先不升级,或升级后手动迁移。
-
机器人支持发送本地图片
当图片路径不以 http/https 开头时,视为发送本地图片。格式形如:
<img src="logo.png" />
图片需事先放在指定的目录下:
- 自定义回复:程序同级目录的
images
文件夹下 - 插件:插件文件夹目录下
- 牌堆:与牌堆 JSON 文件同级
- 自定义回复:程序同级目录的
-
支持通过 satori 协议,连接到更多的平台
较为高阶的功能,使用示例详见文档对应章节
-
网页多开和刷新后支持自动登录机器人,保留当前的状态
close #14
可在左上角菜单中手动退出登录
-
自定义检定规则支持判断 dnd d20 原值
自定义检定规则增加
firstD20
变量,代表 dnd 规则中 d20 的掷骰结果,可用于判断暴击/miss 等。示例: -
修复配置排序等问题
感谢 九牛、flamingo、茜茜 的发电支持!
请根据自己的操作系统选择对应的文件下载。
v2.0.0-alpha.6
QQ 群支持
接入方式
在 QQ 开放平台,机器人后台页面中,选择【沙箱配置】菜单。在【QQ 群 ID】选项中选择你要使用的 QQ 群。
在手机 QQ 中,打开 QQ 群的设置页面,找到【群机器人】菜单。点击菜单打开机器人列表,找到你的机器人(通常在列表底部),点击添加即可。
QQ 群的能力限制
由于官方接口能力不足,在 QQ 群中使用机器人会有许多限制之处。请大家在使用前了解以下限制,以提前避免不必要的疑问和困扰。
不支持获取机器人所在群的信息
影响:首次登录机器人时,在频道选择页面,需要用户在群里手动 @ 一次机器人,群的信息才会显示在列表中。且只能获取群的 OpenID,无法获取群名称和头像。
只能监听到用户 @ 机器人的消息
影响:用户必须 @ 机器人才能收到指令。log 记录无法记录没有 @ 机器人的普通消息
机器人无法获取用户的昵称
影响:机器人回复的消息和后台的用户选择器中,用户的昵称默认显示为 OpenID
为了解决这个问题,我们提供了三种方式:
- 可以在后台为每个用户单独设置昵称
- 用户可以在群内使用 nick 指令设置昵称
- 当用户使用 nn 指令关联人物卡时,若用户没有昵称,会将人物卡名称作为用户的昵称
机器人无法获取回复消息和表情表态
影响:无法使用对抗检定和表情表态掷骰
机器人无法获取消息中 @ 其他人的内容
影响:无法使用常规的代骰
替代方案:在 QQ 群中不要直接 @ 他人(蓝字的 @),可以改用纯文本的 @。可以 @ 人物卡名或用户的昵称
注:@ 人物卡名时,目前限制只能 @ 到已关联了玩家的人物卡。后续会优化开发 @ npc 人物卡的功能
机器人回复的消息会开头强制 @ 发送者,且不支持其余的 @
影响:自定义回复和自定义文案中的 {{at用户}}
会被吞。建议使用 {{用户名}}
或 {{人物卡名}}
替代。
机器人私聊需配置白名单
影响:暗骰和私聊机器人需要额外配置才能生效,否则机器人无法向用户发送私信消息。
配置方式:
首先登录 QQ 机器人后台,在【沙箱配置】-> 【在消息列表配置】中添加可以和机器人私聊的用户。
其次,用户在 QQ 中打开机器人的资料卡,点击【发消息】按钮,向机器人发送任意私聊消息。(只有在机器人后台添加了这个用户,才会出现发消息按钮)
完成后检查这个用户的好友列表,在【机器人】tab 下应会出现这个机器人了。只有与机器人成为好友,机器人才可以向用户发消息。若未完成此步骤,机器人发消息会出现 消息发送失败, 无好友关系
错误提示。
机器人私聊主动消息限制每月 4 条,且不支持使用群消息 ID 发送被动消息
影响:暗骰消息容易发送失败。若发送失败(命令行出现 主动消息超过频率限制
等报错),可尝试在私聊中主动向机器人发一条消息,即可在 5min 内再次接收机器人的私信。
v2.0.0-alpha.5
数据库 & 同步机制重构一期
省流:现在人物卡和配置无需手动点击保存。修改后输入框失焦即会自动保存
修改后的机制允许更细粒度地加载和更新数据,简化操作且降低了修改冲突的概率。
新的数据会使用数据库存储,保存在 db 文件夹下。数据库的内容人类不可读,请勿随意修改。
如需查看内容,可在网页左上角菜单点击【导出数据】按钮导出 zip(暂不支持直接向数据库导入数据)
感谢 一起一起这里那里 的发电支持!
v2.0.0-alpha.4
- 修复表情表态掷骰未遵循用户输入的问题
v2.0.0-alpha.3
- 修复由于 QQ 文字子频道分组改变,导致创建子频道失败的问题
- 优化公网 IP 获取
v2.0.0-alpha.2
- 修复人物卡未正确保存的问题
v2.0.0-alpha.1
本次更新主要对项目进行重构,以提升可维护性。涉及到用户的功能改动如下:
- 支持在机器人登录时创建文字子频道。
由于 QQ 频道改版导致现在难以创建文字子频道。现在我们可以尝试使用机器人 api 进行创建。
-
私信场景支持使用部分自定义回复。自定义回复的内容读取自默认配置。
同时插件新增了sendMessage
API,可代替原有的sendMessageToXXX
,自动根据不同场景将回复发送到频道或私信中。 -
网页 UI 库的更新升级,新增两套新的主题。
若主题切换功能无法正常使用,请升级浏览器到 Chrome/Edge 的最新版本。
其他:
- 升级部分底层依赖
- 项目结构重构为 monorepo
感谢 鹿鹿子、爱发电用户_25285 的发电支持!
v2.0.0-alpha.0
v1.9.0
🎲 更新日志
- 别名指令增强
别名指令可选择应用范围为【整条指令】,对用户输入进行字符串匹配替换,可适用于任意指令。典型使用场景:
关于别名指令的更多信息,请参考文档相关章节
- 优化插件的使用体验
新增单独的【插件管理】 菜单,展示当前已安装的所有插件。
安装插件后默认启用,无需手动开启。当关闭插件开关点击保存后,该插件下的所有子功能也一并关闭并隐藏。当开启插件开关点击保存后,该插件下的所有子功能也一并展示并默认开启(插件开发者标记为默认关闭的功能除外)
修改插件代码后可以点击重载按钮,无需重启程序即生效,以方便调试
插件支持让用户修改偏好设置,如自定义插件的文案等。目前系统自带插件的文案均已支持修改。
- 新增【钩子函数】菜单
钩子函数是一种新的插件类型,允许开发者将逻辑钩入指令解析与掷骰逻辑中,以实现更加丰富和灵活的效果。
在网页后台的钩子函数菜单中,展示了当前已启用插件包含的钩子函数选项,用户可以选择性开启或关闭某项子功能。
如上图,原有的实验性指令设置(除自定义回复支持代骰默认开启外)均已迁移到了钩子函数菜单设置中
- 新增部分插件,非自带,如有需要可在官网自行下载使用
包括 COC 理智损失播报、潜伏期、疯狂线、buff、故障值等功能。具体参考文档相关章节
- 新增一种 dnd 人物卡模板的导入支持 #12
- coc 检定探测到奖励骰时不标记技能成长
- 灵感功能:更换 api 地址,默认支持流式输出
- 更新 docker 部署脚本 #13 ,感谢 @monthwolf
- 修复:简单人物卡检定目标值计算错误的问题
- 其他内部优化
插件 API 变更 for 开发者:
IPluginConfig
新增字段description
,可选,用于【插件管理】菜单的展示IPluginConfig
新增字段preference
,可选,定义用户可在【插件管理】中修改的配置项- 插件的每个子功能新增字段
defaultEnabled
:是否默认启用功能。可选,默认true
- 别名指令配置新增字段
scope
:区分应用范围为表达式或整条指令 IPluginConfig
新增字段hooks
用于定义钩子函数- 新增 API
getPreference
用于获取配置项的当前值 - 新增 API
dispatchUserCommand
用于模拟用户发起一条指令 sendMessageToXXX
接口支持跳过指令解析步骤
如有涉及,可在插件文档查阅详细信息。
感谢 爱发电用户_FBme、爱发电用户_64916、爱发电用户_gRWq 的发电支持!
请根据自己的操作系统选择对应的文件下载。