package net.minecraft.network.protocol.common; import io.netty.buffer.ByteBuf; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.codec.ByteBufCodecs; import net.minecraft.network.codec.StreamCodec; import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.PacketType; import net.minecraft.resources.ResourceLocation; public record ClientboundStoreCookiePacket(ResourceLocation key, byte[] payload) implements Packet { public static final StreamCodec STREAM_CODEC = Packet.codec( ClientboundStoreCookiePacket::write, ClientboundStoreCookiePacket::new ); private static final int MAX_PAYLOAD_SIZE = 5120; public static final StreamCodec PAYLOAD_STREAM_CODEC = ByteBufCodecs.byteArray(5120); private ClientboundStoreCookiePacket(FriendlyByteBuf buffer) { this(buffer.readResourceLocation(), PAYLOAD_STREAM_CODEC.decode(buffer)); } private void write(FriendlyByteBuf buffer) { buffer.writeResourceLocation(this.key); PAYLOAD_STREAM_CODEC.encode(buffer, this.payload); } @Override public PacketType type() { return CommonPacketTypes.CLIENTBOUND_STORE_COOKIE; } /** * Passes this Packet on to the PacketListener for processing. */ public void handle(ClientCommonPacketListener handler) { handler.handleStoreCookie(this); } }