package net.minecraft.network.protocol.status; import com.google.gson.JsonElement; import com.mojang.serialization.JsonOps; import io.netty.buffer.ByteBuf; import net.minecraft.core.RegistryAccess; 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.RegistryOps; public record ClientboundStatusResponsePacket(ServerStatus status) implements Packet { private static final RegistryOps OPS = RegistryAccess.EMPTY.createSerializationContext(JsonOps.INSTANCE); public static final StreamCodec STREAM_CODEC = StreamCodec.composite( ByteBufCodecs.lenientJson(32767).apply(ByteBufCodecs.fromCodec(OPS, ServerStatus.CODEC)), ClientboundStatusResponsePacket::status, ClientboundStatusResponsePacket::new ); @Override public PacketType type() { return StatusPacketTypes.CLIENTBOUND_STATUS_RESPONSE; } /** * Passes this Packet on to the NetHandler for processing. */ public void handle(ClientStatusPacketListener handler) { handler.handleStatusResponse(this); } }