ViaRewind 兼容更老版本客户端
ViaRewind 插件介绍
ViaVersion 插件系列成员,用于让 1.7.x 和 1.8.x 的老版 Minecraft Java 客户端能够连接到 1.9 直至最新版本的服务器。它本身不单独工作,必须与 ViaVersion、ViaBackwards 配合使用,是 Via 系列中实现"老客户端进新版服务器"的最后一环。
许可证 GPL-3.0-or-later,由 ViaVersion Organization 维护,creeper123123321 与 FlorianMichael 主导开发。
为什么需要 ViaRewind
Via 系列三个插件分工明确:
ViaVersion:让高版本客户端连低版本服务器(向上兼容)
ViaBackwards:让 1.9+ 客户端连稍低版本的服务器(向下兼容)
ViaRewind:让 1.7.x / 1.8.x 客户端连 1.9+ 服务器(兼容更老的客户端)
也就是说,如果你的服务器跑在 1.9 或更高版本,又希望 1.7/1.8 的老玩家也能进来,就必须同时安装这三个插件。
支持客户端与服务端双向运行环境,可安装在:
| 平台 | 说明 |
| :--- | :--- |
| Paper / Folia | 插件形式安装于 plugins/ |
| Velocity / BungeeCord | 插件形式安装于代理层 |
| Sponge | 插件形式 |
| Fabric | 模组形式安装于 mods/(含 ViaFabric / ViaFabricPlus) |
版本兼容性
服务端 → 客户端矩阵
ViaRewind 运行在 1.9 到最新版的服务器上,允许下列老客户端进入:
1.7.x(最低至 1.7.10)
1.8.x(1.8 – 1.8.9)
结合 ViaVersion + ViaBackwards,完整组合可实现从 1.7.10 到 26.2 的全版本客户端互通。
当前构建(如 4.1.0-SNAPSHOT+338)加载器支持 Fabric / Folia / Paper / Velocity,游戏版本跨度 1.8.8 – 1.21.11。
Java 版本要求
需要 Java 17。如果你的服务端仍运行在 Java 8 上,需要从 ViaVersion CI 下载专门降级到 Java 8 的 ViaRewind 构建版本,作为最后手段。
核心机制
ViaRewind 工作在数据包层面:
服务器向 1.7/1.8 客户端发送数据包时,ViaRewind 将新版协议格式的数据包反向转换为老客户端能识别的格式
处理实体元数据、物品映射、音效 ID、方块状态等协议的差异
对 1.8→1.7 方向,额外处理实体销毁等数据包拆分,避免老客户端出现 NegativeArraySizeException
近期版本修复的重点包括:
1.8→1.9 的车辆卸载崩溃
1.8→1.9 的窗口物品栏翻译
附魔台界面属性重写
END_GATEWAY → END_PORTAL 映射
刷怪笼实体数据翻译
1.8→1.7 方向的元数据丢失问题
安装步骤
插件版(Paper / Folia / Velocity / BungeeCord)
从 Hangar 或 Modrinth 下载 ViaVersion、ViaBackwards、ViaRewind 三个 jar 文件
全部放入服务器的 plugins/ 目录
确保服务端运行在 Java 17 或以上
重启服务器
启动日志中应看到三个插件依次启用,无报错即安装成功
重要部署规则:Via 系列插件只能安装在代理层(Velocity/BungeeCord)或后端服务器中的一侧,不要两边同时安装,否则会造成数据包转发冲突。
Fabric 模组版
ViaFabric:将 ViaRewind 放入 mods/ 文件夹
ViaFabricPlus:将 ViaRewind 放入 ViaFabricPlus/jars/ 文件夹
下载渠道
| 渠道 | 用途 |
| :--- | :--- |
| Hangar | 插件版正式发布 |
| Modrinth | 模组版发布 |
| GitHub Releases | 正式版 |
| Jenkins CI | 开发构建(含 Java 8 降级版) |
配置说明
ViaRewind 本身没有独立的命令与权限节点,也没有独立的 config.yml。所有跨版本相关的管理操作都通过 ViaVersion 的统一命令(如 /viaversion、/viabackwards)完成,配置文件也集中在 ViaVersion 与 ViaBackwards 的 config.yml 中。
常见需要关注的配置项(位于 ViaBackwards 的 config.yml):
是否阻止 1.7/1.8 客户端连接(设为 false 以允许老客户端进入)
block-1_7-clients: false
block-1_8-clients: false
未支持版本的提示信息
unsupported-client-protocol-version: "..."
推荐组合方案
方案 A:仅支持 1.7/1.8 老客户端(最小集)
ViaVersion + ViaBackwards + ViaRewind
方案 B:全版本互通(1.7.10 – 26.2)
ViaVersion + ViaBackwards + ViaRewind
三个插件缺一不可,且三个插件必须处于同一构建频道(同为 beta 或同为 dev),混用不同频道可能导致协议转换异常。
已知限制
ViaRewind 只负责 1.7.x 和 1.8.x 这两个老客户端版本的连接兼容,更老的版本(如 Beta/Alpha/Classic)需要使用 ViaProxy 独立代理
1.7/1.8 客户端在新版服务器上游玩时,部分新版本独占特性(如新方块、新实体)无法正确显示或使用
如果服务端运行在 Java 8,必须使用 CI 上的 J8 降级构建,否则插件无法加载
不要将 Via 系列同时安装在代理层和后端服务器上
更新记录(近期)
| 版本 | 说明 |
| :--- | :--- |
| 4.1.0-SNAPSHOT | 基础项目依赖更新 |
| 3.1.2-SNAPSHOT | 修复 1.8→1.7 元数据丢失;修复 1.7→1.8 实体销毁数据包过大导致的异常 |
| 3.1.1 | 修复车辆卸载崩溃(1.8→1.9);修复窗口物品栏翻译;重写附魔台界面属性;修复刷怪笼实体数据翻译 |
相关链接
官方网站:viaversion.com/rewind
Hangar 插件下载:hangar.papermc.io/ViaVersion/ViaRewind
Modrinth 模组下载:modrinth.com/mod/viarewind
GitHub Releases:github.com/ViaVersion/ViaRewind/releases
Jenkins 开发构建:ci.viaversion.com/view/ViaRewind/
问题反馈:github.com/ViaVersion/ViaRewind/issues
许可协议
ViaRewind 采用 GPL-3.0-or-later 许可证发布,可自由下载、使用、修改与分发。
评论 (0)