目标与快捷查询
很多指令都需要一个“目标”。目标可以是成绩 ID、谱面 ID、谱面集 ID,也可以是根据某位玩家最近或最好成绩推导出的快捷查询。
玩家目标
需要玩家的指令(/bo、/rs、/rp、/tb、/u)接受:
| 写法 | 示例 | 说明 |
|---|---|---|
| osu! UID | 124493 | 必须是正整数 |
| osu! 用户名 | peppy | Seira 会先尝试解析用户名对应的 osu! UID |
| QQ @用户 | @某人 | 输入对方名字后手动点击弹出列表,或长按对方头像时使用的QQ@。会使用对方绑定的 UID,需要群主开启获取所有消息权限 |
| @用户名 | @peppy | 直接手动输入的用户名,非QQ的@,会直接使用输入的用户名作为目标。 |
| 省略 | /bo 5 | 使用发送者通过 /bind 绑定的 UID |
/bo、/rs、/rp 的多条查询把数量放在玩家前面,例如 /rs 5 peppy,不是 /rs peppy 5。/tb 同样把天数放在玩家前面,并使用 #N 格式,例如 /tb #7 peppy。
成绩快捷查询
| 写法 | 含义 |
|---|---|
rs / rs1 | 最近成绩第 1 条,包含失败 |
rs5 | 最近成绩第 5 条,包含失败 |
rp2 | 最近通过成绩第 2 条 |
bo3 / bp3 | 最好成绩第 3 条 |
rbp | 随机BP |
快捷索引必须在 1 到 200 之间。省略索引时默认为 1。
快捷查询也可以直接作为整条指令发送:
text
/rs5
/bo3Seira 会把它们自动识别为 /s rs5 和 /s bo3,得到单条成绩详情。
为快捷查询指定玩家
在支持目标解析的指令中,可把 UID、用户名或 @用户放在快捷查询前:
text
/s 124493 rs2
/m peppy bo1
/sa @某人 rp3前两个参数会共同组成目标。若只有 rs2,则使用你自己的绑定 UID。
谱面和谱面集目标
除了纯数字 ID,解析器还支持以下形式:
| 写法 | 含义 | 常见用途 |
|---|---|---|
m123456 | 明确表示谱面 ID 123456 | /m、/lb 等 |
12345#2 | 谱面集 12345 的第 2 个难度 | /m、/s、/ms 等 |
mp | 当前绑定用户所在多人房间的谱面 | /m、/dl 等 |
rs5、rp2、bo3 | 对应成绩使用的谱面、谱面集或成绩 | 由具体指令决定 |
纯数字目标的含义由指令决定:/s 123 把它当作成绩 ID,/m 123 把它当作谱面 ID,/ms 123 和 /dl 123 把它当作谱面集 ID。
最近目标
/m、/ap、/bpv、/bgp、/s、/sa、/ms、/dl、/ma、/r、/rsc 会共享当前进程内“该发送者最近指定的目标”。
text
/s rs3
/sa
/ma
/r 01:00-01:30这里后三条都会继续使用 rs3。仅当指令显式解析了新目标时,目标才会更新。
最近目标不是永久历史
最近目标只保存在 Seira 进程内存中,并按发送者区分。机器人重启后会丢失。
常见错误
- “你还没有绑定玩家ID”:先使用
/bind,或显式提供 UID/用户名。 - “快捷指令索引无效”:索引必须为 1–200。
- “参数无效”:确认使用正整数 ID,或合法的
rsN、rpN、boN、mID、谱面集ID#序号。 - “被@的用户还没有绑定”:让对方先
/bind,或直接输入对方 osu! UID。