跳到正文

Simple Voice Chat Music Addon

作者:rjiangame

为 Simple Voice Chat 模组添加音乐功能

收藏

介绍

介绍由机器翻译自 Modrinth 原页面,仅供参考。

Music

Music 是一款服务端 Fabric 模组,可通过 Simple Voice Chat 播放 URL 音乐流。它专为服务器共享音乐而设计,支持播放队列、保存的播放列表、导入 YouTube 播放列表、指定播放对象、个人关闭收听,以及通过 Lavaplayer/youtube-source 使用 YouTube OAuth。

功能

  • 通过 Simple Voice Chat 静态音频频道播放音乐流。
  • 支持 YouTube、YouTube Music、YouTube 播放列表链接,以及 Lavaplayer 支持的其他远程来源。
  • 将粘贴的 YouTube 播放列表链接展开为单首歌曲。
  • 显示标题、创作者、请求者、时长、队列位置和播放诊断信息。
  • 清理 YouTube 主题频道的创作者名称,因此 Artist - Topic 会显示为 Artist。
  • 全服务器共享同一条音乐流。
  • 全局队列支持跳过、重复播放和随机播放。
  • 持久保存的播放列表。
  • 按秒向前或向后 seek。
  • 指定或排除玩家的控制选项。
  • 玩家可自行使用 /music leave 和 /music join。
  • Simple Voice Chat 中的“Music”音量类别,可单独调整客户端音量。
  • 全局服务器音量控制。

要求

  • Fabric Loader。
  • 服务器上已安装 Simple Voice Chat。
  • 想收听音乐流的客户端已安装 Simple Voice Chat。
  • 安装的模组文件支持对应的 Minecraft 版本。

此模组负责控制服务器上的音乐,但玩家只能通过 Simple Voice Chat 连接收听。

安装

  1. 在服务器上安装 Fabric Loader。
  2. 在服务器上安装 Simple Voice Chat。
  3. 将此模组安装到服务器的 mods 文件夹中。
  4. 想收听音乐流的玩家必须在客户端安装 Simple Voice Chat。
  5. 启动服务器并运行 /music help。

快速开始

/music now
/music play https://www.youtube.com/watch?v=VIDEO_ID 10
/music queue add https://music.youtube.com/watch?v=NEXT_VIDEO_ID
/music queue add https://www.youtube.com/playlist?list=PLAYLIST_ID
/music queue list

如果 YouTube 要求登录或阻止播放,请按照服务器日志中的提示完成 OAuth 设备登录。

工作原理

  1. 玩家运行 /music play、将 URL 加入队列,或启动已保存的播放列表。
  2. Lavaplayer 会加载该 URL。
  3. YouTube 链接由 youtube-source 处理。
  4. 模组会将编码后的音频帧发送到 Simple Voice Chat 静态音频频道。
  5. 指定的听众会收听同一条音乐流。

每台服务器只有一条正在播放的全局音乐流。使用 /music play 启动新曲目会替换当前播放内容并清空运行时队列。

YouTube OAuth

YouTube 可能会阻止自动播放客户端。此模组支持通过 youtube-source 使用 YouTube OAuth。

配置文件:

config/music.json

重要字段:

{
  "youtubeOAuthEnabled": true,
  "youtubeOAuthRefreshToken": "",
  "youtubeOAuthSkipInitialization": false
}

首次登录流程:

  1. 启动服务器。
  2. 运行 /music play <youtube-url>。
  3. 查看服务器日志中的 Google 设备登录代码。
  4. 在浏览器中完成登录。
  5. 刷新令牌会保存到 config/music.json。

YouTube 登录适用于整个服务器,而非单个玩家。请妥善保管 music.json,因为其中可能包含 OAuth 刷新令牌。建议使用备用 YouTube 账号。

命令

运行:

/music help
/music help queue
/music help playlist
/music help target
/music help volume

所有人

/music help
/music now
/music queue list
/music leave
/music join
  • /music leave将玩家从音乐串流中移除。
  • /music join取消个人退出设置。
  • 个人音量由 Simple Voice Chat 客户端中的“Music”滑块控制。

播放

所有玩家:

/music play <url>
/music play <url> <volume>
/music stop
/music pause
/music resume
/music skip
/music forward <seconds>
/music backward <seconds>
/music volume <1-100>
/music repeat off
/music repeat one
/music repeat queue
/music shuffle on
/music shuffle off

行为:

  • /music play <url>立即开始播放并清空运行时队列。
  • /music play <youtube-playlist-url>开始播放播放列表中的第一首曲目,并将其余曲目加入队列。
  • /music play <url> <volume>开始播放,并将全局音量从 1 设置为 100。
  • /music forward <seconds>将当前曲目快进。
  • /music backward <seconds>将当前曲目倒回。
  • /music repeat one重复播放当前曲目。
  • /music repeat queue循环播放队列。
  • /music shuffle on随机选择队列中的曲目。

队列

所有玩家:

/music queue add <url>
/music queue remove <index>
/music queue clear
/music skip

所有人均可查看:

/music queue list

队列行为:

  • 服务器重启后,运行时队列不会保存。
  • /music queue add <url>添加一首曲目到队列末尾。
  • /music queue add <youtube-playlist-url>展开播放列表,并将其中每首歌曲添加到队列末尾。
  • 队列元数据会在后台加载,因此新项目可能会短暂显示为 title loading。
  • YouTube 创作者名称末尾的 - Topic 将不会显示。
  • 如果元数据加载失败,网址仍会保留在队列中,播放时仍会尝试读取。

输出示例:

[Music] Queue:
1. Song Title - Creator Name | 3:22 | requested by PlayerName | added 16:21:05
2. title loading: https://www.youtube.com/watch?v=... | requested by PlayerName

已保存的播放列表

所有玩家:

/music playlist list
/music playlist create <name>
/music playlist delete <name>
/music playlist show <name>
/music playlist add <name> <url>
/music playlist remove <name> <index>
/music playlist play <name>
/music playlist queue <name>

播放列表行为:

  • 播放列表保存在 config/music-playlists.json。
  • 播放列表名称只能是单个单词。
  • /music playlist add <name> <url>添加一首曲目。
  • /music playlist add <name> <youtube-playlist-url>导入 YouTube 播放列表中的所有歌曲。
  • /music playlist play <name>替换当前播放内容并开始播放该播放列表。
  • /music playlist queue <name>将已保存的播放列表追加到当前队列末尾。

示例:

/music playlist create lobby
/music playlist add lobby https://www.youtube.com/watch?v=SONG_1
/music playlist add lobby https://www.youtube.com/playlist?list=PLAYLIST_ID
/music playlist play lobby

目标选择

所有玩家:

/music target all
/music target only <players>
/music target add <players>
/music target remove <players>
/music target show
/music exclude add <players>
/music exclude remove <players>
/music exclude clear

目标选择顺序:

  1. 已连接的 Simple Voice Chat 客户端。
  2. 如果已设置,则应用包含筛选条件。
  3. 应用排除筛选条件。
  4. 玩家通过 /music leave 设置的个人退出选项。

个人退出设置始终优先。/music target all 不会强制已退出的玩家收听。

示例:

/music target all
/music target only Steve
/music target add Alex
/music exclude add Steve
/music exclude clear

配置文件

主配置:

config/music.json

保存 YouTube OAuth 设置、循环/随机播放设置、目标筛选条件、排除项和玩家的自主退出设置。

播放列表配置:

config/music-playlists.json

保存的播放列表名称和曲目条目。

播放列表示例结构:

{
  "playlists": {
    "lobby": [
      {
        "url": "https://www.youtube.com/watch?v=SONG_1",
        "title": "Song Title",
        "creator": "Creator Name",
        "requestedByName": "server",
        "durationMillis": 202000
      }
    ]
  }
}

服务器运行期间,请使用命令而不是编辑播放列表文件。

URL 支持

较可靠的链接:

  • YouTube 普通观看链接。
  • YouTube Music 观看链接。
  • YouTube 和 YouTube Music 播放列表链接。
  • Lavaplayer 支持的直接音频文件 URL。
  • 部分可提取音频的直接视频 URL。

可靠性较低的链接:

  • Spotify 页面链接。
  • 私人视频或有年龄限制的视频。
  • 受地区限制的视频。
  • 被机器人检测机制拦截的 YouTube 链接。

不支持的 URL 应显示聊天错误,而不是导致服务器崩溃。

命令权限

所有玩家都可以使用每个 /music 命令,包括会更改服务器播放状态的命令:

  • 播放、停止、暂停、继续、跳过、快进、快退。
  • 添加/移除/清空队列。
  • 创建/删除/添加/移除/播放/排入队列播放列表。
  • 目标和排除筛选条件。
  • 循环、随机播放、全局音量。

自助操作和查看命令:

  • /music help
  • /music now
  • /music queue list
  • /music leave
  • /music join

故障排除

显示正在播放,但没人听得到音乐

运行:

/music now
/music target show

检查以下事项:

  • Simple Voice Chat 已连接。
  • 语音目标/监听者数量不为 0。
  • 玩家没有运行 /music leave。
  • 玩家未被 /music exclude 排除。
  • 客户端 Simple Voice Chat 的“Music”滑块不为 0%。
  • 全局音量没有设置得太低。

YouTube 提示登录或机器人验证

在 config/music.json 中启用 OAuth 并重启,然后运行:

/music play <youtube-url>

按照服务器日志中显示的步骤完成设备登录。之后,应该会保存 youtubeOAuthRefreshToken。

队列名称显示为“正在加载”或“未知”

元数据会异步加载。请稍等几秒后运行:

/music queue list

如果元数据仍显示为未知,说明 Lavaplayer 无法解析该 URL 的元数据。模组仍会在轮到该 URL 播放时尝试播放。

将目标设为全部后,有玩家听不到音乐

检查该玩家是否主动退出:

/music target show

玩家可以通过以下方式重新加入:

/music join

个人退出设置的优先级高于目标筛选条件。

备注

  • 此模组不会将歌曲下载到磁盘。
  • 如果 YouTube 屏蔽客户端或更改播放器行为,播放仍可能失败。
  • YouTube 主题频道作者名称会经过清理后再显示;例如,Artist - Topic 会变为 Artist。
  • OAuth 能提高 YouTube 的可靠性,但建议使用备用 YouTube 账号。
  • 尚未实现服务端按玩家分别设置音量;个人音量请使用 Simple Voice Chat 客户端的“Music”滑块调整。

常见问题

Simple Voice Chat Music Addon 支持哪些 Minecraft 版本?

Simple Voice Chat Music Addon 支持 Minecraft Java 版 1.21–26.3,共 17 个版本,可用的加载器:Fabric。下载时注意选择和你游戏版本一致的文件。

Simple Voice Chat Music Addon 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 Fabric,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。运行环境:仅服务端。

评论

登录后评论和评分

rjiangame 的其他作品

查看全部 →