语音频道 (voice)
让机器人加入 / 离开语音频道,支持 DAVE 加密。
- 配置键:
voicechannel - 源文件:
cogs/voice.py
权限判定(特殊)
语音指令使用自定义权限判定,而非普通的 Mod / Admin 等级:
- 若
allowed_user_ids为空:仅 Mod(含 Admin)可用。 - 若
allowed_user_ids非空:白名单用户或 Mod 均可用。
白名单项可以是用户 ID 或用户名。
指令
vc join — 加入语音频道
让机器人加入你当前所在的语音频道,或指定频道。
| 项目 | 说明 |
|---|---|
| 权限 | 白名单用户 / Mod |
| 参数 | channel(可选,留空则使用你当前所在语音频道) |
| 机器人权限 | 连接(Connect) |
| 审计 | ✅ 记录(joinvc) |
行为细节:
- 加入时机器人自动 self-deaf + self-mute(自闭麦 / 自静音)。
- 若机器人已在其他频道,会先断开再加入目标频道(提示「已移动到」)。
- 若已在目标频道,提示「已经在里面了」。
- 加入后将机器人状态设为「正在收听 <频道名>」。
- 若频道要求 DAVE 加密 但连接失败(错误码 4017),会提示相应错误。
- 不支持讲堂频道(StageChannel)作为「你当前所在频道」自动加入。
vc leave — 离开语音频道
让机器人离开当前所在语音频道。
| 项目 | 说明 |
|---|---|
| 权限 | 白名单用户 / Mod |
| 审计 | ✅ 记录(leavevc) |
- 若机器人未在任何语音频道会提示。
- 离开后将机器人状态设为「正在观看 等待指令...」。
配置
yaml
voicechannel:
enabled: false
slash: true
prefix: true
allowed_user_ids: [] # 留空: 仅 mod 可用; 非空: 白名单用户 + mod 可用| 字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
enabled | bool | false | 是否启用语音模块 |
slash | bool | true | 是否注册斜杠指令 |
prefix | bool | true | 是否注册前缀指令 |
allowed_user_ids | list[int | str] | [] | 语音指令白名单(用户 ID / 用户名) |
DAVE 加密
DAVE(Discord Audio & Video End-to-End Encryption)依赖 davey 与 PyNaCl,已包含在项目依赖中(discord-py[voice])。
