package net.minecraft.network.syncher; import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.codec.StreamCodec; public interface EntityDataSerializer { StreamCodec codec(); default EntityDataAccessor createAccessor(final int id) { return new EntityDataAccessor<>(id, this); } T copy(T value); static EntityDataSerializer forValueType(final StreamCodec codec) { return () -> codec; } public interface ForValueType extends EntityDataSerializer { @Override default T copy(final T value) { return value; } } }