package net.minecraft.network; import io.netty.buffer.ByteBuf; import java.util.function.Function; import net.minecraft.network.codec.StreamCodec; import net.minecraft.network.protocol.BundlerInfo; import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.PacketFlow; import net.minecraft.network.protocol.PacketType; import net.minecraft.util.VisibleForDebug; import org.jetbrains.annotations.Nullable; public interface ProtocolInfo { ConnectionProtocol id(); PacketFlow flow(); StreamCodec> codec(); @Nullable BundlerInfo bundlerInfo(); public interface Unbound { ProtocolInfo bind(Function bufferFactory); ConnectionProtocol id(); PacketFlow flow(); @VisibleForDebug void listPackets(ProtocolInfo.Unbound.PacketVisitor visitor); @FunctionalInterface public interface PacketVisitor { void accept(PacketType packetType, int i); } } }