Class NeoForgeExtraCodecs
java.lang.Object
net.neoforged.neoforge.common.util.NeoForgeExtraCodecs
Codec
-related helper functions that are not in ExtraCodecs
, but useful to NeoForge and other mods.- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static final record
private static class
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic <T> com.mojang.serialization.MapCodec<T>
aliasedFieldOf
(com.mojang.serialization.Codec<T> codec, String... names) static <A> com.mojang.serialization.Codec<A>
decodeOnly
(com.mojang.serialization.Decoder<A> decoder) Creates a codec from a decoder.static <A> com.mojang.serialization.Codec<List<A>>
listWithOptionalElements
(com.mojang.serialization.Codec<Optional<A>> elementCodec) Creates a codec for a list from a codec of optional elements.static <A> com.mojang.serialization.Codec<List<A>>
listWithoutEmpty
(com.mojang.serialization.Codec<List<Optional<A>>> codec) Creates a codec for a list of optional elements, that removes empty values when decoding.static <T> com.mojang.serialization.MapCodec<T>
mapWithAlternative
(com.mojang.serialization.MapCodec<T> mapCodec, com.mojang.serialization.MapCodec<? extends T> alternative) static <T> com.mojang.serialization.Codec<Set<T>>
setOf
(com.mojang.serialization.Codec<T> codec) static <T> com.mojang.serialization.MapCodec<Set<T>>
singularOrPluralCodec
(com.mojang.serialization.Codec<T> codec, String singularName) static <T> com.mojang.serialization.MapCodec<Set<T>>
singularOrPluralCodec
(com.mojang.serialization.Codec<T> codec, String singularName, String pluralName) static <T> com.mojang.serialization.MapCodec<Set<T>>
singularOrPluralCodecNotEmpty
(com.mojang.serialization.Codec<T> codec, String singularName) static <T> com.mojang.serialization.MapCodec<Set<T>>
singularOrPluralCodecNotEmpty
(com.mojang.serialization.Codec<T> codec, String singularName, String pluralName) static <T> com.mojang.serialization.Codec<T>
withAlternative
(com.mojang.serialization.Codec<T> codec, com.mojang.serialization.Codec<T> alternative) Codec with two alternatives.static <T> com.mojang.serialization.MapCodec<T>
withAlternative
(com.mojang.serialization.MapCodec<T> codec, com.mojang.serialization.MapCodec<T> alternative) MapCodec with two alternatives.
-
Constructor Details
-
NeoForgeExtraCodecs
public NeoForgeExtraCodecs()
-
-
Method Details
-
aliasedFieldOf
public static <T> com.mojang.serialization.MapCodec<T> aliasedFieldOf(com.mojang.serialization.Codec<T> codec, String... names) -
mapWithAlternative
public static <T> com.mojang.serialization.MapCodec<T> mapWithAlternative(com.mojang.serialization.MapCodec<T> mapCodec, com.mojang.serialization.MapCodec<? extends T> alternative) -
singularOrPluralCodec
-
singularOrPluralCodec
-
singularOrPluralCodecNotEmpty
-
singularOrPluralCodecNotEmpty
-
setOf
public static <T> com.mojang.serialization.Codec<Set<T>> setOf(com.mojang.serialization.Codec<T> codec) -
decodeOnly
public static <A> com.mojang.serialization.Codec<A> decodeOnly(com.mojang.serialization.Decoder<A> decoder) Creates a codec from a decoder. The returned codec can only decode, and will throw on any attempt to encode. -
listWithOptionalElements
public static <A> com.mojang.serialization.Codec<List<A>> listWithOptionalElements(com.mojang.serialization.Codec<Optional<A>> elementCodec) Creates a codec for a list from a codec of optional elements. The empty optionals are removed from the list when decoding. -
listWithoutEmpty
public static <A> com.mojang.serialization.Codec<List<A>> listWithoutEmpty(com.mojang.serialization.Codec<List<Optional<A>>> codec) Creates a codec for a list of optional elements, that removes empty values when decoding. -
withAlternative
public static <T> com.mojang.serialization.Codec<T> withAlternative(com.mojang.serialization.Codec<T> codec, com.mojang.serialization.Codec<T> alternative) Codec with two alternatives.The vanilla
ExtraCodecs.withAlternative(Codec, Codec)
will try the first codec and then the second codec for decoding, but only the first for encoding.Unlike vanilla, this alternative codec also tries to encode with the second codec if the first encode fails.
- See Also:
-
withAlternative
public static <T> com.mojang.serialization.MapCodec<T> withAlternative(com.mojang.serialization.MapCodec<T> codec, com.mojang.serialization.MapCodec<T> alternative) MapCodec with two alternatives.mapWithAlternative(MapCodec, MapCodec)
will try the first codec and then the second codec for decoding, but only the first for encoding.Unlike
mapWithAlternative(MapCodec, MapCodec)
, this alternative codec also tries to encode with the second codec if the first encode fails.
-