使用过程中请遵守 KanonBot 最终用户使用许可协议(EULA) 指令系统已启用严格模式 !command [arg1] [arg2] ✅ !command[arg1][arg2] ❌

KanonBot 2022 使用文档

本文档基于 2022 年版本编写,适用于 Kagami Studio(DESU.Life) 使用的 KanonBot 机器人。

账户注册与绑定

账户注册

  • 指令:!reg [email protected]
  • 功能:注册并绑定邮箱账号,系统将发送一封验证邮件至该邮箱,点击邮件中的链接即可完成注册。

多平台绑定

  • 在其他平台重复使用 !reg 指令会自动判定为绑定现有账户,而不是重新注册

绑定 osu! 账号

  • 指令:!bind osu <用户名>

指令系统

[] 为可选参数; <> 为必填参数; & 为输出高分辨率图像

osu! 主要信息查询

指令参数说明
!info<name>[]:<mode>[][&]查询个人资料
!recent / !re<name>[]:<mode>[]#<num>[&]查询最近游玩的成绩
!pr<name>[]:<mode>[]#<num>[&]查询最近游玩并通过的成绩
!bp<name>[]:<mode>[]#<num>[&]查询 best performance
!score<name>#<bid>:<mode>[]+<mods>[][&]查询某张图的成绩
!ppvs<name>#<name>[][&]对比 pp+ 数据
!set osumode<mode>设置默认查询的模式

osu! 其他信息查询

指令参数格式说明
!get bonuspp查询自己的奖励 pp 值
!get rolecost<name>[]查询自己/他人在某项赛事中的 cost 值
!get bpht查询自己 bp 头尾差值
!get todaybp查询今日新增的 bp
!get seasonalpass查询自己的季票信息
!get recommend<mods>[]让猫猫推荐谱面,仅支持 std 模式
!get mu/profile输出 osu! 个人资料链接
!get bplist<num> / <indexnum>-<indexnum>输出指定范围的 bp 列表
!leeway / !lc<bid>[] + <mods>[]计算最近游玩或指定图的容错率与理论分数(std)

季票系统说明(pt 机制)

基本规则

  • 每季度:从首月 1 日开始,至末月最后一日 20:00 结算
  • 使用 !pr 查询将自动回溯过去 25 张通过谱面
  • 不计入 Failed 谱面
  • 计算维度包括:星级、长度、mod、Combo、评级、Acc 等综合表现

勋章获取等级

模式勋章门槛
std30 级
taiko / mania / ctb15 级

KanonBot 勋章

指令参数格式说明
!badge list获取你所拥有的勋章列表
!badge info<num>获取指定勋章的详细信息
!badge set<num> / <num,num,num,num>将指定勋章显示在个人资料页(*-1 为取消)
!badge redeem<code>兑换徽章

面板勋章规则

  • v2 面板:顶部最多展示 5 枚,底部最多展示 14 枚徽章;支持空位(除 1 号位)
  • v1 面板:最多支持展示 5 枚徽章;不支持空位,直接跳过

勋章申请说明

  • 可申请对象:比赛(含群赛/锦标赛/友谊赛)、战队家族(Clan 前缀)、纪念用途
  • 申请需提交:完整赛程表、参赛名单、战队列表
  • 图像要求:使用模板图并严格按说明编辑,最小徽章尺寸,支持等比缩放
  • 注意事项:2023/08/04 起,仅 staff 与正赛选手可获得比赛类徽章

面板/图像自定义系统

指令参数格式说明
!set osuinfopanelversion<1/2>设置 osu!infopanel 版本
!set osuinfopanelv1img<url> / reset / delete设置 / 删除 panelv1 的自定义图像
!set osuinfopanelv2img<url> / reset / delete设置 / 删除 panelv2 的自定义图像
!set osuinfopanelv1panel<url> / reset / delete设置 / 删除 panelv1 的自定义面板
!set osuinfopanelv2panel<url> / reset / delete设置 / 删除 panelv2 的自定义面板
!set osuinfopanelv2colormode<0/1/2>设置 panelv2 的配色模式:0=自定义1=亮色2=暗色
!set osuinfopanelv2colorcustom<config_text>设置 panelv2 的自定义配色配置文本

建议参考官方模板说明进行配色与图像设置,避免显示异常。

配色默认配置

Light

    UsernameColor: #4d4d4d
    ModeIconColor: #7f7f7f
    RankColor: #5872df
    CountryRankColor: #5872df
    CountryRankDiffColor: #808080
    CountryRankDiffIconColor: #3a4d78
    RankLineChartColor: #80caea
    RankLineChartTextColor: #80caea
    RankLineChartDotColor: #80caea
    RankLineChartDotStrokeColor: #eff1f3
    RankLineChartDashColor: #dbe1e4
    RankLineChartDateTextColor: #666666
    ppMainColor: #e36a79
    ppDiffColor: #e36a79
    ppDiffIconColor: #e36a79
    ppProgressBarColorTextColor: #d84356
    ppProgressBarColor: #f7bebe
    ppProgressBarBackgroundColor: #fddcd7
    accMainColor: #6cac9c
    accDiffColor: #6cac9c
    accDiffIconColor: #6cac9c
    accProgressBarColorTextColor: #006837
    accProgressBarColor: #a4d8b1
    accProgressBarBackgroundColor: #c3e7cb
    GradeStatisticsColor_XH: #3a4d78
    GradeStatisticsColor_X: #3a4d78
    GradeStatisticsColor_SH: #3a4d78
    GradeStatisticsColor_S: #3a4d78
    GradeStatisticsColor_A: #3a4d78
    Details_PlayTimeColor: #7f7f7f
    Details_TotalHitsColor: #7f7f7f
    Details_PlayCountColor: #7f7f7f
    Details_RankedScoreColor: #7f7f7f
    DetailsDiff_PlayTimeColor: #e36a79
    DetailsDiff_PlayTimeIconColor: #e36a79
    DetailsDiff_TotalHitsColor: #6cac9c
    DetailsDiff_TotalHitsIconColor: #6cac9c
    DetailsDiff_PlayCountColor: #5872df
    DetailsDiff_PlayCountIconColor: #5872df
    DetailsDiff_RankedScoreColor: #3a4d78
    DetailsDiff_RankedScoreIconColor: #3a4d78
    LevelTitleColor: #656b6d
    LevelProgressBarColor: #f3b6cd
    LevelProgressBarBackgroundColor: #e6e6e6
    MainBPTitleColor: #656b6d
    MainBPArtistColor: #656b6d
    MainBPMapperColor: #656b6d
    MainBPBIDColor: #656b6d
    MainBPStarsColor: #656b6d
    MainBPAccColor: #656b6d
    MainBPRankColor: #656b6d
    MainBPppMainColor: #364a75
    MainBPppTitleColor: #656b6d
    SubBp2ndModeColor: #ffffff
    SubBp2ndBPTitleColor: #656b6d
    SubBp2ndBPVersionColor: #656b6d
    SubBp2ndBPBIDColor: #656b6d
    SubBp2ndBPStarsColor: #656b6d
    SubBp2ndBPAccColor: #ffcd22
    SubBp2ndBPRankColor: #656b6d
    SubBp2ndBPppMainColor: #ff7bac
    SubBp3rdModeColor: #ffffff
    SubBp3rdBPTitleColor: #656b6d
    SubBp3rdBPVersionColor: #656b6d
    SubBp3rdBPBIDColor: #656b6d
    SubBp3rdBPStarsColor: #656b6d
    SubBp3rdBPAccColor: #ffcd22
    SubBp3rdBPRankColor: #656b6d
    SubBp3rdBPppMainColor: #ff7bac
    SubBp4thModeColor: #ffffff
    SubBp4thBPTitleColor: #656b6d
    SubBp4thBPVersionColor: #656b6d
    SubBp4thBPBIDColor: #656b6d
    SubBp4thBPStarsColor: #656b6d
    SubBp4thBPAccColor: #ffcd22
    SubBp4thBPRankColor: #656b6d
    SubBp4thBPppMainColor: #ff7bac
    SubBp5thModeColor: #ffffff
    SubBp5thBPTitleColor: #656b6d
    SubBp5thBPVersionColor: #656b6d
    SubBp5thBPBIDColor: #656b6d
    SubBp5thBPStarsColor: #656b6d
    SubBp5thBPAccColor: #ffcd22
    SubBp5thBPRankColor: #656b6d
    SubBp5thBPppMainColor: #ff7bac
    SubBpInfoSplitColor: #656b6d
    footerColor: #7f7f7f
    FixedScoreModeIconColor: false
    DisplaySupporterStatus: true
    SideImgBrightness: 1.0
    AvatarBrightness: 1.0
    BadgeBrightness: 1.0
    MainBPImgBrightness: 1.0
    CountryFlagBrightness: 1.0
    ModeCaptionBrightness: 1.0
    ModIconBrightness: 1.0
    ScoreModeIconBrightness: 1.0
    OsuSupporterIconBrightness: 1.0
    CountryFlagAlpha: 1.0
    OsuSupporterIconAlpha: 1.0
    BadgeAlpha: 1.0
    AvatarAlpha: 1.0
    ModIconAlpha: 1.0
Dark

    UsernameColor: #e6e6e6
    ModeIconColor: #e6e6e6
    RankColor: #5872DF
    CountryRankColor: #5872DF
    CountryRankDiffColor: #e6e6e6
    CountryRankDiffIconColor: #3a4d78
    RankLineChartColor: #2784ac
    RankLineChartTextColor: #2784ac
    RankLineChartDotColor: #2784ac
    RankLineChartDotStrokeColor: #b2b5b7
    RankLineChartDashColor: #e6e6e6
    RankLineChartDateTextColor: #e6e6e6
    ppMainColor: #e36a79
    ppDiffColor: #e36a79
    ppDiffIconColor: #e36a79
    ppProgressBarColorTextColor: #FF7BAC
    ppProgressBarColor: #5D3B3A
    ppProgressBarBackgroundColor: #44312F
    accMainColor: #6cac9c
    accDiffColor: #6cac9c
    accDiffIconColor: #6cac9c
    accProgressBarColorTextColor: #00DE75
    accProgressBarColor: #294B32
    accProgressBarBackgroundColor: #243829
    GradeStatisticsColor_XH: #6C91E0
    GradeStatisticsColor_X: #6C91E0
    GradeStatisticsColor_SH: #6C91E0
    GradeStatisticsColor_S: #6C91E0
    GradeStatisticsColor_A: #6C91E0
    Details_PlayTimeColor: #e6e6e6
    Details_TotalHitsColor: #e6e6e6
    Details_PlayCountColor: #e6e6e6
    Details_RankedScoreColor: #e6e6e6
    DetailsDiff_PlayTimeColor: #e36a79
    DetailsDiff_PlayTimeIconColor: #e36a79
    DetailsDiff_TotalHitsColor: #6cac9c
    DetailsDiff_TotalHitsIconColor: #6cac9c
    DetailsDiff_PlayCountColor: #5872df
    DetailsDiff_PlayCountIconColor: #5872df
    DetailsDiff_RankedScoreColor: #3a4d78
    DetailsDiff_RankedScoreIconColor: #3a4d78
    LevelTitleColor: #e6e6e6
    LevelProgressBarColor: #85485F
    LevelProgressBarBackgroundColor: #000000
    MainBPTitleColor: #e6e6e6
    MainBPArtistColor: #e6e6e6
    MainBPMapperColor: #e6e6e6
    MainBPBIDColor: #e6e6e6
    MainBPStarsColor: #e6e6e6
    MainBPAccColor: #e6e6e6
    MainBPRankColor: #e6e6e6
    MainBPppMainColor: #5979bd
    MainBPppTitleColor: #e6e6e6
    SubBp2ndModeColor: #ffffff
    SubBp2ndBPTitleColor: #e6e6e6
    SubBp2ndBPVersionColor: #e6e6e6
    SubBp2ndBPBIDColor: #e6e6e6
    SubBp2ndBPStarsColor: #e6e6e6
    SubBp2ndBPAccColor: #ffcd22
    SubBp2ndBPRankColor: #e6e6e6
    SubBp2ndBPppMainColor: #e36a79
    SubBp3rdModeColor: #ffffff
    SubBp3rdBPTitleColor: #e6e6e6
    SubBp3rdBPVersionColor: #e6e6e6
    SubBp3rdBPBIDColor: #e6e6e6
    SubBp3rdBPStarsColor: #e6e6e6
    SubBp3rdBPAccColor: #ffcd22
    SubBp3rdBPRankColor: #e6e6e6
    SubBp3rdBPppMainColor: #e36a79
    SubBp4thModeColor: #ffffff
    SubBp4thBPTitleColor: #e6e6e6
    SubBp4thBPVersionColor: #e6e6e6
    SubBp4thBPBIDColor: #e6e6e6
    SubBp4thBPStarsColor: #e6e6e6
    SubBp4thBPAccColor: #ffcd22
    SubBp4thBPRankColor: #e6e6e6
    SubBp4thBPppMainColor: #e36a79
    SubBp5thModeColor: #ffffff
    SubBp5thBPTitleColor: #e6e6e6
    SubBp5thBPVersionColor: #e6e6e6
    SubBp5thBPBIDColor: #e6e6e6
    SubBp5thBPStarsColor: #e6e6e6
    SubBp5thBPAccColor: #ffcd22
    SubBp5thBPRankColor: #e6e6e6
    SubBp5thBPppMainColor: #e36a79
    SubBpInfoSplitColor: #e6e6e6
    footerColor: #e6e6e6
    FixedScoreModeIconColor: false
    DisplaySupporterStatus: true
    SideImgBrightness: 0.6
    AvatarBrightness: 0.6
    BadgeBrightness: 0.6
    MainBPImgBrightness: 0.6
    CountryFlagBrightness: 0.6
    ModeCaptionBrightness: 0.6
    ModIconBrightness: 0.6
    ScoreModeIconBrightness: 0.6
    OsuSupporterIconBrightness: 0.6
    CountryFlagAlpha: 1.0
    OsuSupporterIconAlpha: 1.0
    BadgeAlpha: 1.0
    AvatarAlpha: 1.0
    ModIconAlpha: 1.0

Bot 实例部署文档

基础环境说明

支持客户端

  • 首选推荐go-cqhttp(基于 OneBot v11 协议)
  • 兼容提示:其他支持 OneBot v11 协议的客户端理论上也可以接入,但不保证兼容性

通信协议要求

  • 使用 ws-reverse 模式进行连接
  • 地址统一为 ws://botws.desu.life:65000

配置文件实例

config.yml 关键片段

servers:
  - ws-reverse:
      universal: ws://botws.desu.life:65000
      reconnect-interval: 3000
      middlewares:
        <<: *default

# 注意:YAML 缩进需严格遵守

默认中间件锚点定义

default-middlewares: &default
  filter: "filter.json"

事件过滤器配置

强烈建议开启事件过滤器,以减少服务器负载

filter.json 配置

{
  ".or": [
    { "post_type": "meta_event" },
    {
      "raw_message": {
        ".or": [{ ".regex": "^!" }, { ".regex": "^!" }, { ".regex": "^/" }]
      }
    }
  ]
}

此过滤器可以配置:

  • 指定群聊的消息上报
  • 排除特定群聊的消息上报
  • 指定用户的消息上报
  • 排除特定用户的消息上报

格式兼容设置

go-cqhttp 消息格式要求

message:
  post-format: array

若为旧版本实例,请务必修改此项,否则 Bot 无法正常处理消息内容

注意事项与支持渠道

使用中如遇问题,请优先加入 Discord 服务器 反馈

若无法访问 Discord,可邮件联系 [email protected]

感谢所有 Bot 实例维护者为 desu.life 社区做出的贡献!

如需更新更多文档,请配合官方 GitHub 仓库或提交 Issue 获取帮助。