@@ -46,7 +46,7 @@ public NbtCompound(string name, List<INbtTag> children) : this(name)
4646 public bool TryGetTag ( string name , [ MaybeNullWhen ( false ) ] out INbtTag tag ) => this . children . TryGetValue ( name , out tag ) ;
4747 public bool TryGetTag < T > ( string name , [ MaybeNullWhen ( false ) ] out T tag ) where T : INbtTag
4848 {
49- if ( this . children . TryGetValue ( name , out var childTag ) && childTag is T matchedTag )
49+ if ( this . TryGetTag ( name , out var childTag ) && childTag is T matchedTag )
5050 {
5151 tag = matchedTag ;
5252 return true ;
@@ -55,19 +55,19 @@ public bool TryGetTag<T>(string name, [MaybeNullWhen(false)] out T tag) where T
5555 tag = default ;
5656 return false ;
5757 }
58- public bool TryGetTagValue < TValue > ( string name , [ MaybeNullWhen ( false ) ] out TValue value )
58+
59+ public bool TryGetTagValue < TValue > ( string name , [ MaybeNullWhen ( false ) ] out TValue value )
5960 {
60- if ( this . GetTagValue < TValue > ( name ) is TValue tagValue )
61+ if ( this . TryGetTag < NbtTag < TValue > > ( name , out var tag ) )
6162 {
62- value = tagValue ;
63+ value = tag . Value ;
6364 return true ;
6465 }
6566
6667 value = default ;
6768 return false ;
6869 }
6970
70-
7171 public byte GetByte ( string name ) => this . GetTagValue < byte > ( name ) ;
7272
7373 public short GetShort ( string name ) => this . GetTagValue < short > ( name ) ;
@@ -149,11 +149,5 @@ public IEnumerator<KeyValuePair<string, INbtTag>> GetEnumerator() =>
149149
150150 IEnumerator IEnumerable . GetEnumerator ( ) => this . GetEnumerator ( ) ;
151151
152- private T ? GetTagValue < T > ( string name )
153- {
154- if ( this . TryGetTag ( name , out var tag ) && tag is NbtTag < T > actualTag )
155- return actualTag . Value ;
156-
157- throw new TagNotFoundException ( name ) ;
158- }
152+ private T ? GetTagValue < T > ( string name ) => this . TryGetTag ( name , out var tag ) && tag is NbtTag < T > actualTag ? actualTag . Value : throw new TagNotFoundException ( name ) ;
159153}
0 commit comments