Add the ability to read arbitrary objects.
Perhaps NbtBase shouldn't have implemented getValue() after all - it would have been better to have a shared base interface with getName() and getType(), and only let the primitive elements implement getValue(). Too late to change it now though.
Dieser Commit ist enthalten in:
Ursprung
61ae40b936
Commit
bf443be0d3
@ -262,7 +262,8 @@ public interface NbtCompound extends NbtBase<Map<String, NbtBase<?>>>, Iterable<
|
|||||||
/**
|
/**
|
||||||
* Associates a given Java primitive value, list, map or NbtBase<?> with a certain key.
|
* Associates a given Java primitive value, list, map or NbtBase<?> with a certain key.
|
||||||
* <p>
|
* <p>
|
||||||
* If the value is NULL, the corresponding key is removed.
|
* If the value is NULL, the corresponding key is removed. Any Map or List will be converted
|
||||||
|
* to a corresponding NbtCompound or NbtList.
|
||||||
*
|
*
|
||||||
* @param key - the name of the new entry,
|
* @param key - the name of the new entry,
|
||||||
* @param value - the value of the new entry, or NULL to remove the current value.
|
* @param value - the value of the new entry, or NULL to remove the current value.
|
||||||
@ -270,6 +271,13 @@ public interface NbtCompound extends NbtBase<Map<String, NbtBase<?>>>, Iterable<
|
|||||||
*/
|
*/
|
||||||
public abstract NbtCompound putObject(String key, Object value);
|
public abstract NbtCompound putObject(String key, Object value);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieve the primitive object, NbtList or NbtCompound associated with the given key.
|
||||||
|
* @param key - the key of the object to find.
|
||||||
|
* @return The object with this key, or NULL if we couldn't find anything.
|
||||||
|
*/
|
||||||
|
public abstract Object getObject(String key);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieve the compound (map) value of an entry identified by a given key.
|
* Retrieve the compound (map) value of an entry identified by a given key.
|
||||||
* @param key - the key of the entry.
|
* @param key - the key of the entry.
|
||||||
|
@ -274,6 +274,16 @@ class WrappedCompound implements NbtWrapper<Map<String, NbtBase<?>>>, Iterable<N
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object getObject(String key) {
|
||||||
|
NbtBase<?> base = getValue(key);
|
||||||
|
|
||||||
|
if (base != null && base.getType() != NbtType.TAG_LIST && base.getType() != NbtType.TAG_COMPOUND)
|
||||||
|
return base.getValue();
|
||||||
|
else
|
||||||
|
return base;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieve the byte value of an entry identified by a given key.
|
* Retrieve the byte value of an entry identified by a given key.
|
||||||
* @param key - the key of the entry.
|
* @param key - the key of the entry.
|
||||||
|
In neuem Issue referenzieren
Einen Benutzer sperren