minecraft_25w45a_unobfuscated/net/minecraft/network/Varint21LengthFieldPrepender.java
2025-11-24 22:52:51 +03:00

37 lines
1.2 KiB
Java

/*
* Decompiled with CFR 0.152.
*
* Could not load the following classes:
* io.netty.buffer.ByteBuf
* io.netty.channel.ChannelHandler$Sharable
* io.netty.channel.ChannelHandlerContext
* io.netty.handler.codec.EncoderException
* io.netty.handler.codec.MessageToByteEncoder
*/
package net.minecraft.network;
import io.netty.buffer.ByteBuf;
import io.netty.channel.ChannelHandler;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.EncoderException;
import io.netty.handler.codec.MessageToByteEncoder;
import net.minecraft.network.VarInt;
@ChannelHandler.Sharable
public class Varint21LengthFieldPrepender
extends MessageToByteEncoder<ByteBuf> {
public static final int MAX_VARINT21_BYTES = 3;
protected void encode(ChannelHandlerContext ctx, ByteBuf msg, ByteBuf out) {
int bodyLength = msg.readableBytes();
int headerLength = VarInt.getByteSize(bodyLength);
if (headerLength > 3) {
throw new EncoderException("Packet too large: size " + bodyLength + " is over 8");
}
out.ensureWritable(headerLength + bodyLength);
VarInt.write(out, bodyLength);
out.writeBytes(msg, msg.readerIndex(), bodyLength);
}
}