类 NeoForgeExtraCodecs

java.lang.Object
net.neoforged.neoforge.common.util.NeoForgeExtraCodecs

public class NeoForgeExtraCodecs extends Object
Codec-related helper functions that are not in ExtraCodecs, but useful to NeoForge and other mods.
另请参阅:
  • 嵌套类概要

    嵌套类
    修饰符和类型
    说明
    private static final record 
     
    private static class 
     
    private static final class 
     
  • 构造器概要

    构造器
    构造器
    说明
     
  • 方法概要

    修饰符和类型
    方法
    说明
    static <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, E, B> com.mojang.serialization.MapCodec<com.mojang.datafixers.util.Either<E,B>>
    dispatchMapOrElse(com.mojang.serialization.Codec<A> typeCodec, Function<? super E,? extends A> type, Function<? super A,? extends com.mojang.serialization.MapCodec<? extends E>> codec, com.mojang.serialization.MapCodec<B> fallbackCodec)
    Map dispatch codec with an alternative.
    static <A, E, B> com.mojang.serialization.MapCodec<com.mojang.datafixers.util.Either<E,B>>
    dispatchMapOrElse(String key, com.mojang.serialization.Codec<A> typeCodec, Function<? super E,? extends A> type, Function<? super A,? extends com.mojang.serialization.MapCodec<? extends E>> codec, com.mojang.serialization.MapCodec<B> fallbackCodec)
    Map dispatch codec with an alternative.
    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.MapCodec<T>
    optionalFieldAlwaysWrite(com.mojang.serialization.Codec<T> codec, String name, T defaultValue)
    Similar to Codec.optionalFieldOf(String, Object), except that the default value is always written.
    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 <K, V> com.mojang.serialization.Codec<Map<K,V>>
    unboundedMapAsList(String keyName, com.mojang.serialization.Codec<K> keyCodec, String elementName, com.mojang.serialization.Codec<V> elementCodec)
    Creates a codec for an unbounded map whose underlying representation is a list of maps, with the given names for each key-element entry.
    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.
    static <F, S> com.mojang.serialization.MapCodec<com.mojang.datafixers.util.Either<F,S>>
    xor(com.mojang.serialization.MapCodec<F> first, com.mojang.serialization.MapCodec<S> second)
    Codec that matches exactly one out of two map codecs.

    从类继承的方法 java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 构造器详细资料

    • NeoForgeExtraCodecs

      public NeoForgeExtraCodecs()
  • 方法详细资料

    • aliasedFieldOf

      public static <T> com.mojang.serialization.MapCodec<T> aliasedFieldOf(com.mojang.serialization.Codec<T> codec, String... names)
    • optionalFieldAlwaysWrite

      public static <T> com.mojang.serialization.MapCodec<T> optionalFieldAlwaysWrite(com.mojang.serialization.Codec<T> codec, String name, T defaultValue)
      Similar to Codec.optionalFieldOf(String, Object), except that the default value is always written.
    • mapWithAlternative

      public static <T> com.mojang.serialization.MapCodec<T> mapWithAlternative(com.mojang.serialization.MapCodec<T> mapCodec, com.mojang.serialization.MapCodec<? extends T> alternative)
    • singularOrPluralCodec

      public static <T> com.mojang.serialization.MapCodec<Set<T>> singularOrPluralCodec(com.mojang.serialization.Codec<T> codec, String singularName)
    • singularOrPluralCodec

      public static <T> com.mojang.serialization.MapCodec<Set<T>> singularOrPluralCodec(com.mojang.serialization.Codec<T> codec, String singularName, String pluralName)
    • singularOrPluralCodecNotEmpty

      public static <T> com.mojang.serialization.MapCodec<Set<T>> singularOrPluralCodecNotEmpty(com.mojang.serialization.Codec<T> codec, String singularName)
    • singularOrPluralCodecNotEmpty

      public static <T> com.mojang.serialization.MapCodec<Set<T>> singularOrPluralCodecNotEmpty(com.mojang.serialization.Codec<T> codec, String singularName, String pluralName)
    • 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.

      另请参阅:
    • 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.

    • dispatchMapOrElse

      public static <A, E, B> com.mojang.serialization.MapCodec<com.mojang.datafixers.util.Either<E,B>> dispatchMapOrElse(com.mojang.serialization.Codec<A> typeCodec, Function<? super E,? extends A> type, Function<? super A,? extends com.mojang.serialization.MapCodec<? extends E>> codec, com.mojang.serialization.MapCodec<B> fallbackCodec)
      Map dispatch codec with an alternative.

      The alternative will only be used if there is no "type" key in the serialized object.

      类型参数:
      A - dispatch type
      E - dispatched type
      B - fallback type
      参数:
      typeCodec - codec for the dispatch type
      type - function to retrieve the dispatch type from the dispatched type
      codec - function to retrieve the dispatched type map codec from the dispatch type
      fallbackCodec - fallback to use when the deserialized object does not have a "type" key
    • dispatchMapOrElse

      public static <A, E, B> com.mojang.serialization.MapCodec<com.mojang.datafixers.util.Either<E,B>> dispatchMapOrElse(String key, com.mojang.serialization.Codec<A> typeCodec, Function<? super E,? extends A> type, Function<? super A,? extends com.mojang.serialization.MapCodec<? extends E>> codec, com.mojang.serialization.MapCodec<B> fallbackCodec)
      Map dispatch codec with an alternative.

      The alternative will only be used if the provided key is not present in the serialized object.

      类型参数:
      A - dispatch type
      E - dispatched type
      B - fallback type
      参数:
      key - key to dispatch on
      typeCodec - codec for the dispatch type
      type - function to retrieve the dispatch type from the dispatched type
      codec - function to retrieve the dispatched type map codec from the dispatch type
      fallbackCodec - fallback to use when the deserialized object does not have a "type" key
    • xor

      public static <F, S> com.mojang.serialization.MapCodec<com.mojang.datafixers.util.Either<F,S>> xor(com.mojang.serialization.MapCodec<F> first, com.mojang.serialization.MapCodec<S> second)
      Codec that matches exactly one out of two map codecs. Same as Codec.xor(com.mojang.serialization.Codec<F>, com.mojang.serialization.Codec<S>) but for MapCodecs.
    • unboundedMapAsList

      public static <K, V> com.mojang.serialization.Codec<Map<K,V>> unboundedMapAsList(String keyName, com.mojang.serialization.Codec<K> keyCodec, String elementName, com.mojang.serialization.Codec<V> elementCodec)
      Creates a codec for an unbounded map whose underlying representation is a list of maps, with the given names for each key-element entry. Each key-element entry is encoded as a map with the given key and element names respectively.

      This is useful for maps where the key does not encode to a string, which causes errors when trying to serialize to a format that requires maps to have string keys (such as JSON and NBT).

      类型参数:
      K - the key type
      V - the element type
      参数:
      keyName - the name of the key in the encoded map for each key-element entry
      keyCodec - codec for the key
      elementName - the name of the element in the encoded map for each key-element entry
      elementCodec - codec for the element
      返回:
      a codec for an unbounded map