[壶言3]壶言会话3-一款高度自定义的自定义回复插件
-
壶言会话3
好久不见,我是鸽了快一年的放空
新版本已经完成基本的底层搭建,剩下的就是慢慢不全各功能模块就行。
现在在这里征集好的注意!仓库地址:HuYanSession3
现有功能
鉴于前车之鉴,本次升级对上版本插件做减法,对插件进行分离,自定义回复独立提取出来,群管功能以后成为一个单独的插件。
- 自定义数据库接入:目前支持(sqlite,h2,mysql)
- 自定义缓存位置:目前支持(内存),预留(redis)
- 自定义权限:目前支持(内置),预留接入HuYanAuthorize未来可能会接入lp
- 分组支持多种类型:对以前的群分组进行了升级,现在分组不仅可以对群分组,还能对人分组和对群成员分组!
- 高度定义的作用域匹配:7种作用域匹配,满足的需求
- 重新设计的单一消息,更加简洁,新增了概率回复功能,保留了壶言会话2.4.x的本地缓存功能
使用
现阶段版本已经可以进行测试使用
如果你想使用,可以去群里获取测试版本的插件,放入plugins文件夹启动即可使用。由于当前版本为壶言会话2的拆分版,你可以与壶言会话2一起使用,但是会触发两个插件的命令,解决方式就是使用壶言会话2的过滤消息功能将壶言会话2的指令暂时过滤掉!
对于现阶段mirai的半死状态,这边目前可以总计一下目前可能能行的登录方案:
- 签名服务-非常的不稳定(及其容易封号),但是能用
- 通过Overflow插件接入其他平台的OneBot转生
蕉流与学习
目前就这完成了这么多,后续会慢慢完善,如果你有好的意见,可以在本帖子种回复。也可以加群直接at我,不是云的茶壶云(390444068)
如果你想学习编写mirai插件,或者刚学java,欢迎来对本项目进行编写和pr,结构简单易上手!
以下是本插件部分文档,会持续更新。
参数
对于部分参数,有默认值,可省略不填。
|
指可选,左边或右边选择一个即可
+
指可填写多个,一般中间用
(xx)
指必填,括号内内容必须填写。
[xxx]
指可选填写。匹配方式
1|精准
精准匹配(默认)2|模糊
模糊匹配,包含触发词即匹配成功。3|头部
头部匹配,从前往后匹配触发词即匹配成功。4|尾部
尾部匹配,从后往前匹配触发词即匹配成功。5|正则
正则匹配,按照正则匹配结果。
重写
对于部分只能存在一条的信息,在参数集里面添加重写状态即可重写写入该信息。
%|rewrite
启用重写。
动态消息
不同于壶言会话2的自动识别动态消息,壶言会话3这边需要手动指定是否启用动态消息。
dt|动态|dynamic
启用动态消息。
本地缓存
由于腾讯服务器储存图片有概率过期,因此设计本地缓存功能,在config中有默认开启配置,默认不开启。
也可以根据单个消息默认设定开启与否。ca|缓存|cache
启用本地缓存。
转换方式
消息在匹配时的转换方式
MIRAICODE
miraiCode(默认)。STRING
String。CONTENT
content。JSON
json。
作用域
global
全局。global-(id)|global-(at)
全局的某个用户,可填号码,可at人。group
当前群(默认)。member-(id)|member-(at)
某个群友。list-(id)
自定义群列表。users-(id)
自定义用户列表。members-(id)
自定义某个群的群用户列表。
触发概率
probability-(0.0~1.0)
消息的触发概率。
是否随机
random
用于多词条的开启随机触发功能
动态消息类型
针对上一代的动态消息使用体验,这个版本也进行了一次优化
现格式为:
${prefix.suffix}
前缀 后缀 含义 案例 at this at当前发消息的这个人 ${at.this}
all at全体(慎用!) ${at.all}
(qq) at这个qq用户 ${at.572490972}
user id 获取发送者的QQ号 ${user.id}
name 发送者的名称 ${user.name}
avatar 发送者的头像 ${user.avatar}
title 发送者的头衔(仅限群) ${user.title}
group id 群号(仅限群) ${group.id}
name 群名称(仅限群) ${group.name}
avatar 群头像(仅限群) ${group.avatar}
owner 群主名称(仅限群) ${group.owner}
time now 当前时间(默认格式) ${time.now}
timer 当前的时间戳 ${time.timer}
(format) 当前时间的自定义格式 ${time.HH:mm:ss.SSS}
mate (number) 正则回流编号<br/>(仅限正则匹配中包含匹配块) ${mate.1}
message this 当前的消息 ${message.this}
reverse 反转的消息(按照消息顺序反转) ${message.reverse}
owner id 主人的id(得与机器人是好友) ${owner.id}
name 主人的名称(得与机器人是好友) ${owner.name}
avatar 主人的头像(得与机器人是好友) ${owner.avatar}
对于一对一消息回复,如果想启用动态消息的匹配,得才参数中添加
dt
来启用动态消息识别!指令
消息功能
权限id:
session
一对一消息
权限id:
hh
指令 含义 案例 %xx (a) (b) [params]+
学习一个一对一回复 %xx a b
%xx [a]
对话的方式学习 %xx
,%xx a
学习 (a) (b) [params]+
同上 学习 啊啊啊 哦哦哦
-xx (a) [scope\|id]
删除一个一对一回复^1 -xx a
,-xx a 5
删除 (啊啊啊) [scope\|id]
同上 删除 啊啊啊
%%xx
刷新单一消息缓存 %%xx
第二类删除
对于一个短时间内响应的回复消息,如果你有权限,即可引用该消息并发送
删除
或sc
即可删除!参数
params 支持列表:
- 匹配方式
- 重写
- 动态消息
- 本地缓存
- 转换方式
- 作用域
- 触发概率
动态消息支持列表:
- 全部
一对多消息
权限id:
dct
指令 含义 案例 %dct [trigger]
进入多词条学习状态(3分钟超时) %dct
,%dct nova的错
学习多词条
同上 学习多词条
-dct (trigger\|id-(id)) [id]
删除多词条 -dct 群典
,-dct id-2 5
删除多词条 (trigger\|id-(id)) [id]
同上 删除多词条 群典
,删除多词条 id-2 5
%%dct
刷新多词条缓存 %%dct
第二类删除
对于一个短时间内响应的回复消息,如果你有权限,即可引用该消息并发送
删除
或sc
即可删除!params 支持列表:
- 匹配方式
- 重写
- 本地缓存
- 作用域
- 触发概率
多词条默认自动识别动态消息!
动态消息支持列表:
- 全部
群典功能
这是一个非常有意思的功能!
在配置中启动该功能后,对着机器人在线期间的消息回复一个
批准入典
, 将会默认生成一个触发词为群典
(在配置中自定义)的多词条集这个
群典
只属于当前群,意味着对于不同的群,可以有不同的群典!记录群友的丢人瞬间!
定时消息
权限id:
ds
权限功能
权限id:
admin
指令 含义 案例 +(scope)-(at\|qq) (权限id) [权限id]
为该作用域添加一个权限 +global-@572490972 admin
添加权限(scope)-(at\|qq) (权限id) [权限id]
同上 添加权限@572490972 amind
-(scope)-(at\|qq) (权限id) [权限id]
为该作用域删除一个权限 -global-@572490972 admin
删除权限(scope)-(at\|qq) (权限id) [权限id]
同上 删除权限@572490972 admin
分组功能
插件指令
hys v
查询当前壶言会话3的版本。
-
那我先来~
录入多词条,%dct触发多词条录入时,如果输入的触发词是之前已经有的,那么进入添加回复模式。
A→B.C.D 添加E后变为 A→B,C,D,E -
@firefairy 需要查重吗?不查重就是允许重复添加。
-
@Moyuyanli 要查重吧
-
@firefairy 行,那大致流程就是
输入指令%dct->输入触发词->输入参数(能强制匹配id,也可根据参数来匹配对应的多词条集)->重复添加多词条->!!保存 -
@Moyuyanli 可以
-
好耶,第一个版本什么时候出来🤪
-
希望打造一个全能群管加一点点娱乐
先来个点歌 -
@Giveuplll 据说月底可以来debug(doge)
-
@firefairy 此话当真?
-
是得先来个点歌,目前mirai其他的点歌插件基本都是两年前的网易云什么的api都变了
-
@XC_084 点歌考虑在娱乐插件里面,我有个壶言经济,往那个里面加吧,这个插件是功能性插件
-
@Moyuyanli 好耶加进去
-
文档更新了!群典功能非常好用!
-
插眼
-
好强大的样子
-
希望能兼容下overflow,目前壶言2在overflow下发送图片是这个样子的
-
@SnowMoonSS 应该是overflow不兼容cq码吧,使用cq码就不行了,作者大佬可能在做3了,希望3里面考虑进去吧
-
@shihuang214 在 [壶言3]壶言会话3-一款高度自定义的自定义回复插件 中说:
@SnowMoonSS 应该是overflow不兼容cq码吧,使用cq码就不行了,作者大佬可能在做3了,希望3里面考虑进去吧
确实,但是用消息段又会导致另一个服务不兼容,很难受。llonebot的消息类型,token都是全局的,没办法给每个服务单独设置。
-
@SnowMoonSS 提个issues吧,有空我去兼容一下.