UNPKG

koishi-plugin-onebot-manager

Version:

适用于 Onebot 的 QQ 群管,可自动处理好友申请、群邀请和入群请求,提供群组管理功能

116 lines (91 loc) 6.7 kB
# koishi-plugin-onebot-manager [![npm](https://img.shields.io/npm/v/koishi-plugin-onebot-manager?style=flat-square)](https://www.npmjs.com/package/koishi-plugin-onebot-manager) 适用于 Onebot 的 QQ 群管,可自动处理好友申请、群邀请和入群请求,提供群组管理功能 ## 功能特性 - **请求处理**:自动处理好友申请、群邀请和入群请求 - **通知功能**:将请求消息转发至指定群或私聊,并可通过回复进行处理 - **智能筛选**:根据账号注册时间、QQ等级、会员等级等条件自动决定是否通过请求 - **群管理**:设置群专属头衔、管理精华消息、设置群名片、禁言管理等实用功能 ### OneBot管理工具 - 提供丰富的信息查询功能,包括消息、图片、语音、合并转发等内容 - 支持查询账号信息、群组信息、成员信息等 - 提供OneBot实现重启、缓存清理等管理功能 - 支持获取运行状态和版本信息 ## 配置说明 ```yaml enable: true # 是否启用插件,默认为 true enableNotify: false # 是否启用通知功能 notifyTarget: '' # 通知目标,格式为 "guild:群号" 或 "private:QQ号" # 请求处理方式 friendRequest: 'reject' # 好友请求处理:accept(同意)、reject(拒绝)、manual(手动)、auto(智能) memberRequest: 'reject' # 加群请求处理:accept(同意)、reject(拒绝)、manual(手动)、auto(智能) guildRequest: 'reject' # 入群邀请处理:accept(同意)、reject(拒绝)、manual(手动)、auto(智能) # 人工审核模式下的超时设置 manualTimeout: 720 # 手动审核超时时间(分钟),0表示永不超时 manualTimeoutAction: 'reject' # 超时后的行为:accept(同意) 或 reject(拒绝) # 当好友请求为 auto 时的筛选条件 FriendRegTime: -1 # 最短注册年份(-1表示不启用此条件) FriendLevel: -1 # 最低QQ等级(-1表示不启用此条件) FriendVipLevel: -1 # 最低会员等级(-1表示不启用此条件) # 当加群请求为 auto 时的筛选条件 MemberRegTime: -1 # 最短注册年份(-1表示不启用此条件) MemberLevel: -1 # 最低QQ等级(-1表示不启用此条件) MemberVipLevel: -1 # 最低会员等级(-1表示不启用此条件) # 当入群邀请为 auto 时的筛选条件 GuildAllowUsers: [] # 邀请ID白名单 GuildMinMemberCount: -1 # 最低群成员数量(-1表示不启用此条件) GuildMaxCapacity: -1 # 最低群容量要求(-1表示不启用此条件) ``` ## OneBot命令 | 命令 | 说明 | 示例 | |-----|------|------| | `qgroup.restart` | 重启 OneBot | `qgroup.restart` | | `qgroup.clean` | 清理缓存 | `qgroup.clean` | | `get` | 获取消息内容及状态 | `get -i 1234567890` | | `get.forward` | 获取合并转发内容 | `get.forward -i 1234567890` | | `get.record` | 获取语音文件 | `get.record -f 1234.silk -t mp3` | | `get.image` | 获取图片文件 | `get.image -f abc.image` | | `get.file` | 获取文件信息 | `get.file -i file_id` | | `get.stat` | 获取运行状态 | `get.stat` | | `get.ver` | 获取版本信息 | `get.ver` | | `get.csrf` | 获取相关接口凭证 | `get.csrf qun.qq.com` | | `info` | 查询账号信息 | `info -n` | | `info.user` | 查询其它账号信息 | `info.user 123456 -n` | | `info.myfriend` | 获取本账号好友列表 | `info.myfriend all` | | `info.mygroup` | 获取本账号群组列表 | `info.mygroup 1` | | `info.group` | 查询群信息 | `info.group 123456 -n` | | `info.groupuser` | 查询群成员信息 | `info.groupuser 123456 654321 -n` | | `info.memberlist` | 获取群成员列表 | `info.memberlist 123456 1` | | `info.grouphonor` | 查询群荣誉信息 | `info.grouphonor 123456 -t talkative` | ## 群管理命令 | 命令 | 描述 | 示例 | |------|------|------| | `qgroup tag [头衔] [目标]` | 设置群专属头衔 | `qgroup tag 管理员` 设置自己头衔 `qgroup tag 群主 @用户` 设置他人头衔 `qgroup tag` 清除自己头衔 | | `qgroup membercard [名片] [目标]` | 设置群名片 | `qgroup membercard 新名片` 设置自己名片 `qgroup membercard 新名片 @用户` 设置他人名片 | | `qgroup groupname <群名>` | 设置群名称 | `qgroup groupname 新群名` | | `qgroup essence [消息ID]` | 设置精华消息 | `qgroup essence` 将引用的消息设为精华 `qgroup essence 123456` 将指定消息设为精华 | | `qgroup essence.del [消息ID]` | 移除精华消息 | `qgroup essence.del` 移除引用的精华消息 | | `qgroup admin <目标>` | 设置群管理 | `qgroup admin @用户` 设置用户为管理员 | | `qgroup admin.del <目标>` | 取消群管理 | `qgroup admin.del @用户` 取消用户的管理员 | | `qgroup mute <目标> [时长]` | 禁言群成员 | `qgroup mute @用户 60` 禁言用户60秒 `qgroup mute @用户 -c` 取消禁言 | | `qgroup mute.all [开关]` | 全体禁言 | `qgroup mute.all` 开启全体禁言 `qgroup mute.all false` 关闭全体禁言 | | `qgroup kick <目标>` | 踢出群成员 | `qgroup kick @用户` 踢出用户 `qgroup kick @用户 -r` 踢出并拒绝再次加群 | | `qgroup revoke` | 撤回消息 | `qgroup revoke` 撤回引用的消息 | ### 自动处理规则说明 - **好友请求**:当设置为 `auto` 时,插件会检查申请人的注册时间、QQ等级和会员等级,如果满足设置的条件则通过,否则拒绝 - **加群请求**:当设置为 `auto` 时,插件会检查申请人的注册时间、QQ等级和会员等级,如果满足设置的条件则通过,否则拒绝 - **入群邀请**:当设置为 `auto` 时,插件会检查邀请人是否在白名单中、群成员数量和群容量是否满足条件,满足则通过,否则拒绝 ### 通知功能`enableNotify` 设置为 `true` 时,插件会将请求消息转发到 `notifyTarget` 指定的目标。 - 通知目标格式:`guild:群号``private:QQ号` - 请求通知将显示请求编号,例如 `#1` - 处理请求回复格式:`y1` 同意请求 #1,`n1 理由` 拒绝请求 #1 - 添加好友请求回复格式:`y1 备注` 添加好友并设置备注 - 超时处理:如果设置了 `manualTimeout`,超时未处理的请求将按 `manualTimeoutAction` 自动处理 ## 注意事项 - 插件需要 Onebot 适配器支持 - 命令前缀均为 `qgroup`,可根据实际配置调整 - 群管理功能需要机器人具有相应的权限,如设置头衔需要群主权限 - 群管理命令支持 `-g` 参数指定群号,如 `qgroup tag 头衔 -g 123456` - 自动处理功能需要正确配置并启用对应条件 - 对于 `auto` 模式,如果未设置条件(保持 -1),将默认拒绝请求