Tag.java

net.minecraft.nbt.Tag

信息

  • 全限定名:net.minecraft.nbt.Tag
  • 类型:public sealed interface
  • 包:net.minecraft.nbt
  • 源码路径:src/main/java/net/minecraft/nbt/Tag.java
  • 起始行号:L7
  • 职责:

    TODO

字段/常量

  • OBJECT_HEADER

    • 类型: int
    • 修饰符: package-private
    • 源码定位: L8
    • 说明:

      TODO

  • ARRAY_HEADER

    • 类型: int
    • 修饰符: package-private
    • 源码定位: L9
    • 说明:

      TODO

  • OBJECT_REFERENCE

    • 类型: int
    • 修饰符: package-private
    • 源码定位: L10
    • 说明:

      TODO

  • STRING_SIZE

    • 类型: int
    • 修饰符: package-private
    • 源码定位: L11
    • 说明:

      TODO

  • TAG_END

    • 类型: byte
    • 修饰符: package-private
    • 源码定位: L12
    • 说明:

      TODO

  • TAG_BYTE

    • 类型: byte
    • 修饰符: package-private
    • 源码定位: L13
    • 说明:

      TODO

  • TAG_SHORT

    • 类型: byte
    • 修饰符: package-private
    • 源码定位: L14
    • 说明:

      TODO

  • TAG_INT

    • 类型: byte
    • 修饰符: package-private
    • 源码定位: L15
    • 说明:

      TODO

  • TAG_LONG

    • 类型: byte
    • 修饰符: package-private
    • 源码定位: L16
    • 说明:

      TODO

  • TAG_FLOAT

    • 类型: byte
    • 修饰符: package-private
    • 源码定位: L17
    • 说明:

      TODO

  • TAG_DOUBLE

    • 类型: byte
    • 修饰符: package-private
    • 源码定位: L18
    • 说明:

      TODO

  • TAG_BYTE_ARRAY

    • 类型: byte
    • 修饰符: package-private
    • 源码定位: L19
    • 说明:

      TODO

  • TAG_STRING

    • 类型: byte
    • 修饰符: package-private
    • 源码定位: L20
    • 说明:

      TODO

  • TAG_LIST

    • 类型: byte
    • 修饰符: package-private
    • 源码定位: L21
    • 说明:

      TODO

  • TAG_COMPOUND

    • 类型: byte
    • 修饰符: package-private
    • 源码定位: L22
    • 说明:

      TODO

  • TAG_INT_ARRAY

    • 类型: byte
    • 修饰符: package-private
    • 源码定位: L23
    • 说明:

      TODO

  • TAG_LONG_ARRAY

    • 类型: byte
    • 修饰符: package-private
    • 源码定位: L24
    • 说明:

      TODO

  • MAX_DEPTH

    • 类型: int
    • 修饰符: package-private
    • 源码定位: L25
    • 说明:

      TODO

内部类/嵌套类型

构造器

方法

下面的方法块按源码顺序生成。

void write(DataOutput output) @ L27

  • 方法名:write
  • 源码定位:L27
  • 返回类型:void
  • 修饰符:package-private

参数:

  • output: DataOutput

说明:

TODO

String toString() @ L29

  • 方法名:toString
  • 源码定位:L29
  • 返回类型:String
  • 修饰符:package-private

参数:

说明:

TODO

byte getId() @ L32

  • 方法名:getId
  • 源码定位:L32
  • 返回类型:byte
  • 修饰符:package-private

参数:

说明:

TODO

TagType<?> getType() @ L34

  • 方法名:getType
  • 源码定位:L34
  • 返回类型:TagType<?>
  • 修饰符:package-private

参数:

说明:

TODO

Tag copy() @ L36

  • 方法名:copy
  • 源码定位:L36
  • 返回类型:Tag
  • 修饰符:package-private

参数:

说明:

TODO

int sizeInBytes() @ L38

  • 方法名:sizeInBytes
  • 源码定位:L38
  • 返回类型:int
  • 修饰符:package-private

参数:

说明:

TODO

void accept(TagVisitor visitor) @ L40

  • 方法名:accept
  • 源码定位:L40
  • 返回类型:void
  • 修饰符:package-private

参数:

  • visitor: TagVisitor

说明:

TODO

StreamTagVisitor.ValueResult accept(StreamTagVisitor visitor) @ L42

  • 方法名:accept
  • 源码定位:L42
  • 返回类型:StreamTagVisitor.ValueResult
  • 修饰符:package-private

参数:

  • visitor: StreamTagVisitor

说明:

TODO

default void acceptAsRoot(StreamTagVisitor output) @ L44

  • 方法名:acceptAsRoot
  • 源码定位:L44
  • 返回类型:void
  • 修饰符:default

参数:

  • output: StreamTagVisitor

说明:

TODO

default Optional<String> asString() @ L51

  • 方法名:asString
  • 源码定位:L51
  • 返回类型:Optional
  • 修饰符:default

参数:

说明:

TODO

default Optional<Number> asNumber() @ L55

  • 方法名:asNumber
  • 源码定位:L55
  • 返回类型:Optional
  • 修饰符:default

参数:

说明:

TODO

default Optional<Byte> asByte() @ L59

  • 方法名:asByte
  • 源码定位:L59
  • 返回类型:Optional
  • 修饰符:default

参数:

说明:

TODO

default Optional<Short> asShort() @ L63

  • 方法名:asShort
  • 源码定位:L63
  • 返回类型:Optional
  • 修饰符:default

参数:

说明:

TODO

default Optional<Integer> asInt() @ L67

  • 方法名:asInt
  • 源码定位:L67
  • 返回类型:Optional
  • 修饰符:default

参数:

说明:

TODO

default Optional<Long> asLong() @ L71

  • 方法名:asLong
  • 源码定位:L71
  • 返回类型:Optional
  • 修饰符:default

参数:

说明:

TODO

default Optional<Float> asFloat() @ L75

  • 方法名:asFloat
  • 源码定位:L75
  • 返回类型:Optional
  • 修饰符:default

参数:

说明:

TODO

default Optional<Double> asDouble() @ L79

  • 方法名:asDouble
  • 源码定位:L79
  • 返回类型:Optional
  • 修饰符:default

参数:

说明:

TODO

default Optional<Boolean> asBoolean() @ L83

  • 方法名:asBoolean
  • 源码定位:L83
  • 返回类型:Optional
  • 修饰符:default

参数:

说明:

TODO

default Optional<byte[]> asByteArray() @ L87

  • 方法名:asByteArray
  • 源码定位:L87
  • 返回类型:Optional<byte[]>
  • 修饰符:default

参数:

说明:

TODO

default Optional<int[]> asIntArray() @ L91

  • 方法名:asIntArray
  • 源码定位:L91
  • 返回类型:Optional<int[]>
  • 修饰符:default

参数:

说明:

TODO

default Optional<long[]> asLongArray() @ L95

  • 方法名:asLongArray
  • 源码定位:L95
  • 返回类型:Optional<long[]>
  • 修饰符:default

参数:

说明:

TODO

default Optional<CompoundTag> asCompound() @ L99

  • 方法名:asCompound
  • 源码定位:L99
  • 返回类型:Optional
  • 修饰符:default

参数:

说明:

TODO

default Optional<ListTag> asList() @ L103

  • 方法名:asList
  • 源码定位:L103
  • 返回类型:Optional
  • 修饰符:default

参数:

说明:

TODO

代码

public sealed interface Tag permits CompoundTag, CollectionTag, PrimitiveTag, EndTag {
    int OBJECT_HEADER = 8;
    int ARRAY_HEADER = 12;
    int OBJECT_REFERENCE = 4;
    int STRING_SIZE = 28;
    byte TAG_END = 0;
    byte TAG_BYTE = 1;
    byte TAG_SHORT = 2;
    byte TAG_INT = 3;
    byte TAG_LONG = 4;
    byte TAG_FLOAT = 5;
    byte TAG_DOUBLE = 6;
    byte TAG_BYTE_ARRAY = 7;
    byte TAG_STRING = 8;
    byte TAG_LIST = 9;
    byte TAG_COMPOUND = 10;
    byte TAG_INT_ARRAY = 11;
    byte TAG_LONG_ARRAY = 12;
    int MAX_DEPTH = 512;
 
    void write(DataOutput output) throws IOException;
 
    @Override
    String toString();
 
    byte getId();
 
    TagType<?> getType();
 
    Tag copy();
 
    int sizeInBytes();
 
    void accept(TagVisitor visitor);
 
    StreamTagVisitor.ValueResult accept(StreamTagVisitor visitor);
 
    default void acceptAsRoot(StreamTagVisitor output) {
        StreamTagVisitor.ValueResult entryResult = output.visitRootEntry(this.getType());
        if (entryResult == StreamTagVisitor.ValueResult.CONTINUE) {
            this.accept(output);
        }
    }
 
    default Optional<String> asString() {
        return Optional.empty();
    }
 
    default Optional<Number> asNumber() {
        return Optional.empty();
    }
 
    default Optional<Byte> asByte() {
        return this.asNumber().map(Number::byteValue);
    }
 
    default Optional<Short> asShort() {
        return this.asNumber().map(Number::shortValue);
    }
 
    default Optional<Integer> asInt() {
        return this.asNumber().map(Number::intValue);
    }
 
    default Optional<Long> asLong() {
        return this.asNumber().map(Number::longValue);
    }
 
    default Optional<Float> asFloat() {
        return this.asNumber().map(Number::floatValue);
    }
 
    default Optional<Double> asDouble() {
        return this.asNumber().map(Number::doubleValue);
    }
 
    default Optional<Boolean> asBoolean() {
        return this.asByte().map(b -> b != 0);
    }
 
    default Optional<byte[]> asByteArray() {
        return Optional.empty();
    }
 
    default Optional<int[]> asIntArray() {
        return Optional.empty();
    }
 
    default Optional<long[]> asLongArray() {
        return Optional.empty();
    }
 
    default Optional<CompoundTag> asCompound() {
        return Optional.empty();
    }
 
    default Optional<ListTag> asList() {
        return Optional.empty();
    }
}

引用的其他类