1717
1818import org .glavo .nbt .MinecraftEdition ;
1919import org .glavo .nbt .NBTElement ;
20+ import org .glavo .nbt .NBTParent ;
21+ import org .glavo .nbt .chunk .Chunk ;
2022import org .glavo .nbt .internal .input .DataReader ;
2123import org .glavo .nbt .internal .input .InputContext ;
2224import org .glavo .nbt .internal .input .InputSource ;
@@ -78,7 +80,7 @@ public static CompoundTag readCompoundTag(InputStream inputStream, MinecraftEdit
7880 }
7981 }
8082
81- @ Nullable ParentTag <? > parent ;
83+ @ Nullable NBTParent <? extends Tag > parent ;
8284
8385 String name ;
8486 int index = -1 ;
@@ -105,8 +107,8 @@ public void setName(String name) throws IllegalStateException {
105107 return ;
106108 }
107109
108- if (parent != null ) {
109- parent .updateSubTagName (this , name );
110+ if (parent instanceof ParentTag <?> parentTag ) {
111+ parentTag .updateSubTagName (this , name );
110112 } else {
111113 this .name = name ;
112114 }
@@ -118,10 +120,15 @@ public int getIndex() {
118120 return index ;
119121 }
120122
123+ /// If the tag is a child of a [parent][NBTParent], returns the parent; otherwise, returns `null`.
124+ public @ Nullable NBTParent <?> getParent () {
125+ return parent ;
126+ }
127+
121128 /// If the tag is a child of a [parent tag][ParentTag], returns the parent tag; otherwise, returns `null`.
122129 @ Contract (pure = true )
123130 public @ Nullable ParentTag <?> getParentTag () {
124- return parent ;
131+ return parent instanceof ParentTag <?> parentTag ? parentTag : null ;
125132 }
126133
127134 public void writeTo (OutputStream outputStream ) throws IOException {
0 commit comments