Mirai Administrator
基于 Mirai Console 的 管理员 Bot 及其标准
使用前应该查阅的相关文档或项目
本插件实现的功能有:
- 联系人相关 自动审批,指令查看,用户留言
- 消息相关 发送消息,撤回消息
- 群管理相关 群消息审核,自动宵禁,自动清理不发言,禁言自动退群
本插件提供服务接口以供其他插件拓展功能
例如使用 Mirai Content Censor 依靠百度API审查群消息
例如使用 Mirai Authenticator 验证加群请求
MCL 指令安装
请确认 mcl.jar 的版本是 2.1.0+
./mcl --update-package xyz.cssxsh.mirai:mirai-administrator --channel maven-stable --type plugin
指令
注意: 使用前请确保可以 在聊天环境执行指令
<...>
中的是指令名
[...]
表示参数,当[...]
后面带?
时表示参数可选
本插件指令权限ID 格式为 xyz.cssxsh.mirai.plugin.mirai-administrator:command.*
, *
是指令的第一指令名
例如 /send to 12345
的权限ID为 xyz.cssxsh.mirai.plugin.mirai-administrator:command.send
对 机器人发送的联系人请求通知消息 回复 同意
或 不同意
或 拉黑
即可处理
插件提供黑名单功能,使用指令 /contact black u12345
, 即可拉黑用户,Bot将不响应用户动作(包括其他插件的功能)
ADMINCONTACTCOMMAND
Command | Description |
---|---|
/<contact> <delete> [contact] |
删除联系人 |
/<contact> <handle> [id] [accept]? [black]? |
处理联系人申请 |
/<contact> <request> |
查看申请列表 |
/<contact> <black> {permitteeIds} |
拉黑 |
/<contact> <white> {permitteeIds} |
取消拉黑 |
/<contact> <backup> |
触发备份功能 |
id
是 事件id 或 好友id 或 群idaccept
和black
参数为true
,yes
,enabled
,on
,1
时表示true
(不区分大小写)- 对 机器人发送的新联系人通知消息 回复
同意
或不同意
或拉黑
即可处理,详见 联系人审批配置 permitteeIds
是 权限系统的用户标识符,例如m12345.6789
, 可以提供多个 PermitteeId 一次性拉黑/取消拉黑- 黑名单通过
@EventHandler(priority = EventPriority.HIGH, concurrency = ConcurrencyKind.LOCKED)
拦截消息
ADMINFRIENDCOMMAND
Command | Description |
---|---|
/<friend> <list> |
好友列表 |
/<friend> <delete> [friend] |
删除好友 |
ADMINGROUPCOMMAND
Command | Description |
---|---|
/<group> <list> |
群列表 |
/<group> <member> [group] |
群成员 |
/<group> <quit> [group] |
退出群聊 |
/<group> <kick> [member] [reason]? [black]? |
踢出群员 |
/<group> <nick> [member] [nick] |
群昵称 |
/<group> <title> [member] [title] |
群头衔 |
/<group> <mute> [member] [second] |
禁言 |
/<group> <quiet> [group] [open]? |
全体禁言 |
/<group> <admin> [member] [operation]? |
设置管理员 |
/<group> <announce> [group] |
设置公告 |
/<group> <rank> [group] {levels} |
设置等级头衔 |
ADMINRECALLCOMMAND
Command | Description |
---|---|
/<recall> [contact]? |
撤回消息 |
- 不指定
contact
时,可以通过回复消息指定要撤销的消息,如果没有指定,将尝试撤销最后一条不是由指令发送者发送的消息 contact
是群员时,将尝试撤销这个群员的最后一条消息contact
是群或好友时,将尝试撤销bot的最后一条消息
ADMINREGISTEREDCOMMAND
Command | Description |
---|---|
/<registered> |
查看已注册指令 |
/<reg> |
查看已注册指令 |
ADMINSENDCOMMAND
Command | Description |
---|---|
/<send> <groups> [bot]? [at]? [second]? |
发送给所有群 |
/<send> <friends> [bot]? [second]? |
发送给所有好友 |
/<send> <to> [contact] [at]? |
发送给指定联系人 |
/<send> <nudge> [user] |
戳一戳指定联系人 |
/<send> <log> {addresses} |
备份日志到邮箱 |
bot
参数在命令行模式下需要指定at
参数为true
,yes
,enabled
,on
,1
时表示true
, 将附加一个Atsecond
参数为 延迟的秒数 例如/send groups 123456 false 10
addresses
参数为 邮箱地址
ADMINTIMERCOMMAND
Command | Description |
---|---|
/<timer> <config> |
显示当前设置 |
/<timer> <mute> [moment] [cron] [group]? |
宵禁 |
/<timer> <cleaner> [day] [cron] [group]? |
清理不发言 |
/<timer> <status> [cron] [bot]? |
定时发送机器人状态 |
/<timer> <message> [cron] [target] [at] |
定时发送消息 |
group
为 要操作的群,在群聊中可以不指定cron
, 为 CRON 表达式, 由秒 分钟 小时 日 月 周
组成
例如0 0 1 * * ?
表示每天 01:00 执行一次,0 30 2 ? * 2-6
表示星期一至星期五 每天 02:30 执行一次
可以使用在线编辑器生成 https://www.bejson.com/othertools/cron/
为防止被 空格 分成多个参数,请使用"
包裹参数moment
为 DURATION 表达式, 由PnDTnHnMn.nS
组成
例如P1DT2H3M4.5S
表示 一天二小时三分钟四点五秒,PT5H
表示 五小时- mute 指令,moment 小于
0
宵禁就会关闭
例如/timer mute PT5H "0 0 1 ? * 2-6"
, 将会在 星期一到星期五的凌晨01:00 禁言 5 小时
例如/timer mute PT0S "0 0 0 1 * ?"
, 将会 取消 禁言定时器 - day 单位为天数的发言期限, 小于
0
宵禁就会关闭
例如/timer cleaner 365 "0 0 12 ? * 0"
, 将会 取消 禁言定时器
配置
联系人审批配置
AdminAutoApproverConfig.yml
禁言自动退群配置
AdminAutoQuitConfig.yml
mute_limit
大于这个设置秒数的禁言会触发自动退群
留言配置
AdminCommentConfig.yml
xyz.cssxsh.mirai.plugin.mirai-administrator:comment.include
作用: 拥有此权限的用户,可以给机器人留言
机器人上线消息配置
AdminOnlineMessageConfig.yml
xyz.cssxsh.mirai.plugin.mirai-administrator:online.include
作用: 拥有此权限的群,会发送上线通知
消息审查及机器人所有者
AdminSetting.yml
censor_types
可选值IMAGE, FLASH, SERVICE, APP, AUDIO, FORWARD, VIP, MARKET, MUSIC, POKE
- 正则词库, 须手动添加,将会加载 censor 文件夹中的 txt 文件,每一行对应一个正则匹配,会监听文件改动,无需重启
邮件配置
AdminMailConfig.yml
配置一些默认的发送对象admin.mail.properties
配置邮箱账号等
格式参考
1 | mail.host=smtp.mail.qq.com |
QQ邮箱帮助: https://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 W1ndysの小屋!
评论