package net.minecraft.network.protocol.game; import io.netty.buffer.ByteBuf; import java.util.Optional; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.ComponentSerialization; import net.minecraft.network.codec.ByteBufCodecs; import net.minecraft.network.codec.StreamCodec; import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.PacketType; public record ClientboundServerDataPacket(Component motd, Optional iconBytes) implements Packet { public static final StreamCodec STREAM_CODEC = StreamCodec.composite( ComponentSerialization.TRUSTED_CONTEXT_FREE_STREAM_CODEC, ClientboundServerDataPacket::motd, ByteBufCodecs.BYTE_ARRAY.apply(ByteBufCodecs::optional), ClientboundServerDataPacket::iconBytes, ClientboundServerDataPacket::new ); @Override public PacketType type() { return GamePacketTypes.CLIENTBOUND_SERVER_DATA; } /** * Passes this Packet on to the PacketListener for processing. */ public void handle(ClientGamePacketListener handler) { handler.handleServerData(this); } }