HuYanSession2——一款全功能自定义回复插件和小群管
上面的download是下载,release是查看所有版本!
gitee好久没更新了...
如果上面加载不出来可以点这里下载
迭代
相较于壶言1,壶言2实现了:
- 支持多个机器人
- 更便捷的指令并且中英双支持
- 更全面的群管理
- 更多词条参数识别
比如$at(qq)
将会被转换为@该人
- 更全面的权限系统
权限可以下发到某一条聊天命令!
- 更更规整的代码
这条才是重点!
方便后续的拓展
更新进度及以发现问题->点这里
使用
前置依赖
Hibernate 前置插件,ORM 数据库框架,群/好友消息记录 下载适配版本
感谢大佬提供的轮子 @cssxsh
将下载好的jar文件添加到mcl的plugin文件夹,运行mcl即可,启动成功后在console控制台输入
/hy owner <QQ>
添加主人即可
如果聊天命令没有起作用请重启mcl!
如果你对mcl有一定的了解,那么你可以尝试用以下的方法来安装壶言2
你需要先删除plugin中的壶言2和前置的 jar,
再执行以下命令:
# 前置
mcl --update-package xyz.cssxsh.mirai:mirai-hibernate-plugin --channel maven-stable --type plugin
# 只安装正式版
mcl --update-package cn.chahuyun:HuYanSession --channel maven-stable --type plugin
# 升级
mcl update
# 一个重启小插件(壶言重启)
!重启
自定义回复
权限id:session
更新
新增图片本地缓存,用不过期(2.4.x)
参数
所有自定义回复都会携带作用域和匹配方式参数!
支持更简洁的输入且都是可选!默认为精准
和全局
!
[]
和()
指数学中的域,在本插件表示可填写
和必填写
;
|
为或,表示两边都可以用;
以下所有指令均适用于此表示方法!
[精准|1]
精准匹配[模糊|2]
模糊匹配[头部|3]
头部匹配[结尾|4]
结尾匹配[全局|0]
全局匹配[当前|-1]
当前群匹配[群组(id)|gr(id)]
指定群组匹配
具体参数含义可以去壶言1查看
一对一回复(会话)
权限id:sessionx
直接上指令
指令 | 含义 | 案例 | 中文格式 |
---|---|---|---|
xx (触发内容) (回复内容) [参数] |
快速添加关键字回复 参数可多填,以空格隔开 | xx 怎么办 凉拌 2 0 |
学习 怎么办 凉拌 模糊 全局 |
xx:[触发内容] |
查询所有已保存的关键词回复,冒号中英都支持,后续的触发内容填上就是查询对应的那条 | xx: |
查询 怎么办 |
-xx:(触发内容) |
删除对应的关键词 | -xx:怎么办 |
删除 怎么办 |
%xx |
通过多次消息发送的形式添加对话,便于手机使用 | %xx |
学习对话 |
-%xx |
由于多次消息形式添加的对话的触发词可能含有空格,因此要用对应的方式删除 | -%xx |
删除对话 |
下面的参数
2:模糊匹配 gr1 群组编号1 内触发
学习对话参数:
0 | 全局
修改触发作用域为这个机器人的所有群1 | 精准
只有发的消息跟触发词相同,才能触发回复,不填写参数默认
2 | 模糊
发送消息包含触发词即可触发。3 | 头部
发送消息的开头为触发词即可触发4 | 结尾
发送消息的结尾为触发词即可触发5 | 正则
以正则匹配触发消息,仅限%xx
学习功能-1 | 当前
修改触发作用域为当期这个群,不填写参数默认
gr(id) | 群组(id)
修改作用域为对应的群组id,()不是指令,只是说明这个id
必须填写,群组的使用方式在下方
所有参数都在聊天指令的结尾以(空格)(参数)
添加,无序。
对话和多词条支持的动态消息:
欢迎词支持的动态消息:
动态消息类型 | 动态消息参数 | 含义 | 案例 | 匹配结果 |
---|---|---|---|---|
at |
this |
@(at)触发这条消息的人 | $at(this) |
@放空 |
qq |
@群里的这个人,会固定@这个人 | $at(572490972) |
@放空 | |
message |
this |
这个人触发这条消息的内容 | $message(this) |
不会写插件怎么办? |
user |
name |
获取这个人的名称 | $user(name) |
放空 |
id |
获取这个人的qq | $user(id) |
572490972 | |
avatar |
获取这个人的头像 | $user(avatar) |
[图片] | |
title |
获取这个人的头衔,优先获取特殊头衔 | $user(title) |
才不是放空了~ | |
info |
详细信息?? | $user(info) |
||
time |
now |
获取当前时间,默认格式yyyy-MM-dd HH:mm:ss |
$time(now) |
2022-8-28 02:15:15 |
(时间格式) |
按照指定的时间格式进行现在的时间输出 | $time(HH:mm:ss) |
02:16:20 |
正则消息回流(仅限一对一回复)
请以%xx
学习,学习内容为(你的正则1)
,与之对应的回复内容为$mate(1)
,
参数为5,也就是正则匹配,1对应第一个括号匹配的内容。
案例:
与之类似的,你只需要更改括号中正则,就可以达到你想要的东西。
一对多回复(多词条)
权限id:sessiondct
指令:
指令 | 含义 | 案例 | 中文格式 |
---|---|---|---|
%dct |
添加多词条 | %dct |
添加多词条 |
dct: |
查询所有多词条 | %dct |
查询多词条 |
-dct:(id) [id] |
删除多词条,id通过查询得到,第一个id是对应的多次条id,第二个id是对应回复语句id,如果填写,就是删除这个多次回复语句下的这条回复,支持空格隔开一次删除多条 | -dct:5 |
删除:2 34 44 23 |
在添加多词条消息的途中,
发送
!!! | !!!
结束添加,不进行保存,直接结束这次操作!! | !!
在循环添加回复内容时,停止添加,退出进行多词条消息的保存! | !
删除上一条添加的内容
添加多词条参数:
1 | 精准
只有发的消息跟触发词相同,才能触发回复,不填写参数默认
2 | 模糊
发送消息包含触发词即可触发。3 | 头部
发送消息的开头为触发词即可触发4 | 结尾
发送消息的结尾为触发词即可触发lx | 轮询
多个词条回复的顺序为轮询,就是一条一条发送去,不填写参数默认
sj | 随机
修改回复顺序为随机,就是触发后随机从多词条中取一条拿来回复0 | 全局
修改触发作用域为这个机器人的所有群gr(id) | 群组(id)
修改作用域为对应的群组id,()不是指令,只是说明这个id
必须填写
单个多词条回复语句也支持动态消息,具体支持看上面的对话动态消息支持
群组
权限id:list
用于设定特定几个群的群组系统,用于一些东西只在这几个群中触发,其他插件有个相反的功能叫群黑名单,我这个是正向的,只在那些群触发。
指令:
指令 | 含义 | 案例 | 中文格式 |
---|---|---|---|
+gr:(id) (群号) |
添加多个群为一个群组,群号支持多个 | +gr:1 780594692 |
添加群组:1 780594692 390444068 |
gr:[id] |
查询所有群组信息,id填写后只查询对应的id所属群组信息 | gr: |
查询群组:1 |
-gr:(id) [群号] |
删除这个群组里面的某个群号,支持多个群号 | -gr:1 |
删除群组:1 390444068 780594692 |
与之类似,你只需要更换你的正则匹配就可以
定时器
权限id:ds
定时任务是指,按照指定的时间频率发送对应的消息,时间频率是cron表达式,不懂的人可以花5分钟了解一下,基本能满足任何时间频率
cron输入格式$cron(* * * * * ?)
定时管理
指令:
指令 | 含义 | 案例 | 中文格式 |
---|---|---|---|
%ds |
添加定时任务,具体根据提示进行添加 | %ds |
添加定时器 | 添加定时任务 |
-ds(id) |
删除定时任务,id查询获得 | -ds:1 |
删除定时器:1 | 删除定时任务:1 |
在添加回复消息的途中,
发送
!!! | !!!
结束添加,不进行保存,直接结束这次操作!! | !!
在循环添加回复内容时,停止添加,退出进行定时任务的保存! | !
删除上一条添加的内容
定时任务的参数:
hf | 回复
定时器触发后只回复一条消息,不填参数默认
lx | 轮询
定时器的回复内容将成为多词条的样式,并且回复词条顺序为轮询,与随机冲突!sj | 随机
定时器的回复内容将成为多词条的样式,并且回复词条顺序为随机,与轮询冲突!-1 | 当前
作用域-当前这个群默认
0 | 全局
作用域-全部群gr(id) | 群组(id)
作用域-指定群组
定时器操作
权限id:dscz
指令 | 含义 | 案例 | 中文格式 |
---|---|---|---|
ds: |
查询定时任务 | ds: |
查询定时器 | 查询定时任务 |
%ds:(id) |
切换定时任务的状态,如果已经开启,则切换为关闭,id查询获取 | %ds:1 |
切换定时器:1 | 切换定时任务:1 |
群管理
权限id:group
此权限不是指令权限
对于几个检测群的功能,需要先将对于群添加为检测群
/hy agroup (群号) #添加
/hy dgroup (群号) #删除
依然支持在config文件手动添加
特殊头衔
当你的机器人是群主时才可以使用,拥有admin
、group
权限的用户也可以用于使用。
指令:
指令 | 含义 | 案例 | 中文格式 |
---|---|---|---|
%@(user) (内容) |
给这个人修改特殊头衔 | %@放空 才不是放空了~ |
设置头衔@放空 才不是放空了~ |
是群主才行哦~
群欢迎词
权限id:grouphyc
当有人申请的时候,拥有管理员权限的机器人并且加入了检测的群
机器人会给出提示
在配置文件中有是否启用开关
指令:
指令 | 含义 | 案例 | 中文格式 |
---|---|---|---|
开门 id|all |
同意这个人的进群申请 | 开门 1 |
开门 all |
同意 id|all |
同意这个人的进群申请 | 同意 1 |
同意 all |
关门 id|all |
关门这个人的进群申请 | 关门 1 |
关门 all |
拒绝 id|all |
拒绝这个人的进群申请 | 拒绝 1 |
拒绝 all |
id是进群时所提示的门牌号
欢迎词功能不需要检测群支持!
欢迎词指令:
指令 | 含义 | 案例 | 中文格式 |
---|---|---|---|
%hyc |
添加欢迎词 | %hyc |
添加欢迎词 |
hyc: |
查询欢迎词词 | hyc: |
查询欢迎词 |
-hyc:(id) [id] |
删除欢迎,id查询获得,第二个id是对应的欢迎词集合中的某条欢迎词,不支持多条删除 | -hyc:2 |
删除欢迎词:1 15 |
参数:
lx | 轮询
欢迎词将以轮询的方式逐条发送,默认
sj | 随机
欢迎词将随机发送0 | 全局
作用域:全局gr(id) | 群组(id)
作用域:群组
注意:欢迎词是轮询添加,使用!!
或!!
保存!
欢迎词支持的动态消息:
动态消息类型 | 动态消息参数 | 含义 | 案例 | 匹配结果 |
---|---|---|---|---|
at |
this |
@(at)这个进群的人 | $at(this) |
@放空 |
that |
这个要请他的人,如果没有邀请的人则会at同意他进来的那个人 | $at(that) |
@放空 | |
qq |
@群里的这个人,会固定@这个人 | $at(572490972) |
@放空 | |
message |
apply |
获取这个人进群申请的消息 | $message(apply) |
这个人什么都没说... |
user |
name |
获取这个人进群时的名称 | $user(name) |
放空 |
id |
获取这个人的qq | $user(id) |
572490972 | |
avatar |
获取这个人的头像 | $user(avatar) |
[图片] | |
time |
所有支持动态消息的都支持时间,具体用法在文档前面的对话 |
禁言
权限id:groupjy
此指令只有在你的机器人是管理员或群主才能触发
指令:
指令 | 含义 | 案例 | 中文格式 |
---|---|---|---|
@某人(禁言时间) |
在机器人有权限的情况下,对你@的这个人进行指定时间的禁言 | @放空 3m |
`` |
@某人 0s |
解除禁言 | @放空 |
`` |
时间频率:
s
秒m
分钟h
小时d
天
违禁词
不需要检测群支持。
此指令只有在你的机器人是管理员或群主才能起作用。
指令:
指令 | 含义 | 案例 | 中文格式 |
---|---|---|---|
+wjc:(内容) [param] |
添加违禁词,内容是触发内容,param是参数,具体可以查看下方 | +wjc:色图 ch 2m |
添加违禁词:色图 % jy |
-wjc:(id) |
删除违禁词,id查询获得 | -wjc:2 |
删除违禁词:2 |
wjc: |
查询所有违禁词 | wjc: |
查询违禁词 |
参数的意义
ch
违禁词默认撤回,当输入ch后,wjc将不撤回消息jy
违禁词默认禁言,当输入jy后,wjc将不禁言3s
修改禁言时间,具体时间格式查看禁言%
重写回复语句,支持动态消息,具体支持动态消息查看下方[gr1 | 0 ]
群组或全局,默认当前群1,2,3,4
匹配方式,跟关键词回复的匹配同理hmd3
开启触发3次后就会踢出群聊,数字可自选
hmd参数输入后,将会开启小黑屋功能,不会提示!当某个人触发这个wjc到达次数,直接踢出本群,可以和下面的自动添加黑名单配合!
违禁词回复消息支持动态消息:
动态消息类型 | 动态消息参数 | 含义 | 案例 | 匹配结果 |
---|---|---|---|---|
at |
this |
@(at)触发这条消息的人 | $at(this) |
@放空 |
qq |
@群里的这个人,会固定@这个人 | $at(572490972) |
@放空 | |
message |
this |
这个人触发这条消息的内容 | $message(this) |
不会写插件怎么办? |
jyString |
这条违禁词的禁言时间中文 | $message(jyString) |
禁言2分钟 | |
prohibitString |
同上 | |||
null |
不发送消息 | $message(null) |
||
user |
name |
获取这个人的名称 | $user(name) |
放空 |
id |
获取这个人的qq | $user(id) |
572490972 | |
avatar |
获取这个人的头像 | $user(avatar) |
[图片] | |
title |
获取这个人的头衔,优先获取特殊头衔 | $user(title) |
才不是放空了~ | |
info |
详细信息?? | $user(info) |
||
time |
now |
获取当前时间,默认格式yyyy-MM-dd HH:mm:ss |
$time(now) |
2022-8-28 02:15:15 |
(时间格式) |
按照指定的时间格式进行现在的时间输出 | $time(HH:mm:ss) |
02:16:20 |
黑名单
权限id:grouphmd
不需要检测群支持。
此指令只有在你的机器人是管理员或群主才能触发。
支持作用域!!设置为全局时,该用户将被你的bot封禁!
指令 | 含义 | 案例 | 中文格式 |
---|---|---|---|
+hmd:@(user) [param] |
添加黑名单,参数看下方 | +hmd:@放空 jy |
添加黑名单:@放空 % |
hmd: |
查询黑名单 | hmd: |
查询黑名单 |
-hmd:(id) |
删除黑名单,id查询获得 | -hmd:3 |
删除黑名单:2 |
参数:
t
默认检测到就踢出,携带参数不踢出jy
默认禁言(优先踢出),携带参数不禁言ch
默认撤回该用户的消息,携带不提出0 | gr(id)
作用域不携带参数默认当前群
%
重写封禁理由
此功能需要检测群支持!
在配置文件blacklist有退群自动添加黑名单开关!
里面还有重写封禁理由!
撤回消息
权限id:groupch
用于撤回上面的群消息,机器人是管理员和群主才能使用
指令:
指令 | 含义 | 案例 | 中文格式 |
---|---|---|---|
!recall |
撤回上面这条消息 | !recall |
撤回 |
!recall (number) |
撤回前面几条消息,不包含这条消息 | !recall 5 |
撤回 5 |
!recall 1-5 |
撤回上面1到5条,从第0条算起,包含这条消息 | !recall 1-5 |
撤回 25-55 |
具体用法试一试就明白,撤回多条消息时,权限可能会有冲突。
消息被群友顶上去了,我仍然能撤回!
踢人
权限id:grouptr
此指令只有在你的机器人是管理员或群主才能触发
指令 | 含义 | 案例 | 中文格式 |
---|---|---|---|
tr@(user) [hmd] |
踢人 | tr@放空 |
踢人@放空 |
参数:
hmd
qq的踢人有个禁止此用户再次加群,输入后将禁止此用户再次加群
权限系统
权限id:admin
指令:
指令 | 含义 | 案例 | 中文格式 |
---|---|---|---|
+@(user) (权限id) |
赋予这个群的这个人的某个权限,权限id可在文档查看 | +@放空 admin |
添加@放空 all |
-@(user) |
移除这个权限 | -@放空 all |
删除@放空 group |
!power [param] |
查询权限列表,参数如下 | !power all |
权限列表 all |
参数:
@某人
查看指定人在本群的权限all
查询所有权限或添加所有权限或删除所有权限
查询可以输入对应的群号 或者 qq号 来查询指定区域的权限信息
也可以直接 all 查询全部
然后通过 上一页
和 下一页
来进行翻译阅读
多机器人互冲
对于同时加载多个bot的使用者
容易存在一条指令两个bot触发,因此,加了一个‘暂停功能’
指令:
指令 | 含义 | 案例 | 中文格式 |
---|---|---|---|
!pause @(bot) |
你发的下一条消息,这个机器人将会忽略(包括触发) | !pause@乌拉 |
|
!pause @(bot) 5 |
忽略下5条消息,消息数量自定 | !pause @乌拉 5 |
不带参数,默认忽略你的下一条消息
也可以自定义忽略下几条消息,这个记录是写在内存的,如果不小心输入多了(9999999999),重启就行。
插件指令
指令 | 含义 | 案例 |
---|---|---|
/hy aGroup |
添加一个监测群 | /hy aGroup 390444068 |
/hy dGroup |
删除一个监测群 | /hy dGroup 390444068 |
/hy v |
查询当前插件版本 | /hy v |
/hy transfer |
转移一个所属bot的数据到另一个bot | /hy transfer 2061954151 3630254205 |
规划和已知BUG
任何意见都可以提!
以后的规划将不在此处更新,具体更新查看下面
规划:
- 实现消息的excel导入和导出(在1添加导出功能)
bug:
交流
壶言系列插件交流群 不是云的茶壶云(390444068)
有任何疑问或者建议都可以来群里提!
更新进度及以发现问题->点这里
最新的插件动态也会在群里说明!