Package net.minecraft.util.dynamic
Class Codecs
java.lang.Object
net.minecraft.util.dynamic.Codecs
A few extensions for
Codec
or DynamicOps
.
It has a few methods to create checkers for Codec.flatXmap
to add
extra value validation to encoding and decoding. See the implementation of
nonEmptyList(Codec)
.
- Mappings:
Namespace Name official aiv
intermediary net/minecraft/class_5699
named net/minecraft/util/dynamic/Codecs
-
Nested Class Summary
Modifier and TypeClassDescription(package private) class
private static final class
private static final record
private static final class
Codecs.Xor<F,
S> An xor codec that only permits exactly one of the two data choices to be present. -
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic <P,
I> com.mojang.serialization.Codec<I> createCodecForPairObject
(com.mojang.serialization.Codec<P> codec, String leftFieldName, String rightFieldName, BiFunction<P, P, com.mojang.serialization.DataResult<I>> combineFunction, Function<I, P> leftFunction, Function<I, P> rightFunction) static <E> com.mojang.serialization.MapCodec<E>
createContextRetrievalCodec
(Function<com.mojang.serialization.DynamicOps<?>, com.mojang.serialization.DataResult<E>> retriever) static <E,
L extends Collection<E>, T>
Function<L,com.mojang.serialization.DataResult<L>> createEqualTypeChecker
(Function<E, T> typeGetter) private static <N extends Number & Comparable<N>>
Function<N,com.mojang.serialization.DataResult<N>> createFloatRangeChecker
(N min, N max, Function<N, String> messageFactory) private static <N extends Number & Comparable<N>>
Function<N,com.mojang.serialization.DataResult<N>> createIntRangeChecker
(N min, N max, Function<N, String> messageFactory) static <A> com.mojang.serialization.Codec<A>
createLazy
(Supplier<com.mojang.serialization.Codec<A>> supplier) static <T> Function<RegistryEntryList<T>,
com.mojang.serialization.DataResult<RegistryEntryList<T>>> static <E> com.mojang.serialization.Codec<E>
method_39508
(Function<E, String> function, Function<String, E> function2) static <T> com.mojang.serialization.Codec<RegistryEntryList<T>>
nonEmptyEntryList
(com.mojang.serialization.Codec<RegistryEntryList<T>> originalCodec) static <T> com.mojang.serialization.Codec<List<T>>
nonEmptyList
(com.mojang.serialization.Codec<List<T>> originalCodec) static <E> com.mojang.serialization.Codec<E>
orCompressed
(com.mojang.serialization.Codec<E> uncompressedCodec, com.mojang.serialization.Codec<E> compressedCodec) static <A> com.mojang.serialization.Codec.ResultFunction<A>
orElsePartial
(A a) private static com.mojang.serialization.Codec<Float>
rangedFloat
(float min, float max, Function<Float, String> messageFactory) private static com.mojang.serialization.Codec<Integer>
static <E> com.mojang.serialization.Codec<E>
rawIdChecked
(ToIntFunction<E> elementToRawId, IntFunction<E> rawIdToElement, int errorRawId) static <E> com.mojang.serialization.Codec<E>
withLifecycle
(com.mojang.serialization.Codec<E> originalCodec, Function<E, com.mojang.serialization.Lifecycle> function, Function<E, com.mojang.serialization.Lifecycle> function2) static <F,
S> com.mojang.serialization.Codec<com.mojang.datafixers.util.Either<F, S>> xor
(com.mojang.serialization.Codec<F> first, com.mojang.serialization.Codec<S> second) Returns an exclusive-or codec forCodecs.Either
instances.
-
Field Details
-
NONNEGATIVE_INT
- Mappings:
Namespace Name Mixin selector official a
Laiv;a:Lcom/mojang/serialization/Codec;
intermediary field_33441
Lnet/minecraft/class_5699;field_33441:Lcom/mojang/serialization/Codec;
named NONNEGATIVE_INT
Lnet/minecraft/util/dynamic/Codecs;NONNEGATIVE_INT:Lcom/mojang/serialization/Codec;
-
POSITIVE_INT
- Mappings:
Namespace Name Mixin selector official b
Laiv;b:Lcom/mojang/serialization/Codec;
intermediary field_33442
Lnet/minecraft/class_5699;field_33442:Lcom/mojang/serialization/Codec;
named POSITIVE_INT
Lnet/minecraft/util/dynamic/Codecs;POSITIVE_INT:Lcom/mojang/serialization/Codec;
-
POSITIVE_FLOAT
- Mappings:
Namespace Name Mixin selector official c
Laiv;c:Lcom/mojang/serialization/Codec;
intermediary field_34387
Lnet/minecraft/class_5699;field_34387:Lcom/mojang/serialization/Codec;
named POSITIVE_FLOAT
Lnet/minecraft/util/dynamic/Codecs;POSITIVE_FLOAT:Lcom/mojang/serialization/Codec;
-
-
Constructor Details
-
Codecs
public Codecs()
-
-
Method Details
-
xor
public static <F,S> com.mojang.serialization.Codec<com.mojang.datafixers.util.Either<F,S>> xor(com.mojang.serialization.Codec<F> first, com.mojang.serialization.Codec<S> second) Returns an exclusive-or codec forCodecs.Either
instances.This returned codec fails if both the
first
andsecond
codecs can decode the input, while DFU'sEitherCodec
will always take the first decoded result when it is available.Otherwise, this behaves the same as the either codec.
- Type Parameters:
F
- the first typeS
- the second type- Parameters:
first
- the first codecsecond
- the second codec- Returns:
- the xor codec for the two codecs
- See Also:
-
Codec.either(Codec, Codec)
EitherCodec
- Mappings:
Namespace Name Mixin selector official a
Laiv;a(Lcom/mojang/serialization/Codec;Lcom/mojang/serialization/Codec;)Lcom/mojang/serialization/Codec;
intermediary method_33817
Lnet/minecraft/class_5699;method_33817(Lcom/mojang/serialization/Codec;Lcom/mojang/serialization/Codec;)Lcom/mojang/serialization/Codec;
named xor
Lnet/minecraft/util/dynamic/Codecs;xor(Lcom/mojang/serialization/Codec;Lcom/mojang/serialization/Codec;)Lcom/mojang/serialization/Codec;
-
createCodecForPairObject
public static <P,I> com.mojang.serialization.Codec<I> createCodecForPairObject(com.mojang.serialization.Codec<P> codec, String leftFieldName, String rightFieldName, BiFunction<P, P, com.mojang.serialization.DataResult<I>> combineFunction, Function<I, P> leftFunction, Function<I, P> rightFunction) - Mappings:
Namespace Name Mixin selector official a
Laiv;a(Lcom/mojang/serialization/Codec;Ljava/lang/String;Ljava/lang/String;Ljava/util/function/BiFunction;Ljava/util/function/Function;Ljava/util/function/Function;)Lcom/mojang/serialization/Codec;
intermediary method_37931
Lnet/minecraft/class_5699;method_37931(Lcom/mojang/serialization/Codec;Ljava/lang/String;Ljava/lang/String;Ljava/util/function/BiFunction;Ljava/util/function/Function;Ljava/util/function/Function;)Lcom/mojang/serialization/Codec;
named createCodecForPairObject
Lnet/minecraft/util/dynamic/Codecs;createCodecForPairObject(Lcom/mojang/serialization/Codec;Ljava/lang/String;Ljava/lang/String;Ljava/util/function/BiFunction;Ljava/util/function/Function;Ljava/util/function/Function;)Lcom/mojang/serialization/Codec;
-
orElsePartial
public static <A> com.mojang.serialization.Codec.ResultFunction<A> orElsePartial(A a) - Mappings:
Namespace Name Mixin selector official a
Laiv;a(Ljava/lang/Object;)Lcom/mojang/serialization/Codec$ResultFunction;
intermediary method_39028
Lnet/minecraft/class_5699;method_39028(Ljava/lang/Object;)Lcom/mojang/serialization/Codec$ResultFunction;
named orElsePartial
Lnet/minecraft/util/dynamic/Codecs;orElsePartial(Ljava/lang/Object;)Lcom/mojang/serialization/Codec$ResultFunction;
-
rawIdChecked
public static <E> com.mojang.serialization.Codec<E> rawIdChecked(ToIntFunction<E> elementToRawId, IntFunction<E> rawIdToElement, int errorRawId) - Mappings:
Namespace Name Mixin selector official a
Laiv;a(Ljava/util/function/ToIntFunction;Ljava/util/function/IntFunction;I)Lcom/mojang/serialization/Codec;
intermediary method_39511
Lnet/minecraft/class_5699;method_39511(Ljava/util/function/ToIntFunction;Ljava/util/function/IntFunction;I)Lcom/mojang/serialization/Codec;
named rawIdChecked
Lnet/minecraft/util/dynamic/Codecs;rawIdChecked(Ljava/util/function/ToIntFunction;Ljava/util/function/IntFunction;I)Lcom/mojang/serialization/Codec;
-
method_39508
public static <E> com.mojang.serialization.Codec<E> method_39508(Function<E, String> function, Function<String, E> function2) - Mappings:
Namespace Name Mixin selector official a
Laiv;a(Ljava/util/function/Function;Ljava/util/function/Function;)Lcom/mojang/serialization/Codec;
intermediary method_39508
Lnet/minecraft/class_5699;method_39508(Ljava/util/function/Function;Ljava/util/function/Function;)Lcom/mojang/serialization/Codec;
named method_39508
Lnet/minecraft/util/dynamic/Codecs;method_39508(Ljava/util/function/Function;Ljava/util/function/Function;)Lcom/mojang/serialization/Codec;
-
orCompressed
public static <E> com.mojang.serialization.Codec<E> orCompressed(com.mojang.serialization.Codec<E> uncompressedCodec, com.mojang.serialization.Codec<E> compressedCodec) - Mappings:
Namespace Name Mixin selector official b
Laiv;b(Lcom/mojang/serialization/Codec;Lcom/mojang/serialization/Codec;)Lcom/mojang/serialization/Codec;
intermediary method_39512
Lnet/minecraft/class_5699;method_39512(Lcom/mojang/serialization/Codec;Lcom/mojang/serialization/Codec;)Lcom/mojang/serialization/Codec;
named orCompressed
Lnet/minecraft/util/dynamic/Codecs;orCompressed(Lcom/mojang/serialization/Codec;Lcom/mojang/serialization/Codec;)Lcom/mojang/serialization/Codec;
-
withLifecycle
public static <E> com.mojang.serialization.Codec<E> withLifecycle(com.mojang.serialization.Codec<E> originalCodec, Function<E, com.mojang.serialization.Lifecycle> function, Function<E, com.mojang.serialization.Lifecycle> function2) - Mappings:
Namespace Name Mixin selector official a
Laiv;a(Lcom/mojang/serialization/Codec;Ljava/util/function/Function;Ljava/util/function/Function;)Lcom/mojang/serialization/Codec;
intermediary method_39504
Lnet/minecraft/class_5699;method_39504(Lcom/mojang/serialization/Codec;Ljava/util/function/Function;Ljava/util/function/Function;)Lcom/mojang/serialization/Codec;
named withLifecycle
Lnet/minecraft/util/dynamic/Codecs;withLifecycle(Lcom/mojang/serialization/Codec;Ljava/util/function/Function;Ljava/util/function/Function;)Lcom/mojang/serialization/Codec;
-
createIntRangeChecker
private static <N extends Number & Comparable<N>> Function<N,com.mojang.serialization.DataResult<N>> createIntRangeChecker(N min, N max, Function<N, String> messageFactory) - Mappings:
Namespace Name Mixin selector official a
Laiv;a(Ljava/lang/Number;Ljava/lang/Number;Ljava/util/function/Function;)Ljava/util/function/Function;
intermediary method_36243
Lnet/minecraft/class_5699;method_36243(Ljava/lang/Number;Ljava/lang/Number;Ljava/util/function/Function;)Ljava/util/function/Function;
named createIntRangeChecker
Lnet/minecraft/util/dynamic/Codecs;createIntRangeChecker(Ljava/lang/Number;Ljava/lang/Number;Ljava/util/function/Function;)Ljava/util/function/Function;
-
rangedInt
private static com.mojang.serialization.Codec<Integer> rangedInt(int min, int max, Function<Integer, String> messageFactory) - Mappings:
Namespace Name Mixin selector official a
Laiv;a(IILjava/util/function/Function;)Lcom/mojang/serialization/Codec;
intermediary method_36241
Lnet/minecraft/class_5699;method_36241(IILjava/util/function/Function;)Lcom/mojang/serialization/Codec;
named rangedInt
Lnet/minecraft/util/dynamic/Codecs;rangedInt(IILjava/util/function/Function;)Lcom/mojang/serialization/Codec;
-
createFloatRangeChecker
private static <N extends Number & Comparable<N>> Function<N,com.mojang.serialization.DataResult<N>> createFloatRangeChecker(N min, N max, Function<N, String> messageFactory) - Mappings:
Namespace Name Mixin selector official b
Laiv;b(Ljava/lang/Number;Ljava/lang/Number;Ljava/util/function/Function;)Ljava/util/function/Function;
intermediary method_37940
Lnet/minecraft/class_5699;method_37940(Ljava/lang/Number;Ljava/lang/Number;Ljava/util/function/Function;)Ljava/util/function/Function;
named createFloatRangeChecker
Lnet/minecraft/util/dynamic/Codecs;createFloatRangeChecker(Ljava/lang/Number;Ljava/lang/Number;Ljava/util/function/Function;)Ljava/util/function/Function;
-
rangedFloat
private static com.mojang.serialization.Codec<Float> rangedFloat(float min, float max, Function<Float, String> messageFactory) - Mappings:
Namespace Name Mixin selector official a
Laiv;a(FFLjava/util/function/Function;)Lcom/mojang/serialization/Codec;
intermediary method_37928
Lnet/minecraft/class_5699;method_37928(FFLjava/util/function/Function;)Lcom/mojang/serialization/Codec;
named rangedFloat
Lnet/minecraft/util/dynamic/Codecs;rangedFloat(FFLjava/util/function/Function;)Lcom/mojang/serialization/Codec;
-
createNonEmptyListChecker
public static <T> Function<List<T>,com.mojang.serialization.DataResult<List<T>>> createNonEmptyListChecker()- Mappings:
Namespace Name Mixin selector official a
Laiv;a()Ljava/util/function/Function;
intermediary method_36240
Lnet/minecraft/class_5699;method_36240()Ljava/util/function/Function;
named createNonEmptyListChecker
Lnet/minecraft/util/dynamic/Codecs;createNonEmptyListChecker()Ljava/util/function/Function;
-
nonEmptyList
public static <T> com.mojang.serialization.Codec<List<T>> nonEmptyList(com.mojang.serialization.Codec<List<T>> originalCodec) - Mappings:
Namespace Name Mixin selector official a
Laiv;a(Lcom/mojang/serialization/Codec;)Lcom/mojang/serialization/Codec;
intermediary method_36973
Lnet/minecraft/class_5699;method_36973(Lcom/mojang/serialization/Codec;)Lcom/mojang/serialization/Codec;
named nonEmptyList
Lnet/minecraft/util/dynamic/Codecs;nonEmptyList(Lcom/mojang/serialization/Codec;)Lcom/mojang/serialization/Codec;
-
createNonEmptyEntryListChecker
public static <T> Function<RegistryEntryList<T>,com.mojang.serialization.DataResult<RegistryEntryList<T>>> createNonEmptyEntryListChecker()- Mappings:
Namespace Name Mixin selector official b
Laiv;b()Ljava/util/function/Function;
intermediary method_40112
Lnet/minecraft/class_5699;method_40112()Ljava/util/function/Function;
named createNonEmptyEntryListChecker
Lnet/minecraft/util/dynamic/Codecs;createNonEmptyEntryListChecker()Ljava/util/function/Function;
-
nonEmptyEntryList
public static <T> com.mojang.serialization.Codec<RegistryEntryList<T>> nonEmptyEntryList(com.mojang.serialization.Codec<RegistryEntryList<T>> originalCodec) - Mappings:
Namespace Name Mixin selector official b
Laiv;b(Lcom/mojang/serialization/Codec;)Lcom/mojang/serialization/Codec;
intermediary method_40113
Lnet/minecraft/class_5699;method_40113(Lcom/mojang/serialization/Codec;)Lcom/mojang/serialization/Codec;
named nonEmptyEntryList
Lnet/minecraft/util/dynamic/Codecs;nonEmptyEntryList(Lcom/mojang/serialization/Codec;)Lcom/mojang/serialization/Codec;
-
createLazy
public static <A> com.mojang.serialization.Codec<A> createLazy(Supplier<com.mojang.serialization.Codec<A>> supplier) - Mappings:
Namespace Name Mixin selector official a
Laiv;a(Ljava/util/function/Supplier;)Lcom/mojang/serialization/Codec;
intermediary method_39240
Lnet/minecraft/class_5699;method_39240(Ljava/util/function/Supplier;)Lcom/mojang/serialization/Codec;
named createLazy
Lnet/minecraft/util/dynamic/Codecs;createLazy(Ljava/util/function/Supplier;)Lcom/mojang/serialization/Codec;
-
createContextRetrievalCodec
public static <E> com.mojang.serialization.MapCodec<E> createContextRetrievalCodec(Function<com.mojang.serialization.DynamicOps<?>, com.mojang.serialization.DataResult<E>> retriever) - Mappings:
Namespace Name Mixin selector official a
Laiv;a(Ljava/util/function/Function;)Lcom/mojang/serialization/MapCodec;
intermediary method_40110
Lnet/minecraft/class_5699;method_40110(Ljava/util/function/Function;)Lcom/mojang/serialization/MapCodec;
named createContextRetrievalCodec
Lnet/minecraft/util/dynamic/Codecs;createContextRetrievalCodec(Ljava/util/function/Function;)Lcom/mojang/serialization/MapCodec;
-
createEqualTypeChecker
public static <E,L extends Collection<E>, Function<L,T> com.mojang.serialization.DataResult<L>> createEqualTypeChecker(Function<E, T> typeGetter) - Mappings:
Namespace Name Mixin selector official b
Laiv;b(Ljava/util/function/Function;)Ljava/util/function/Function;
intermediary method_40114
Lnet/minecraft/class_5699;method_40114(Ljava/util/function/Function;)Ljava/util/function/Function;
named createEqualTypeChecker
Lnet/minecraft/util/dynamic/Codecs;createEqualTypeChecker(Ljava/util/function/Function;)Ljava/util/function/Function;
-