VideoPlayer 是用于 Minecraft 1.20.1、1.20.4、1.21.1、1.21.11、26.1.2 以及 26.2 的 Fabric 视频播放模组,配套提供 Paper/Folia 服务端桥接插件。客户端负责解码与渲染,服务端负责区域、屏幕、权限、持久化和玩家间同步;多人服务器中的观看者需要安装相同兼容版本的客户端模组。
- VLC 与 MPV 双播放后端,启动向导可检测、安装运行库并配置下载代理。
- 支持直链和网络流,以及哔哩哔哩视频/直播(包括b23.tv短链)、YouTube、网易云音乐和 MV、抖音视频/直播等来源。
- 支持播放队列、空闲时播放、客户端同步、跳过投票、弹幕、字幕、音频通道。
- 支持自由顶点屏幕、UV 裁切、缩放、360 球面和可选 Vivecraft VR 集成。
- Paper/Folia 服务端桥接支持权限节点,可通过LuckPerms等权限插件管理和 Residence 区域控制。
- 曲面屏沿用既有
FLAT曲面:以闭合的非共面顶点条带表达,兼容客户端可直接渲染和交互。
| 组件 | Minecraft 1.20.1 / 1.20.4 / 1.21.1 / 1.21.11 | Minecraft 26.1.2 / 26.2 |
|---|---|---|
| 客户端 | Fabric Loader、Fabric API、Java 21+ | Fabric Loader、Fabric API、Java 25+ |
| 服务端桥接 | Paper/Folia、Java 21+ | Paper/Folia、Java 25+ |
Paper 服务端插件的调度、玩家状态、区域状态和清理路径按 Folia 区域线程模型实现,并在插件描述文件中声明 folia-supported: true。实际 Folia 服务器运行仍需使用目标版本进行验收。
运行库下载源覆盖 Windows、Linux、macOS 和 Android 的常见架构。MPV 与 VLC 的实际可用性取决于所选平台和本机运行库;可通过启动向导安装或改用已有运行库。
- 从 GitHub Release 或 Actions 构建产物 获取对应 JAR。
- 将 Fabric 模组 JAR 放入每位观看者的
mods目录,并安装匹配版本的 Fabric Loader 与 Fabric API。 - 多人服务器将 Paper 插件 JAR 放入
plugins目录后重启服务器。该插件是客户端模组的服务端桥接,不能单独让原版客户端播放视频。 - 进入游戏后执行
/videoplayer boot,选择 VLC 或 MPV,并按向导完成运行库,可选yt-dlp配置。 - 使用客户端的创建、管理界面或命令建立区域和屏幕,再将可播放 URL 加入屏幕队列。
请只播放拥有授权或允许公开播放的内容,并遵守视频源及其所在地区的服务条款。
以下是客户端命令;/vlc 或 /videoplayer
| 命令 | 用途 |
|---|---|
/videoplayer help |
查看客户端命令及子命令说明 |
/videoplayer boot |
打开设置向导 |
/videoplayer backend <backend> |
查看或切换新播放任务使用的后端;backend 为 vlc 或 mpv |
/videoplayer play <url> |
向当前选中的屏幕请求播放 |
/videoplayer biliAuth |
打开或管理哔哩哔哩认证 |
/videoplayer youtubeAuth |
打开或管理 YouTube Cookie 认证 |
Paper 插件提供的管理命令如下:
| 命令 | 所需权限 | 用途 |
|---|---|---|
/videoplayer:vlc joinmessage |
videoplayer.joinmessage |
切换客户端版本加入提示 |
/vlcversion |
videoplayer.version |
查看已连接客户端的 VideoPlayer 版本 |
完整的权限节点见 plugin.yml。videoplayer.admin 默认授予 OP,并包含服务端管理权限;在 Residence 区域中,创建与编辑操作还会遵循区域所有者和 padd 控制。
曲面屏不使用新的服务端类型。将屏幕表面保留为 FLAT,并按以下顺序提交闭合条带顶点:
- 上边沿弧线从左到右。
- 下边沿弧线从右到左返回。
顶点总数最多为 64,建议弧角小于 180 度。服务端会沿用现有创建、更新、校验、广播和世界持久化路径,保持顶点顺序及显示配置;兼容客户端会按弧长展开 UV、三角化并参与射线命中。
仓库按目标版本拆分为三个顶层目录,各 Minecraft 版本的模块互相独立,由根目录的 settings.gradle 统一编排:
| 目录 | 内容 |
|---|---|
clients/fabric/<版本> |
各版本的 Fabric 客户端模组 |
clients/mcng/fabric/<版本> |
MCNG 节点图客户端模块(见 MCNG_LICENSE) |
servers/paper/<版本> |
各版本的 Paper/Folia 服务端桥接插件 |
common/mcng-core |
MCNG 核心逻辑,供客户端与服务端模块共享 |
项目使用 Gradle Wrapper 和 Java 21:
.\gradlew.bat build
.\gradlew.bat test
.\gradlew.bat :paper-plugin:test构建产物:
| 模块 | 产物路径 |
|---|---|
| 1.20.1 Fabric 客户端模组 | clients/fabric/1.20.1/build/libs/VideoPlayer-2.0.3-1.20.1.jar |
| 1.20.1 Paper/Folia 服务端插件 | servers/paper/1.20.1/build/libs/VideoPlayer-Paper-2.0.3-1.20.1.jar |
| 1.20.4 Fabric 客户端模组 | clients/fabric/1.20.4/build/libs/VideoPlayer-2.0.3-1.20.4.jar |
| 1.20.4 Paper/Folia 服务端插件 | servers/paper/1.20.4/build/libs/VideoPlayer-Paper-2.0.3-1.20.4.jar |
| 1.21.1 Fabric 客户端模组 | clients/fabric/1.21.1/build/libs/VideoPlayer-2.0.3-1.21.1.jar |
| 1.21.1 Paper/Folia 服务端插件 | servers/paper/1.21.1/build/libs/VideoPlayer-Paper-2.0.3-1.21.1.jar |
| 1.21.11 Fabric 客户端模组 | clients/fabric/1.21.11/build/libs/VideoPlayer-2.0.3-1.21.11.jar |
| 1.21.11 Paper/Folia 服务端插件 | servers/paper/1.21.11/build/libs/VideoPlayer-Paper-2.0.3-1.21.11.jar |
| 26.1.2 Fabric 客户端模组 | clients/fabric/26.1.2/build/libs/VideoPlayer-2.0.3-26.1.2.jar |
| 26.1.2 Paper/Folia 服务端插件 | servers/paper/26.1.2/build/libs/VideoPlayer-Paper-2.0.3-26.1.2.jar |
| 26.2 Fabric 客户端模组 | clients/fabric/26.2/build/libs/VideoPlayer-2.0.3-26.2.jar |
| 26.2 Paper/Folia 服务端插件 | servers/paper/26.2/build/libs/VideoPlayer-Paper-2.0.3-26.2.jar |
GitHub Actions 会在每次推送后使用 Java 25 执行构建、验证全部发布包,并上传各版本产物。
本项目以 GPL-3.0 发布。
作者:squi2rel 协作者:cloudfl4re