minecraft-src/net/minecraft/network/protocol/configuration/ClientboundRegistryDataPacket.java
2025-07-04 01:41:11 +03:00

35 lines
1.6 KiB
Java

package net.minecraft.network.protocol.configuration;
import io.netty.buffer.ByteBuf;
import java.util.List;
import net.minecraft.core.Registry;
import net.minecraft.core.RegistrySynchronization;
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.ResourceKey;
import net.minecraft.resources.ResourceLocation;
public record ClientboundRegistryDataPacket(ResourceKey<? extends Registry<?>> registry, List<RegistrySynchronization.PackedRegistryEntry> entries)
implements Packet<ClientConfigurationPacketListener> {
private static final StreamCodec<ByteBuf, ResourceKey<? extends Registry<?>>> REGISTRY_KEY_STREAM_CODEC = ResourceLocation.STREAM_CODEC
.map(ResourceKey::createRegistryKey, ResourceKey::location);
public static final StreamCodec<FriendlyByteBuf, ClientboundRegistryDataPacket> STREAM_CODEC = StreamCodec.composite(
REGISTRY_KEY_STREAM_CODEC,
ClientboundRegistryDataPacket::registry,
RegistrySynchronization.PackedRegistryEntry.STREAM_CODEC.apply(ByteBufCodecs.list()),
ClientboundRegistryDataPacket::entries,
ClientboundRegistryDataPacket::new
);
@Override
public PacketType<ClientboundRegistryDataPacket> type() {
return ConfigurationPacketTypes.CLIENTBOUND_REGISTRY_DATA;
}
public void handle(ClientConfigurationPacketListener clientConfigurationPacketListener) {
clientConfigurationPacketListener.handleRegistryData(this);
}
}