Class NbtOps

java.lang.Object
net.minecraft.nbt.NbtOps
All Implemented Interfaces:
com.mojang.serialization.DynamicOps<NbtElement>

public class NbtOps
extends Object
implements com.mojang.serialization.DynamicOps<NbtElement>
Used to handle Minecraft NBTs within dynamics for DataFixerUpper, allowing generalized serialization logic shared across different type of data structures. Use INSTANCE for the ops singleton.

For instance, dimension data may be stored as JSON in data packs, but they will be transported in packets as NBT. DataFixerUpper allows generalizing the dimension serialization logic to prevent duplicate code, where the NBT ops allow the DataFixerUpper dimension serialization logic to interact with Minecraft NBTs.

See Also:
INSTANCE
  • Field Details

    • INSTANCE

      public static final NbtOps INSTANCE
      An singleton of the NBT dynamic ops.

      This ops does not compress maps (replace field name to value pairs with an ordered list of values in serialization). In fact, since Minecraft NBT lists can only contain elements of the same type, this op cannot compress maps.

  • Constructor Details

    • NbtOps

      protected NbtOps()
  • Method Details

    • empty

      public NbtElement empty()
      Specified by:
      empty in interface com.mojang.serialization.DynamicOps<NbtElement>
    • convertTo

      public <U> U convertTo​(com.mojang.serialization.DynamicOps<U> dynamicOps, NbtElement nbtElement)
      Specified by:
      convertTo in interface com.mojang.serialization.DynamicOps<NbtElement>
    • getNumberValue

      public com.mojang.serialization.DataResult<Number> getNumberValue​(NbtElement nbtElement)
      Specified by:
      getNumberValue in interface com.mojang.serialization.DynamicOps<NbtElement>
    • createNumeric

      public NbtElement createNumeric​(Number number)
      Specified by:
      createNumeric in interface com.mojang.serialization.DynamicOps<NbtElement>
    • createByte

      public NbtElement createByte​(byte byte2)
      Specified by:
      createByte in interface com.mojang.serialization.DynamicOps<NbtElement>
    • createShort

      public NbtElement createShort​(short short2)
      Specified by:
      createShort in interface com.mojang.serialization.DynamicOps<NbtElement>
    • createInt

      public NbtElement createInt​(int int2)
      Specified by:
      createInt in interface com.mojang.serialization.DynamicOps<NbtElement>
    • createLong

      public NbtElement createLong​(long long2)
      Specified by:
      createLong in interface com.mojang.serialization.DynamicOps<NbtElement>
    • createFloat

      public NbtElement createFloat​(float float2)
      Specified by:
      createFloat in interface com.mojang.serialization.DynamicOps<NbtElement>
    • createDouble

      public NbtElement createDouble​(double double2)
      Specified by:
      createDouble in interface com.mojang.serialization.DynamicOps<NbtElement>
    • createBoolean

      public NbtElement createBoolean​(boolean bool)
      Specified by:
      createBoolean in interface com.mojang.serialization.DynamicOps<NbtElement>
    • getStringValue

      public com.mojang.serialization.DataResult<String> getStringValue​(NbtElement nbtElement)
      Specified by:
      getStringValue in interface com.mojang.serialization.DynamicOps<NbtElement>
    • createString

      public NbtElement createString​(String string)
      Specified by:
      createString in interface com.mojang.serialization.DynamicOps<NbtElement>
    • method_29144

      private static AbstractNbtList<?> method_29144​(byte byte2, byte byte3)
    • method_29145

      private static boolean method_29145​(byte byte2, byte byte3, byte byte4)
    • method_29151

      private static <T extends NbtElement> void method_29151​(AbstractNbtList<T> abstractNbtList, NbtElement nbtElement, NbtElement nbtElement2)
    • method_29150

      private static <T extends NbtElement> void method_29150​(AbstractNbtList<T> abstractNbtList, NbtElement nbtElement, List<NbtElement> list)
    • mergeToList

      public com.mojang.serialization.DataResult<NbtElement> mergeToList​(NbtElement nbtElement, NbtElement nbtElement2)
      Specified by:
      mergeToList in interface com.mojang.serialization.DynamicOps<NbtElement>
    • mergeToList

      public com.mojang.serialization.DataResult<NbtElement> mergeToList​(NbtElement nbtElement, List<NbtElement> list)
      Specified by:
      mergeToList in interface com.mojang.serialization.DynamicOps<NbtElement>
    • mergeToMap

      public com.mojang.serialization.DataResult<NbtElement> mergeToMap​(NbtElement nbtElement, NbtElement nbtElement2, NbtElement nbtElement3)
      Specified by:
      mergeToMap in interface com.mojang.serialization.DynamicOps<NbtElement>
    • mergeToMap

      public com.mojang.serialization.DataResult<NbtElement> mergeToMap​(NbtElement nbtElement, com.mojang.serialization.MapLike<NbtElement> mapLike)
      Specified by:
      mergeToMap in interface com.mojang.serialization.DynamicOps<NbtElement>
    • getMapValues

      public com.mojang.serialization.DataResult<Stream<com.mojang.datafixers.util.Pair<NbtElement,​NbtElement>>> getMapValues​(NbtElement nbtElement)
      Specified by:
      getMapValues in interface com.mojang.serialization.DynamicOps<NbtElement>
    • getMapEntries

      public com.mojang.serialization.DataResult<Consumer<BiConsumer<NbtElement,​NbtElement>>> getMapEntries​(NbtElement nbtElement)
      Specified by:
      getMapEntries in interface com.mojang.serialization.DynamicOps<NbtElement>
    • getMap

      public com.mojang.serialization.DataResult<com.mojang.serialization.MapLike<NbtElement>> getMap​(NbtElement nbtElement)
      Specified by:
      getMap in interface com.mojang.serialization.DynamicOps<NbtElement>
    • createMap

      public NbtElement createMap​(Stream<com.mojang.datafixers.util.Pair<NbtElement,​NbtElement>> stream)
      Specified by:
      createMap in interface com.mojang.serialization.DynamicOps<NbtElement>
    • getStream

      public com.mojang.serialization.DataResult<Stream<NbtElement>> getStream​(NbtElement nbtElement)
      Specified by:
      getStream in interface com.mojang.serialization.DynamicOps<NbtElement>
    • getList

      public com.mojang.serialization.DataResult<Consumer<Consumer<NbtElement>>> getList​(NbtElement nbtElement)
      Specified by:
      getList in interface com.mojang.serialization.DynamicOps<NbtElement>
    • getByteBuffer

      public com.mojang.serialization.DataResult<ByteBuffer> getByteBuffer​(NbtElement nbtElement)
      Specified by:
      getByteBuffer in interface com.mojang.serialization.DynamicOps<NbtElement>
    • createByteList

      public NbtElement createByteList​(ByteBuffer byteBuffer)
      Specified by:
      createByteList in interface com.mojang.serialization.DynamicOps<NbtElement>
    • getIntStream

      public com.mojang.serialization.DataResult<IntStream> getIntStream​(NbtElement nbtElement)
      Specified by:
      getIntStream in interface com.mojang.serialization.DynamicOps<NbtElement>
    • createIntList

      public NbtElement createIntList​(IntStream intStream)
      Specified by:
      createIntList in interface com.mojang.serialization.DynamicOps<NbtElement>
    • getLongStream

      public com.mojang.serialization.DataResult<LongStream> getLongStream​(NbtElement nbtElement)
      Specified by:
      getLongStream in interface com.mojang.serialization.DynamicOps<NbtElement>
    • createLongList

      public NbtElement createLongList​(LongStream longStream)
      Specified by:
      createLongList in interface com.mojang.serialization.DynamicOps<NbtElement>
    • createList

      public NbtElement createList​(Stream<NbtElement> stream)
      Specified by:
      createList in interface com.mojang.serialization.DynamicOps<NbtElement>
    • remove

      public NbtElement remove​(NbtElement nbtElement, String string)
      Specified by:
      remove in interface com.mojang.serialization.DynamicOps<NbtElement>
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • mapBuilder

      public com.mojang.serialization.RecordBuilder<NbtElement> mapBuilder()
      Specified by:
      mapBuilder in interface com.mojang.serialization.DynamicOps<NbtElement>