From 94ef3ea11d74b91182762fbc71db27f53daceefb Mon Sep 17 00:00:00 2001 From: Maykol Tejeda Date: Sat, 3 Oct 2026 12:24:37 -0400 Subject: [PATCH] fix(velocity): restore packet length framing for 1.7 clients Restore the VarInt packet length prefix after ViaRewind replaces Velocity's compression encoder with ForwardMessageToByteEncoder. Without the length prefix, 1.7.x clients receive unframed packets and fail during login with "Bad packet id" errors. Verified by reproducing issue #616 and confirming that adding the packet length framing allows a 1.7.10 client to proceed: https://github.com/ViaVersion/ViaRewind/issues/616 --- .../api/minecraft/netty/ForwardMessageToByteEncoder.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/common/src/main/java/com/viaversion/viarewind/api/minecraft/netty/ForwardMessageToByteEncoder.java b/common/src/main/java/com/viaversion/viarewind/api/minecraft/netty/ForwardMessageToByteEncoder.java index 9053b6cc2..af953bfb4 100644 --- a/common/src/main/java/com/viaversion/viarewind/api/minecraft/netty/ForwardMessageToByteEncoder.java +++ b/common/src/main/java/com/viaversion/viarewind/api/minecraft/netty/ForwardMessageToByteEncoder.java @@ -17,6 +17,7 @@ */ package com.viaversion.viarewind.api.minecraft.netty; +import com.viaversion.viaversion.api.type.Types; import io.netty.buffer.ByteBuf; import io.netty.channel.ChannelHandlerContext; import io.netty.handler.codec.MessageToByteEncoder; @@ -25,6 +26,7 @@ public class ForwardMessageToByteEncoder extends MessageToByteEncoder { @Override protected void encode(ChannelHandlerContext ctx, ByteBuf msg, ByteBuf out) { + Types.VAR_INT.writePrimitive(out, msg.readableBytes()); out.writeBytes(msg); } }