HRobot 支持配置文件,配置文件在 mcl/config/com.happysnaker.HRobot/config.json 中,您可以手动创建配置文件,不过建议您运行一次 mcl.cmd,这会自动生产配置文件 config.json,如下是配置文件的模板,请注意对于 QQ 号或群号请务必用单引号 ‘ ’ 表示,否则可能会被程序识别为一个整数,我们建议对于任何字符串,都使用单引号以避免歧义:
# 成员输入 帮助 或 help 或菜单后机器人回复的消息
menu: '欢迎使用 HRobot v$CURRENT_VERSION,请前往 https://github.com/happysnaker/mirai-plugin-HRobot 查看相关信息'
# 指明机器人生效的群,include 和 exclude 只能配置一个而置另一个为空
# include 表示机器人只在这些群内生效
# exclude 表示机器人在除这些群外的所有群内生效
# 若都为空则表示对所有群生效
include:
exclude:
- '群号1'
- '群号2'
# 指定调用网络 API 的超时时间,单位毫秒
timeout: 5000
# 指定命令前缀,允许为空
commandPrefix: '#'
# 聊天是否需要 @ 机器人,如果此字段为 false,则任意一条消息机器人都回回复,建议为 true
enableAt: true
# 对机器人的回复替代
replyReplace:
- '菲菲': '欧尼酱' # 将回复语句中的菲菲替代为欧尼酱
- '猛男': '漂亮妹妹'
# 配置超级管理员与管理员
# 超级管理员只有一个,并在第一项给出,管理员可有多个
administrator:
- '超级管理员 QQ 号'
- '管理员QQ号'
- '管理员QQ号'
# 配置群管理员,群管理员的配置通常只在其所在群内生效
groupAdministrator:
- '群管理员QQ号'
- '群管理员QQ号'
# 配置坎公管理员,管理坎公相关信息
gtAdministrator:
- '坎公管理员QQ号'
- '坎公管理员QQ号'
# 自动审批配置
# 当验证消息为空时则会默认同意
autoApproval:
- 'QQ 群号': '审批验证消息'
- 'QQ 群号': ''
# 是否开启涩图,可关闭涩图防止被封
# 此配置在未来某个版本可能会移除,请使用更精确的 colorStrategy 进行控制
colorSwitch: true
# 涩图发送策略
# 0 表示不发送任何消息; 1 表示仅发送图片链接; 2 表示仅发送图片; 3 表示既发送图片,又发送图片链接
colorStrategy: 3
# 涩图撤回时间,单位为秒
pictureWithdrawalTime: 30
# 开启敏感词检测的群
enableSensitiveWordDetection:
- '群号'
- '群号'
# 敏感词检测是是否需要忽略一些无意义的词,例如假设 艹尼玛 为敏感词 艹&&&&&尼玛 其中的 & 为无意义的词,建议开启
skipIsMeaninglessWord: true
# 检测跳步,例如 艹天尼玛,中间跳一了一步(”天“),开启后将对跳步自动检测
# 不建议设置过大,否则很容易误判,建议设置小于等于 3
skipStep: 2
# 撤回阈值,当检测到多少个敏感词后机器人会警告成员并撤回成员消息
withdrawalThreshold: 1
# 坎公配置,需要配置群号对应的 cookie,其中 members 是可选项,如果不配置 members,在催刀时默认会将所有群成员作为公会成员
gtConfig:
- groupId: '群号1'
gtCookie: 'cookie1'
members:
- '成员1'
- '成员2'
- groupId: '群号2'
gtCookie: 'cookie2'
- groupId: '' # 当群号为空时,代表 cookie 对所有群生效,匹配时会自上向下检测
gtCookie: 'cookie3'
# 发送鸡汤时有一定概率生成毒鸡汤,在这里配置概率,这是一个 [0, 1] 之间的小数
duChickenSoupProbability: 0.2
# 俄罗斯轮盘赌配置,当必中或者必不中时游戏结束
russianRoulette:
totalNum: 6 # 总的弹夹数
realNum: 1 # 其中的真弹数,真弹数不得超过总弹数
# 奖励或惩罚最小基数(为积分系统做准备),实际奖惩积分数会根据实际概率进行调整,但大多总会落在 [base, 2*base] 区间内
# 注意如果一名玩家中枪,那么他会将本轮游戏全部获益积分全部亏损进去
base: 100
# 自定义关键字配置,支持群内关键字和全局关键字,群内关键字只在群内生效,关键字会有优先匹配群内关键字
# 群内关键字以群号作为关键字,嵌套一层 map,如下所示
# 回复允许以列表形式配置,机器人会进行随机回复
customKeyword:
'全局关键字': '全局关键字回复'
'#regex#全局正则表达式': '全局正则表达式回复'
'群号':
'群内关键字': '群内关键字回复'
'#regex#群内正则表达式': '群内正则表达式回复'
# 示例
'#regex#早.?.?': '早什么早,早上要说我爱你' # 匹配以早开头、长度为 1-3 的句子
'#regex#[\d]{11}': '这是谁的电话号码?' # 匹配 11 位数字
'#regex#呜+': ['你呜你🐎呢', '怎么了,遇到伤心事了?'] # 匹配任意一个或多个呜
# 下列配置只在群 903025723 生效
'903025723':
'牛批': ['你牛什么牛?', '能有我牛?']
'#regex#6*': ['6', '233', '老铁 666 啊', '[mirai:face:317]']
# 定时发送消息任务配置,请注意定时任务无法中途取消,除非你强制性停止机器人
# 支持在 content 以列表形式配置定时任务,机器人会随机进行发送
# 定时任务在机器人登录时会自动注册,你可以使用命令中途注册,但注意 #重载配置 命令是无法重新注册定时任务的
# 目前支持两种策略:
# 第一种是配置 hour 和 minute,这会在每天对应时间触发,注意这种配置可能在将来某个版本被移除,建议使用 cron 表达式
# 第二种是配置 cron expression,这允许你更精确的控制任务触发时间,生成 cron 可百度或参考 https://cron.qqe2.com/
periodicTask:
# 下面任务表示在每日的 12 点 05 分 向群 903025723 发送一条消息,消息末尾包含一张美图
- groupId: '903025723' # 定时任务发送消息的群
hour: 12 # 配置时间
minute: 5 # 配置时间
count: 0 # 一共持续几次,0 会被识别为最大次数 INT_MAX,可视为无限次
content: |- # 发布的内容,|- 是 yaml 的语法。这允许字符串换行
你好呀!我很喜欢你
晚安!
image: true # 是否在消息末尾附加一张随机美图
# 下列 cron 表达式控制每隔 3min 触发一次任务
- groupId: '903025723' # 定时任务发送消息的群
cron: '0 0/3 * * * ?'
count: 0 # 一共持续几次,0 会被识别为最大次数 INT_MAX,可视为无限次
content: # 如果内容为列表,机器人会随机选择发送
- |- # 发布的内容,|- 是 yaml 的语法。这允许字符串换行
[mirai:face:317]
- |- # 发布的内容,|- 是 yaml 的语法。这允许字符串换行
呃....
额....
饿....
image: true # 是否在消息末尾附加一张随机美图
# 订阅配置,一旦检测到订阅内容更新,机器人会进行通知(最多会存在 3 分钟延迟)
# 实验性功能,如有 BUG 请提 issue
# 请注意如果 at 成员找不到,或者 at All 无权限或超过限制,消息会发送失败
subscribe:
# UP 动态包括:发布动态、转发动态、直播了、投稿视频、投稿文章
- platform: 'bilibili' # 订阅平台,目前仅支持 bilibili
type: 0 # 类型,对于 bilibili 来说,0 代表订阅 UP 动态
key: '384136794' # UP 的 ID,可参考配置手册
pushGroup: '903025723' # 检测到更新后需要推送的群
atMembers: ['qq'] # 推送时需要 at 的成员,允许置空,请保证所 at 成员 QQ 正确性
# 订阅番剧
- platform: 'bilibili'
type: 1 # 类型 1 代表订阅番剧更新
key: '39487' # 那么这个 key 代表番剧的 ID,可参考配置手册
pushGroup: '903025723'
atMembers: ['qq', '-1'] # -1 代表 atAll,请注意 atAll 是有权限和次数限制的,不推荐 at All,除非你能确定不会超过次数限制