package net.minecraft.network.protocol; import io.netty.buffer.ByteBuf; import net.minecraft.network.PacketListener; import net.minecraft.network.codec.IdDispatchCodec; import net.minecraft.network.codec.StreamCodec; public class ProtocolCodecBuilder { private final IdDispatchCodec.Builder, PacketType>> dispatchBuilder = IdDispatchCodec.builder(Packet::type); private final PacketFlow flow; public ProtocolCodecBuilder(PacketFlow p_334440_) { this.flow = p_334440_; } public > ProtocolCodecBuilder add(PacketType p_331162_, StreamCodec p_335909_) { if (p_331162_.flow() != this.flow) { throw new IllegalArgumentException("Invalid packet flow for packet " + p_331162_ + ", expected " + this.flow.name()); } else { this.dispatchBuilder.add(p_331162_, p_335909_); return this; } } public StreamCodec> build() { return this.dispatchBuilder.build(); } }