Skip to content

Maimai Random Helper - 舞萌随机查歌使用手册

0. 特别鸣谢

感谢水鱼提供的api数据支持!

1. 系统简介

Maimai Random Helper 是一个基于 Nonebot2 (OneBot V11) 的本地化舞萌 (Maimai DX) 查歌与推荐(鬼歌)插件。 该系统旨在为玩家群体提供一个高度自定义的“私有歌单”管理工具,解决玩家不知道玩什么歌、或者是不知道怎么阴人的困扰。该工具使用了基于水鱼查分器统计的功能。支持通过定数、离散度、拟合难度等硬核指标筛选谱面。

核心特性:

  • 本地化运营:支持群友自行推荐并收录优质谱面,构建私有歌单。
  • 神人筛选:基于 Diving Fish 查分器大数据。
  • 可视化卡片:自动生成包含封面、难度、定数及详细统计数据的精美图片。

2. 用户指令指南 (User Guide)

所有指令统一前缀为 /d。(点歌的意思)

基础操作 (Basic)

指令格式功能描述示例
/d随机选曲:从本群已收录的歌单中随机抽取一首。/d
/d -s [歌名/ID] [难度]收录歌曲:将指定谱面加入本群推荐歌单。/d -s 143 紫 /d -s Fragrance 白

注:难度支持中文(红/紫/白)或英文(Expert/Master/Re:Master)。

进阶筛选模式 (Advanced Filter)

系统提供三种基于玩家数据的特殊搜歌模式。支持叠加参数进行精确查找。

模式开关名称判定逻辑适用场景
-y越级离散度 (StdDev) > 阈值寻找手感诡异、上下限差距大的谱面
-g鬼歌拟合定数 > 官方定数寻找实际难度高于标定等级的“地雷”
-t水分拟合定数 < 官方定数寻找实际难度低于标定等级的“爽局”

筛选参数详解

以下参数可搭配上述模式开关使用,实现多维度过滤:

参数描述示例说明
-r [数值]阈值设定-r 0.5设定离散度或定数差的临界值
-d [难度]难度限制-d 紫白仅筛选 Master 或 Re:Master 难度
-f [版本]版本限制-f 熊镜仅筛选 DX版(熊) 或 PRiSM版(镜)
-l [范围]等级范围-l 13+-14.5筛选定数在指定区间内的谱面
-i详细信息-i开启后额外显示曲师、BPM、流派等

组合指令示例:

  • 找一首 DX版本(熊) 或 PRiSM版本(镜) 的紫谱或白谱,且实际难度比官方标定低 0.3 (适合推分):
    /d -t -r -0.3 -d 紫白 -f 熊镜
  • 找一首 13+ 到 14.5 之间,离散度极高(>4.0) 的红谱:
    /d -y -r 4.0 -l 13+-14.5 -d 红

3. 管理指令 (Admin)

该模式用于维护群歌单,仅 白名单管理员 (ADMIN_LIST) 或 该条目的原始推荐人 有权操作。

指令格式功能描述是否需确认示例
/d -c [歌名/ID]删除歌曲是 (Confirm)/d -c Fragrance
... confirm确认删除-/d -c Fragrance 白 confirm

操作流程:

  1. 输入 /d -c [歌名],系统会检索并列出匹配项。
  2. 若匹配唯一,系统提示确认;若匹配多个,系统提示补全信息(如难度)。
  3. 在指令后追加 confirm 完成删除(或按提示输入完整确认指令)。

4. 开发者文档 (Developer Reference)

4.1 文件结构

  • maimai_helper.py: 插件核心逻辑。
  • data/maimai_plugin/: 数据存储目录。
    • maimai_lib.json: 官方基础数据 (music_data)。
    • chart_stats.json: 玩家统计数据 (chart_stats)。
    • group_playlist.json: 群友推荐歌单 (持久化存储)。

4.2 关键机制说明

定数范围解析 (Level Logic)

系统支持由 + 号构成的模糊定数写法,自动转换为闭区间:

  • 14+ 作为下限时 -> 解析为 14.6
  • 14+ 作为上限时 -> 解析为 14.9
  • 13.5 -> 解析为 13.5
  • 例:-l 13.5-14+ 等价于筛选定数范围 [13.5, 14.9]。

版本代号映射 (Version Mapping)

系统内置了完善的版本代号字典 (VERSION_MAP),支持模糊匹配:

  • **旧框:**真(maimai/maimai+)、超(Green)、檄(Green+)、橙(Orange)、晓(Orange+)、桃(Pink)、樱(pink+)、紫(Murasaki)、堇(Murasaki+)、白(Milk)、雪(Milk+)、辉(Finale)。
  • DX:熊(DX)、华(DX+)、爽(Splash)、煌(Splash+)、宙(Universe)、星(Universe+)、祭(Festival)、祝(Festival+)、双(Buddies)、宴(Buddies+)、镜(PRiSM)。
  • 特殊集合:输入“舞”可一次性涵盖从初代到Finale的所有旧框体版本。
  • **注:**国服的歌曲分类太过于复杂和混乱,因此不考虑进去。

图片生成 (Rendering)

使用 Pillow 库动态绘制。

  • 自适应排版:图片高度根据是否开启详细模式 (-i) 及元数据长度自动伸缩。
  • 文字自适应:fit_text_width 算法确保超长歌名在卡片内完整显示不溢出。

4.3 配置参数

在 maimai_random_helper.py 头部可调整:

  • WHITE_LIST: 开启机器人的群号白名单。
  • ADMIN_LIST: 管理员 QQ 号列表。
  • DIFF_MAP / DIFF_COLOR_MAP: 难度与颜色的映射配置。

基于 MIT 许可发布