# 命令助手群机器人 **Repository Path**: projectxero/caqqbot ## Basic Information - **Project Name**: 命令助手群机器人 - **Description**: 使用Mirai编写的QQ群机器人 - **Primary Language**: Kotlin - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 8 - **Forks**: 1 - **Created**: 2020-07-24 - **Last Updated**: 2022-11-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 命令助手群机器人 ## 简介 本项目为管理 [MCBE命令助手反馈区(303697689)](https://jq.qq.com/?_wv=1027&k=5OOYWLn)、[MCBE命令助手讨论区(207913610)](https://jq.qq.com/?_wv=1027&k=46Yl84D) 与 [MCBE命令助手内测组(671317302)](https://jq.qq.com/?_wv=1027&k=5KACTpr) 的机器人。基于 [Mirai](https://github.com/mamoe/mirai) 项目开发,根据 [AGPLv3 with Mamoe Exceptions](https://github.com/mamoe/mirai/blob/master/LICENSE) 协议开源。 ## 功能 **管理功能**: 1. 可以设定机器人的好友为管理者或操作员。 2. 会向所有操作员发送机器人的操作日志。 3. 会执行所有管理者发来的命令。(计划加入脚本化执行) **讨论区功能**: 1. 自动拒绝所有人加群,并提示“暂未开放”。 2. (剩余功能开发中) **反馈区功能**: 1. 自动根据关键词同意加群。 2. 任一群管理员禁言群员时有提示,禁言时长大于 1 天还会要求给出理由。 3. 在给定时间开启全员禁言,持续指定时长后关闭全员禁言。 4. 机器人自身发送消息有频率上限,但允许短时间内快速发送消息。 5. 自动修改带有指定内容的群名片,并将包含指定内容的部分替换为星号。 6. 监听群聊内容,自动根据群员行为执行对应的行为。 |群员行为|机器人行为|备注| |:-:|:-:|:-:| |每天发言**①**|增加 5 信誉积分|每天一次,零点结算**②**| |正确时间签到|增加 5 信誉积分|在 23:00-1:00 内签到| |错误时间签到|禁言 1 天,扣除 10 信誉积分|| |单人连续4条重复消息|禁言 1 天,扣除 20 信誉积分|间隔 < 12s,发送至第3条时向群员发送当天仅一次的警告| |单人连续7条消息|禁言 1 天,扣除 20 信誉积分|间隔 < 5s,发送至第5条时向群员发送当天仅一次的警告| |群体连续7条重复消息|禁言 1 天,扣除 10 信誉积分|间隔 < 60s,发送至第5条时发送警告**③**| |群体连续10条消息|全员禁言 10 分钟|间隔 < 2s| |群主与管理员之外的群员在全员禁言期间发言**①**|扣除 20 信誉积分|不发送警告,扣至“信誉积分低于 300 分”此条触发为止| |信誉积分低于 300 分并发言**①**|禁言 1 天|零点结算时额外增加 15 信誉积分**②**| |定海神针|禁言 1 天,扣除 100 信誉积分|即发送长度超出 100 字符且空白符占比超过 50% 的消息| |金蝉脱壳|继续执行禁言,扣除 100 信誉积分|即被禁言后退群再加群,将群员退群与加群间的时间算为禁言中| |深水炸弹|撤回此条回执消息,扣除 300 信誉积分,禁言 1 天,全员禁言 10 分钟|即发送回执消息或类似具有通知全群员能力的消息| 注①:签到消息、回执消息、定海神针不计入“发言”,也不计入重复消息。 注②:每天零点结算的信誉积分可能受 DEBUFF 影响而降低。 注③:仅处罚发送第 7 条消息的发送者,随后重置计数器。单独的图片、表情、通知等不会计入,Emoji 除外。 7. 监听群管理员发送的命令并执行。 |命令功能|命令格式|备注| |:-:|:-:|:-:| |增加或减少指定群员的信誉积分|给**@需查询的群员**{增加/减少/扣除}**分数**点信誉积分[ 原因为*原因(可选)*]|| |查询指定群员的信誉积分|查询**@需查询的群员**的信誉积分|| |查询指定群员的信誉积分历史计入|查询**@需查询的群员**的信誉积分历史|| **日志功能**: 1. 日志分为三个类别:机器人日志、网络日志、管理日志 2. 上述三个类别的日志的信息部分输出到各自的文件夹内,错误部分统一输出至 `error` 文件夹内的两个文件 3. 所有日志文件都支持滚动 **信誉积分功能**: 1. 信誉积分表示一个QQ用户的信誉程度,仅由机器人维护,与腾讯方面无关。 2. 信誉积分初始为 500 分,上限 1000 分,下限 0 分。通过一些方式可以增加或减少信誉积分。 |群|行为|信誉积分变化|备注| |:-:|:-:|:-:|:-:| |反馈区|每天发言|+5|每天一次,零点结算| |反馈区|正确时间签到|+5|在 23:00-1:00 内签到| |反馈区|错误时间签到|-10|| |反馈区|单人连续4条重复消息|-20|间隔 < 12s| |反馈区|单人连续5条消息|-20|间隔 < 1s| |反馈区|群体连续7条重复消息|-20|间隔 < 60s,仅处罚发送第7条消息及之后的| |反馈区|定海神针|-100|即发送长度超出 100 字符且空白符占比超过 50% 的消息| |反馈区|金蝉脱壳|-100|即被禁言后退群再加群,以此逃避禁言| |反馈区|深水炸弹|-300|即发送回执消息或类似具有通知全群员能力的消息| 3. 当用户信誉积分低于 300 后,群内的聊天权限将受到限制。 4. 当用户信誉积分低于 100 后,将无法加入以上三个群。如果已在群内,则机器人不会将用户自动移除。 5. 管理员可以手动增加或减少群员的信誉积分,并查询某位群员的信誉积分及变动历史。 ## 部署相关 暂不提供配置文件 `profile.json`,请自行摸索编写。 ## 提供建议 请在 [Issues](https://gitee.com/projectxero/caqqbot/issues) 处提交 Issue。 ## 参与贡献 暂不推荐 fork 本项目修改后 PR。请直接提 Issue。 ## 许可证 **协议原版权归属腾讯科技股份有限公司所有,本项目其他代码遵守**: [**GNU AFFERO GENERAL PUBLIC LICENSE version 3 with Mamoe Exceptions**](https://github.com/mamoe/mirai/blob/master/LICENSE) (简称 `AGPLv3 with Mamoe Exceptions`), 建立在 [**GNU AFFERO GENERAL PUBLIC LICENSE version 3**](https://www.gnu.org/licenses/agpl-3.0.html) (简称 `AGPLv3`)的基础之上添加额外条件。 如果与 `AGPLv3` 冲突,则以 `AGPLv3 with Mamoe Exceptions` 的如下额外条件为准。 - **所有衍生软件 *(衍生软件: 间接或直接接触到 mirai, 即使没有修改 mirai 源码的软件)* 必须使用相同协议 (AGPLv3 with Mamoe Exceptions) 开源** - **本软件禁止用于一切商业活动** - **本软件禁止收费传递, 或在传递时不提供源代码**