11package beer .devs .fastnbt .nms .nbt .impl ;
22
33import beer .devs .fastnbt .nms .nbt .ICompoundTag ;
4- import beer .devs .fastnbt .nms .nbt .NBTType ;
54import com .mojang .brigadier .StringReader ;
65import com .mojang .brigadier .exceptions .CommandSyntaxException ;
76import net .minecraft .commands .Commands ;
87import net .minecraft .commands .arguments .item .ItemParser ;
9- import net .minecraft .nbt .CompoundTag ;
10- import net .minecraft .nbt .ListTag ;
11- import net .minecraft .nbt .NbtUtils ;
12- import net .minecraft .nbt .Tag ;
8+ import net .minecraft .nbt .*;
139import net .minecraft .server .MinecraftServer ;
1410import org .jetbrains .annotations .Nullable ;
1511
@@ -53,7 +49,7 @@ public void setLong(CompoundTag handle, String key, long param)
5349 @ Override
5450 public void setUUID (CompoundTag handle , String key , UUID param )
5551 {
56- handle .putUUID (key , param );
52+ NBTUtilsModern_v1_21_5 .putUUID (handle , key , param );
5753 }
5854
5955 @ Override
@@ -89,7 +85,7 @@ public void setIntArray(CompoundTag handle, String key, int[] param)
8985 @ Override
9086 public void setIntegerList (CompoundTag handle , String key , List <Integer > param )
9187 {
92- handle .putIntArray (key , param );
88+ handle .putIntArray (key , param . stream (). mapToInt ( Integer :: intValue ). toArray () );
9389 }
9490
9591 @ Override
@@ -101,7 +97,7 @@ public void setLongArray(CompoundTag handle, String key, long[] param)
10197 @ Override
10298 public void setLongList (CompoundTag handle , String key , List <Long > param )
10399 {
104- handle .putLongArray (key , param );
100+ handle .putLongArray (key , param . stream (). mapToLong ( Long :: longValue ). toArray () );
105101 }
106102
107103 @ Override
@@ -123,119 +119,104 @@ public boolean hasUUID(CompoundTag handle, String key)
123119 {
124120 if (handle == null )
125121 return false ;
126- return handle .hasUUID (key );
122+ Tag tag = handle .get (key );
123+ return tag != null && tag .getType () == IntArrayTag .TYPE ;
127124 }
128125
129126 @ Override
130127 public UUID getUUID (CompoundTag handle , String key )
131128 {
132- if (!handle .contains (key , NBTType .IntArray .id ) && handle .contains (key + "Most" , NBTType .AnyNumeric .id ) && handle .contains (key + "Least" , NBTType .AnyNumeric .id ))
133- return new UUID (handle .getLong (key + "Most" ), handle .getLong (key + "Least" ));
134-
135- Tag tag = handle .get (key );
136- if (tag == null )
137- return null ;
138- return NbtUtils .loadUUID (tag );
129+ return NBTUtilsModern_v1_21_5 .getUUID (handle , key );
139130 }
140131
141132 @ Override
142133 public byte getByte (CompoundTag handle , String key )
143134 {
144- return handle .getByte (key );
135+ return handle .getByte (key ). orElse (( byte ) 0 ) ;
145136 }
146137
147138 @ Override
148139 public short getShort (CompoundTag handle , String key )
149140 {
150- return handle .getShort (key );
141+ return handle .getShort (key ). orElse (( short ) 0 ) ;
151142 }
152143
153144 @ Override
154145 public int getInt (CompoundTag handle , String key )
155146 {
156- return handle .getInt (key );
147+ return handle .getInt (key ). orElse ( 0 ) ;
157148 }
158149
159150 @ Override
160151 public long getLong (CompoundTag handle , String key )
161152 {
162- return handle .getLong (key );
153+ return handle .getLong (key ). orElse ( 0L ) ;
163154 }
164155
165156 @ Override
166157 public float getFloat (CompoundTag handle , String key )
167158 {
168- return handle .getFloat (key );
159+ return handle .getFloat (key ). orElse ( 0.0f ) ;
169160 }
170161
171162 @ Override
172163 public double getDouble (CompoundTag handle , String key )
173164 {
174- return handle .getDouble (key );
165+ return handle .getDouble (key ). orElse ( 0.0 ) ;
175166 }
176167
177168 @ Override
178169 public String getString (CompoundTag handle , String key )
179170 {
180- if (!hasKey (handle , key ))
181- return null ;
182- return handle .getString (key );
171+ return handle .getString (key ).orElse (null );
183172 }
184173
185174 @ Override
186175 public byte @ Nullable [] getByteArray (CompoundTag handle , String key )
187176 {
188- if (!hasKey (handle , key ))
189- return null ;
190- return handle .getByteArray (key );
177+ return handle .getByteArray (key ).orElse (null );
191178 }
192179
193180 @ Override
194181 public int @ Nullable [] getIntArray (CompoundTag handle , String key )
195182 {
196- if (!hasKey (handle , key ))
197- return null ;
198- return handle .getIntArray (key );
183+ return handle .getIntArray (key ).orElse (null );
199184 }
200185
201186 @ Override
202187 public long @ Nullable [] getLongArray (CompoundTag handle , String key )
203188 {
204- if (!hasKey (handle , key ))
205- return null ;
206- return handle .getLongArray (key );
189+ return handle .getLongArray (key ).orElse (null );
207190 }
208191
209192 @ Override
210193 public CompoundTag getCompound (CompoundTag handle , String key )
211194 {
212- if (!handle .contains (key ))
213- return null ;
214- return handle .getCompound (key );
195+ return handle .getCompound (key ).orElse (null );
215196 }
216197
217198 @ Override
218199 public CompoundTag getOrAddCompound (CompoundTag handle , String key )
219200 {
220201 if (!handle .contains (key ))
221202 handle .put (key , new CompoundTag ());
222- return handle .getCompound (key );
203+ //noinspection OptionalGetWithoutIsPresent
204+ return handle .getCompound (key ).get (); // This cannot be null because we just added it
223205 }
224206
225207 @ Override
226208 public ListTag getList (CompoundTag handle , String key , int typeID )
227209 {
228- if (!handle .contains (key ))
229- return null ;
230- return handle .getList (key , typeID );
210+ return handle .getList (key ).orElse (null );
231211 }
232212
233213 @ Override
234214 public ListTag getOrAddList (CompoundTag handle , String key , int typeID )
235215 {
236216 if (!handle .contains (key ))
237217 handle .put (key , new ListTag ());
238- return handle .getList (key , typeID );
218+ //noinspection OptionalGetWithoutIsPresent
219+ return handle .getList (key ).get (); // This cannot be null because we just added it
239220 }
240221
241222 @ Override
@@ -247,13 +228,13 @@ public void putTag(CompoundTag handle, String key, Object value)
247228 @ Override
248229 public boolean getBoolean (CompoundTag handle , String key )
249230 {
250- return handle .getBoolean (key );
231+ return handle .getBoolean (key ). orElse ( false ) ;
251232 }
252233
253234 @ Override
254235 public Set <String > getKeys (CompoundTag handle )
255236 {
256- return handle .getAllKeys ();
237+ return handle .keySet ();
257238 }
258239
259240 @ Override
0 commit comments