- 版权类型
- 二次开发
- 插件中文名称
- 简单的语音音乐
- 插件英文名称
- SimpleVoiceChatMusic
- 支持的核心(服务端)
- Spigot
- Paper
- Leaves
- 语言支持
- 多语言
- 适配版本(Java)
- 26.x
- 1.21
SimpleVoiceChatMusic · Paper 语音聊天音乐播放器
这是什么
SimpleVoiceChatMusic 让玩家在语音聊天组里一起听歌。它把音源实时转码成 Opus 帧, 通过 Simple Voice Chat 的静态音频通道推送给同组玩家——服务器上不会保存任何音频文件。它是 Fabric 模组 Simple Voice Chat Music 的 Paper 移植版,并在此基础上补齐了配置、多语言、B 站音源、图形菜单与一堆可用性细节。
功能亮点
播放音源
| 音源 | 说明 |
|---|---|
| B 站(默认搜索) | 搜索视频并播放其音频流;支持 BV 号、av 号、b23.tv / bili2233.cn 短链、番剧 ep/ss、多 P ?p=N |
| YouTube / SoundCloud / Bandcamp / Vimeo / Twitch | 由 lavaplayer + youtube-source 直接处理 |
| 直链音频 | mp3 / flac / wav / m4a / ogg / aac / opus 等,/music play <URL> 即播 |
| Spotify(可选) | 粘贴单曲链接,查询元数据后自动转成搜索;需自备 Client ID/Secret |
| 关键词播放 | /music play 歌名:B 站搜索优先,搜不到按配置回退 YouTube |
队列与播放控制
播放队列、当前歌曲、跳过、暂停、继续、停止、音量(0-100)、低音增强(0-200)、 强制重启播放器(卡死后使用)。每个语音组独立维护自己的队列与音量设置。
界面
- Boss 栏进度:歌名 + [当前时间/总时长] + 原生进度条,颜色 / 样式 / 刷新率可配
- Dialog 图形菜单(Paper 1.21.7+):/music menu
- 一级菜单放常用操作:播放、搜索、暂停、继续、跳过、停止
- 二级菜单只放技术设置:设置(音量 / 低音 / 语言)、高级(正在播放、完整队列、重置播放器、注册语音服务)
- Tab 补全 + 悬停提示:每条子命令都有功能说明
多语言
内置中文 / 英文,按玩家客户端语言自动切换;/music lang 可单独切换。 所有提示、Boss 栏、Dialog 菜单、Tab 提示都走语言文件,加语言只需丢一个 lang/xx_yy.yml。
稳定性与错误处理
- 直链播放前先做 1 KiB 体检:链接是网页 / 404 / 403 防盗链会直接告诉玩家原因
- 失败缓存 30 秒 + 网络失败自动重试 2 次,避免玩家连点把日志刷爆
- 所有网络请求异步执行;Boss 栏与 Dialog 只在主线程操作
- 玩家标题等外部文本一律按纯文本注入,杜绝 MiniMessage 注入
启动自动建组
服务器启动完成后自动创建一个音乐群组(名字 / 密码 / 是否持久化可配), 玩家加入该组即可一起听歌;重启不会重复创建。命令
| 命令 | 说明 |
|---|---|
| /music play <URL | 歌名> | 播放链接(B 站 / 直链 / YouTube…),或按歌名搜索后播放 |
| /music search <关键词> | 搜索并列出结果,点击「[点击加入队列]」入队 |
| /music menu(别名 /music gui) | 打开 Dialog 图形菜单 |
| /music now-playing(别名 playing) | 查看当前歌曲与进度 |
| /music queue | 查看队列 |
| /music skip | 跳过当前歌曲 |
| /music pause / /music resume | 暂停 / 继续 |
| /music stop | 停止播放并清空队列 |
| /music volume <0-100> | 设置音量 |
| /music bassboost <0-200> | 设置低音增强 |
| /music lang [语言代码 | auto] | 查看 / 切换提示语言 |
| /music kill | 强制重启本组播放器(卡住时用) |
| /music_register_service | 手动注册语音服务(管理员,加载顺序异常时用) |
权限
| 权限 | 默认 | 说明 |
|---|---|---|
| simplevoicechatmusic.music | 所有人 | 使用 /music 命令 |
| simplevoicechatmusic.admin | OP | /music_register_service、Dialog「注册语音服务」按钮 |
安装
- 安装 Simple Voice Chat(2.5.0+)与 Paper/Purpur 1.21+
- 把 SimpleVoiceChatMusic-1.0.1.jar 放进 plugins/
- 启动服务器,生成 plugins/SimpleVoiceChatMusic/config.yml 与 lang/
- (可选)在 config.yml 里调整 B 站 Cookie、自动建组、菜单等
- 玩家加入语音组后执行 /music play <链接或歌名>
配置一览
config.yml 分为 8 个部分(带 config-version: 1):yaml
config-version: 1
# 1. 语言与提示
language:
default: en_us
use-client-locale: true
messages:
use-prefix: true
# 2. 播放与队列
music:
max-queue-size: 100
max-search-results: 5
max-title-length: 120
max-author-length: 60
default-volume: 100
default-bassboost: 0
command-cooldown-ms: 1000
search:
click-color: "green" # 搜索结果按钮颜色(色名或 #rrggbb)
click-bold: true
auto-group:
enabled: true
name: "音乐"
password: ""
persistent: true
# 3. 网络与直链
http:
user-agent: "Mozilla/5.0 ..."
referer: ""
connect-timeout-ms: 5000
read-timeout-ms: 15000
preflight: true
preflight-timeout-ms: 4000
failure-cache-seconds: 30
retry-count: 2
retry-delay-ms: 1500
# 4. B 站
bilibili:
enabled: true
cookie: "" # 可选:SESSDATA,提高音质上限
fallback-to-youtube: true
# 6 个接口地址均可自定义
# 5. Boss 栏
bossbar:
enabled: true
update-interval-ticks: 20
color: PINK
overlay: PROGRESS
# 6. 图形菜单
menu:
enabled: true
queue-page-size: 20
preview-count: 3
# 7. Spotify(可选)
spotify:
client-id: ""
client-secret: ""
所有键都有注释,改完重启服务器生效(不支持 /reload)。
兼容性
| 组件 | 要求 |
|---|---|
| 服务端 | Paper / Purpur 1.21+(Dialog 菜单需 1.21.7+) |
| Java | 25 |
| Simple Voice Chat | 2.5.0+(2.6+ 支持音量分类跟随客户端语言) |
| 客户端 | 原版即可 |
常见问题
B 站链接打不开? 支持 /video/BV...、/video/av...、b23.tv、bili2233.cn、/bangumi/play/ep...、/bangumi/play/ss...、多 P ?p=N。 番剧受地区/大会员限制时拿不到音频流,会给出明确提示。B 站搜索没结果? B 站接口不是官方开放平台,偶尔会变;config.yml 的 bilibili.*-url 都可自行替换。
为什么没有本地文件播放? 1.0 已移除,音乐全部走网络流式播放,避免占用服务器磁盘。
音量界面里的「音乐」分类不跟随客户端语言? 需要 SVC 2.6+(服务端与客户端都要)。插件已通过翻译键 soundCategory.music 让名称跟随客户端语言。
日志里 lavaplayer 的 WARNING 很多? 可在 log4j2.xml 里把 com.sedmelluq.discord.lavaplayer 调到 ERROR,不影响播放。
更新日志
1.0.1
- 修复 SVC 音量界面分类名称/提示不随客户端语言(使用翻译键,需 SVC 2.6+)
- 修复 Dialog「完整队列」「正在播放」页面的 actions cannot be empty 崩溃
1.0.0
- 首个正式版:功能冻结、配置分类整理(config-version: 1)、代码清理
- 新增 menu.* 配置(开关 / 队列页条数 / 预览条数)
- 版本号规范化
致谢与许可
本项目是以下作品的分支/移植:- 原项目(Fabric 模组):ItzDerock/simplevoicechat-music · Copyright 2024 Derock · Apache-2.0
- Paper 移植上游:gavingogaming/SimpleVoiceChatMusic · GavinGoGaming、MrTron
- Simple Voice Chat(henkelmax)— 仅使用公开 API,不打包(请自己手动安装)
- lavaplayer(Apache-2.0)(自带)
- lavaplayer youtube-source(MIT)(自带)
- OkHttp(Apache-2.0)、Gson(Apache-2.0)(自带)
体验服务器:mc.chenghai.run
English summary
SimpleVoiceChatMusic streams music into Simple Voice Chat groups on Paper 1.21+ — nothing is downloaded or stored on disk.- Sources: Bilibili (search, BV/av, b23.tv, bangumi ep/ss, multi-part), YouTube, SoundCloud, Bandcamp, Vimeo, Twitch, direct audio URLs, optional Spotify links
- Queue & controls: play/search/skip/pause/resume/stop/volume/bassboost/kill
- Boss bar progress, native Dialog menu (/music menu, Paper 1.21.7+), tab completion with tooltips, zh_cn/en_us messages
- Auto-creates a persistent music group on startup
- Direct links get a 1 KiB preflight check, failure cache and retries