Record Class RegistrySyncPayload
java.lang.Object
java.lang.Record
net.fabricmc.fabric.impl.registry.sync.packet.RegistrySyncPayload
- All Implemented Interfaces:
net.minecraft.network.protocol.common.custom.CustomPacketPayload
public record RegistrySyncPayload(Map<net.minecraft.resources.Identifier, it.unimi.dsi.fastutil.objects.Object2IntMap<net.minecraft.resources.Identifier>> registryMap, Map<net.minecraft.resources.Identifier, EnumSet<RegistryAttribute>> registryAttributes)
extends Record
implements net.minecraft.network.protocol.common.custom.CustomPacketPayload
A more optimized method to sync registry ids to client.
Produces smaller packets than the old nbt-based method.
This method optimizes the packet in multiple ways:
- Directly writes into the buffer instead of using an nbt;
- Groups all
Identifiers with same namespace together and only sends those unique namespaces once for each group; - Groups consecutive rawIds together and only sends the difference of the first rawId and the last rawId of the bulk before. This is based on the assumption that mods generally register all of their objects at once, therefore making the rawIds somewhat densely packed.
-
Nested Class Summary
Nested classes/interfaces inherited from interface net.minecraft.network.protocol.common.custom.CustomPacketPayload
net.minecraft.network.protocol.common.custom.CustomPacketPayload.FallbackProvider<B>, net.minecraft.network.protocol.common.custom.CustomPacketPayload.Type<T>, net.minecraft.network.protocol.common.custom.CustomPacketPayload.TypeAndCodec<B,T> -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final net.minecraft.network.codec.StreamCodec<net.minecraft.network.FriendlyByteBuf, RegistrySyncPayload> static final net.minecraft.network.protocol.common.custom.CustomPacketPayload.Type<RegistrySyncPayload> -
Constructor Summary
ConstructorsConstructorDescriptionRegistrySyncPayload(Map<net.minecraft.resources.Identifier, it.unimi.dsi.fastutil.objects.Object2IntMap<net.minecraft.resources.Identifier>> registryMap) RegistrySyncPayload(Map<net.minecraft.resources.Identifier, it.unimi.dsi.fastutil.objects.Object2IntMap<net.minecraft.resources.Identifier>> registryMap, Map<net.minecraft.resources.Identifier, EnumSet<RegistryAttribute>> registryAttributes) Creates an instance of aRegistrySyncPayloadrecord class. -
Method Summary
Modifier and TypeMethodDescriptionfinal booleanIndicates whether some other object is "equal to" this one.final inthashCode()Returns a hash code value for this object.Map<net.minecraft.resources.Identifier, EnumSet<RegistryAttribute>> Returns the value of theregistryAttributesrecord component.Map<net.minecraft.resources.Identifier, it.unimi.dsi.fastutil.objects.Object2IntMap<net.minecraft.resources.Identifier>> Returns the value of theregistryMaprecord component.final StringtoString()Returns a string representation of this record class.net.minecraft.network.protocol.common.custom.CustomPacketPayload.Type<RegistrySyncPayload> type()Methods inherited from interface net.minecraft.network.protocol.common.custom.CustomPacketPayload
toVanillaClientbound, toVanillaServerbound
-
Field Details
-
ID
public static final net.minecraft.network.protocol.common.custom.CustomPacketPayload.Type<RegistrySyncPayload> ID -
CODEC
public static final net.minecraft.network.codec.StreamCodec<net.minecraft.network.FriendlyByteBuf, RegistrySyncPayload> CODEC
-
-
Constructor Details
-
RegistrySyncPayload
public RegistrySyncPayload(Map<net.minecraft.resources.Identifier, it.unimi.dsi.fastutil.objects.Object2IntMap<net.minecraft.resources.Identifier>> registryMap) -
RegistrySyncPayload
public RegistrySyncPayload(Map<net.minecraft.resources.Identifier, it.unimi.dsi.fastutil.objects.Object2IntMap<net.minecraft.resources.Identifier>> registryMap, Map<net.minecraft.resources.Identifier, EnumSet<RegistryAttribute>> registryAttributes) Creates an instance of aRegistrySyncPayloadrecord class.- Parameters:
registryMap- the value for theregistryMaprecord componentregistryAttributes- the value for theregistryAttributesrecord component
-
-
Method Details
-
type
public net.minecraft.network.protocol.common.custom.CustomPacketPayload.Type<RegistrySyncPayload> type()- Specified by:
typein interfacenet.minecraft.network.protocol.common.custom.CustomPacketPayload
-
toString
-
hashCode
-
equals
Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared withObjects::equals(Object,Object). -
registryMap
public Map<net.minecraft.resources.Identifier, it.unimi.dsi.fastutil.objects.Object2IntMap<net.minecraft.resources.Identifier>> registryMap()Returns the value of theregistryMaprecord component.- Returns:
- the value of the
registryMaprecord component
-
registryAttributes
Returns the value of theregistryAttributesrecord component.- Returns:
- the value of the
registryAttributesrecord component
-