CLASS net/minecraft/class_2487 net/minecraft/nbt/NbtCompound COMMENT Represents an NBT compound object. This mutable object holds unordered key-value pairs COMMENT with distinct case-sensitive string keys. This can effectively be used like a COMMENT {@code HashMap}. Note that this does not implement COMMENT {@link java.util.Map}. Its type is {@value NbtElement#COMPOUND_TYPE}. To get the compound COMMENT as a map, use {@link #toMap()}. COMMENT COMMENT

There are two ways to use this compound; one is to create NBT instances yourself and use COMMENT {@link #get(String)} or {@link #put(String, NbtElement)}. Manual casting is required in COMMENT this case. The other, easier way is to use methods with type names, such as COMMENT {@link #getInt(String)} or {@link #putInt(String, int)}. Where applicable, these methods COMMENT return and accept Java types (e.g. {@code int}, {@code long[]}) instead of {@link NbtElement} COMMENT subclasses. Note that there is no {@code putCompound} method, since you can just use the COMMENT put method. These getters also have the advantage of providing type safety, because if COMMENT type mismatch occurs or there is no such element in the compound, it returns the default COMMENT value for that type instead of throwing or returning {@code null}. FIELD field_11515 entries Ljava/util/Map; FIELD field_21029 TYPE Lnet/minecraft/class_4614; FIELD field_25128 CODEC Lcom/mojang/serialization/Codec; FIELD field_33190 SIZE I METHOD (Ljava/util/Map;)V ARG 1 entries METHOD equals (Ljava/lang/Object;)Z ARG 1 o METHOD method_10537 getLong (Ljava/lang/String;)J COMMENT {@return the {@code long} associated with {@code key}, or {@code 0L} if there is no number COMMENT stored with the key} COMMENT COMMENT

If a non-long numeric value is stored, this will cast the value. COMMENT COMMENT @see #putLong(String, long) COMMENT @see AbstractNbtNumber#longValue() ARG 1 key METHOD method_10538 putLongArray (Ljava/lang/String;Ljava/util/List;)V COMMENT Puts a list of longs to this compound. This copies the list. COMMENT COMMENT @see #getLongArray(String) COMMENT @see #putLongArray(String, long[]) ARG 1 key ARG 2 value METHOD method_10539 putIntArray (Ljava/lang/String;[I)V COMMENT Puts an int array to this compound. This does not copy the array. COMMENT COMMENT @see #getIntArray(String) COMMENT @see #putIntArray(String, List) ARG 1 key ARG 2 value METHOD method_10540 getType (Ljava/lang/String;)B COMMENT Gets the {@linkplain NbtElement#getType NBT type} of the element stored at the specified key. COMMENT COMMENT @return the element NBT type, or {@link NbtElement#END_TYPE} if it does not exist ARG 1 key METHOD method_10541 getKeys ()Ljava/util/Set; COMMENT {@return the set of keys in this compound} METHOD method_10542 readByte (Ljava/io/DataInput;Lnet/minecraft/class_2505;)B ARG 0 input ARG 1 tracker METHOD method_10543 copyFrom (Lnet/minecraft/class_2487;)Lnet/minecraft/class_2487; COMMENT Merges the entries of {@code source} to this compound. The passed compound will not COMMENT be modified. If both compounds contain a compound with the same key, they will be COMMENT merged; otherwise the values of this compound will be overwritten. COMMENT COMMENT @return this compound with entries merged ARG 1 source METHOD method_10544 putLong (Ljava/lang/String;J)V COMMENT Puts a {@code long} to this compound. COMMENT COMMENT @see #getLong(String) ARG 1 key ARG 2 value METHOD method_10545 contains (Ljava/lang/String;)Z COMMENT Determines whether the NBT compound object contains the specified key. COMMENT COMMENT @return {@code true} if the key exists, else {@code false} ARG 1 key METHOD method_10546 getSize ()I COMMENT {@return the size of this compound} METHOD method_10547 getByteArray (Ljava/lang/String;)[B COMMENT {@return the byte array associated with {@code key}, or an empty byte array if there is no COMMENT byte array stored with the key} COMMENT COMMENT @apiNote Modifying the returned array also modifies the NBT byte array. COMMENT COMMENT @see #putByteArray(String, byte[]) COMMENT @see NbtByteArray#getByteArray() ARG 1 key METHOD method_10548 putFloat (Ljava/lang/String;F)V COMMENT Puts a {@code float} to this compound. COMMENT COMMENT @see #getFloat(String) ARG 1 key ARG 2 value METHOD method_10549 putDouble (Ljava/lang/String;D)V COMMENT Puts a {@code double} to this compound. COMMENT COMMENT @see #getDouble(String) ARG 1 key ARG 2 value METHOD method_10550 getInt (Ljava/lang/String;)I COMMENT {@return the {@code int} associated with {@code key}, or {@code 0} if there is no number COMMENT stored with the key} COMMENT COMMENT

If a non-integer numeric value is stored, this will cast the value. COMMENT COMMENT @see #putInt(String, int) COMMENT @see AbstractNbtNumber#intValue() ARG 1 key METHOD method_10551 remove (Ljava/lang/String;)V COMMENT Removes the entry with the specified {@code key}. Does nothing if there is none. ARG 1 key METHOD method_10552 readString (Ljava/io/DataInput;Lnet/minecraft/class_2505;)Ljava/lang/String; ARG 0 input ARG 1 tracker METHOD method_10554 getList (Ljava/lang/String;I)Lnet/minecraft/class_2499; COMMENT {@return the list associated with {@code key}, or an empty list if there is no COMMENT list stored with the key and the type} COMMENT COMMENT @see #put(String, NbtElement) ARG 1 key ARG 2 type COMMENT the expected held type of the list METHOD method_10555 write (Ljava/lang/String;Lnet/minecraft/class_2520;Ljava/io/DataOutput;)V ARG 0 key ARG 1 element ARG 2 output METHOD method_10556 putBoolean (Ljava/lang/String;Z)V COMMENT Puts a {@code boolean} to this compound. The value is stored as {@link NbtByte}. COMMENT COMMENT @see #getBoolean(String) ARG 1 key ARG 2 value METHOD method_10558 getString (Ljava/lang/String;)Ljava/lang/String; COMMENT {@return the {@link String} associated with {@code key}, or an empty string if there is no COMMENT string stored with the key} COMMENT COMMENT @see #putString(String, String) COMMENT @see NbtElement#asString() ARG 1 key METHOD method_10559 createCrashReport (Ljava/lang/String;Lnet/minecraft/class_4614;Ljava/lang/ClassCastException;)Lnet/minecraft/class_128; ARG 1 key ARG 2 reader ARG 3 exception METHOD method_10561 getIntArray (Ljava/lang/String;)[I COMMENT {@return the int array associated with {@code key}, or an empty int array if there is no COMMENT int array stored with the key} COMMENT COMMENT @apiNote Modifying the returned array also modifies the NBT int array. COMMENT COMMENT @see #putIntArray(String, int[]) COMMENT @see NbtIntArray#getIntArray() ARG 1 key METHOD method_10562 getCompound (Ljava/lang/String;)Lnet/minecraft/class_2487; COMMENT {@return the compound associated with {@code key}, or an empty compound if there is no COMMENT compound stored with the key} COMMENT COMMENT @see #put(String, NbtElement) ARG 1 key METHOD method_10564 putLongArray (Ljava/lang/String;[J)V COMMENT Puts a long array to this compound. This does not copy the array. COMMENT COMMENT @see #getLongArray(String) COMMENT @see #putLongArray(String, List) ARG 1 key ARG 2 value METHOD method_10565 getLongArray (Ljava/lang/String;)[J COMMENT {@return the long array associated with {@code key}, or an empty long array if there is no COMMENT long array stored with the key} COMMENT COMMENT @apiNote Modifying the returned array also modifies the NBT long array. COMMENT COMMENT @see #putLongArray(String, long[]) COMMENT @see NbtLongArray#getLongArray() ARG 1 key METHOD method_10566 put (Ljava/lang/String;Lnet/minecraft/class_2520;)Lnet/minecraft/class_2520; COMMENT Puts an element to this compound. COMMENT COMMENT @return the previous value, or {@code null} if there was none COMMENT @see #get(String) ARG 1 key ARG 2 element METHOD method_10567 putByte (Ljava/lang/String;B)V COMMENT Puts a {@code byte} to this compound. COMMENT COMMENT @see #getByte(String) ARG 1 key ARG 2 value METHOD method_10568 getShort (Ljava/lang/String;)S COMMENT {@return the {@code short} associated with {@code key}, or {@code 0} if there is no number COMMENT stored with the key} COMMENT COMMENT

If a non-short numeric value is stored, this will cast the value. COMMENT COMMENT @see #putShort(String, short) COMMENT @see AbstractNbtNumber#shortValue() ARG 1 key METHOD method_10569 putInt (Ljava/lang/String;I)V COMMENT Puts an {@code int} to this compound. COMMENT COMMENT @see #getInt(String) ARG 1 key ARG 2 value METHOD method_10570 putByteArray (Ljava/lang/String;[B)V COMMENT Puts a byte array to this compound. This does not copy the array. COMMENT COMMENT @see #getByteArray(String) COMMENT @see #putByteArray(String, List) ARG 1 key ARG 2 value METHOD method_10571 getByte (Ljava/lang/String;)B COMMENT {@return the {@code byte} associated with {@code key}, or {@code 0} if there is no number COMMENT stored with the key} COMMENT COMMENT

If a non-byte numeric value is stored, this will cast the value. COMMENT COMMENT @see #putByte(String, byte) COMMENT @see AbstractNbtNumber#byteValue() ARG 1 key METHOD method_10572 putIntArray (Ljava/lang/String;Ljava/util/List;)V COMMENT Puts a list of integers to this compound. This copies the list. COMMENT COMMENT @see #getIntArray(String) COMMENT @see #putIntArray(String, int[]) ARG 1 key ARG 2 value METHOD method_10573 contains (Ljava/lang/String;I)Z COMMENT Returns whether the NBT compound object contains an element of the specified type at the specified key. COMMENT

COMMENT The type restriction can also be {@link NbtElement#NUMBER_TYPE NUMBER_TYPE}, which only allows any type of number. COMMENT COMMENT @return {@code true} if the key exists and the element type is equivalent to the given {@code type}, else {@code false} ARG 1 key ARG 2 type METHOD method_10574 getDouble (Ljava/lang/String;)D COMMENT {@return the {@code double} associated with {@code key}, or {@code 0.0} if there is COMMENT no number stored with the key} COMMENT COMMENT

If a non-double numeric value is stored, this will cast the value. COMMENT COMMENT @see #putDouble(String, double) COMMENT @see AbstractNbtNumber#doubleValue() ARG 1 key METHOD method_10575 putShort (Ljava/lang/String;S)V COMMENT Puts a {@code short} to this compound. COMMENT COMMENT @see #getShort(String) ARG 1 key ARG 2 value METHOD method_10577 getBoolean (Ljava/lang/String;)Z COMMENT {@return the boolean value stored with the {@code key}} COMMENT COMMENT @implNote Since NBT does not have a boolean type, {@link NbtByte} is used instead. This COMMENT method returns {@code true} for any values which, after casting to {@code byte} as COMMENT described at {@link #getByte(String)}, is not {@code 0}. Since all non-numeric values COMMENT become {@code 0} during casting to bytes, this method returns {@code false} for those COMMENT as well. This includes values often considered truthy in other languages, such as a COMMENT non-empty string or list. ARG 1 key METHOD method_10580 get (Ljava/lang/String;)Lnet/minecraft/class_2520; COMMENT {@return the element associated with the key from this compound, or COMMENT {@code null} if there is none} COMMENT COMMENT @apiNote This method does not provide type safety; if the type is known, it is COMMENT recommended to use other type-specific methods instead. COMMENT COMMENT @see #put(String, NbtElement) ARG 1 key METHOD method_10581 read (Lnet/minecraft/class_4614;Ljava/lang/String;Ljava/io/DataInput;ILnet/minecraft/class_2505;)Lnet/minecraft/class_2520; ARG 0 reader ARG 1 key ARG 2 input ARG 3 depth ARG 4 tracker METHOD method_10582 putString (Ljava/lang/String;Ljava/lang/String;)V COMMENT Puts a {@link String} to this compound. COMMENT COMMENT @see #getString(String) ARG 1 key ARG 2 value METHOD method_10583 getFloat (Ljava/lang/String;)F COMMENT {@return the {@code float} associated with {@code key}, or {@code 0.0f} if there is COMMENT no number stored with the key} COMMENT COMMENT

If a non-float numeric value is stored, this will cast the value. COMMENT COMMENT @see #putFloat(String, float) COMMENT @see AbstractNbtNumber#floatValue() ARG 1 key METHOD method_25926 getUuid (Ljava/lang/String;)Ljava/util/UUID; COMMENT {@return a {@link UUID} from its NBT representation in this compound} COMMENT COMMENT @apiNote Unlike other specialized getters, this method can throw unchecked exceptions. COMMENT It is therefore recommended to call {@link #containsUuid(String)} before getting the COMMENT UUID. COMMENT COMMENT @throws IllegalArgumentException if there is no value with the key or the value COMMENT associated with the key is not a valid COMMENT NBT representation of a UUID COMMENT @see NbtHelper#toUuid(NbtIntArray) COMMENT @see #containsUuid(String) COMMENT @see #putUuid(String, UUID) ARG 1 key METHOD method_25927 putUuid (Ljava/lang/String;Ljava/util/UUID;)V COMMENT Puts a {@link UUID}'s NBT representation to this compound. COMMENT COMMENT @see NbtHelper#fromUuid(UUID) COMMENT @see #containsUuid(String) COMMENT @see #getUuid(String) ARG 1 key ARG 2 value METHOD method_25928 containsUuid (Ljava/lang/String;)Z COMMENT Returns {@code true} if this {@code NbtCompound} contains a valid UUID representation associated with the given key. COMMENT A valid UUID is represented by an int array of length 4. ARG 1 key METHOD method_29142 (Lnet/minecraft/class_2487;)Lcom/mojang/serialization/Dynamic; ARG 0 nbt METHOD method_29143 toMap ()Ljava/util/Map; COMMENT {@return the compound as an unmodifiable map} COMMENT COMMENT

Changes to this compound will be propagated to the returned map. METHOD method_33133 isEmpty ()Z COMMENT {@return whether the compound has no entries} METHOD method_36110 putByteArray (Ljava/lang/String;Ljava/util/List;)V COMMENT Puts a list of bytes to this compound. This copies the list. COMMENT COMMENT @see #getByteArray(String) COMMENT @see #putByteArray(String, byte[]) ARG 1 key ARG 2 value