#1002: Add Player Profile API
Slight changes may occur as this API is stabilized. This PR is based on work previously done by DerFrZocker in #938. By: blablubbabc <lukas@wirsindwir.de>
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
package org.bukkit.craftbukkit.configuration;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.NoSuchElementException;
|
||||
import java.util.UUID;
|
||||
import org.bukkit.configuration.serialization.ConfigurationSerializable;
|
||||
|
||||
/**
|
||||
* Utilities related to the serialization and deserialization of {@link ConfigurationSerializable}s.
|
||||
*/
|
||||
public final class ConfigSerializationUtil {
|
||||
|
||||
public static String getString(Map<?, ?> map, String key, boolean nullable) {
|
||||
return getObject(String.class, map, key, nullable);
|
||||
}
|
||||
|
||||
public static UUID getUuid(Map<?, ?> map, String key, boolean nullable) {
|
||||
String uuidString = ConfigSerializationUtil.getString(map, key, nullable);
|
||||
if (uuidString == null) return null;
|
||||
return UUID.fromString(uuidString);
|
||||
}
|
||||
|
||||
public static <T> T getObject(Class<T> clazz, Map<?, ?> map, String key, boolean nullable) {
|
||||
final Object object = map.get(key);
|
||||
if (clazz.isInstance(object)) {
|
||||
return clazz.cast(object);
|
||||
}
|
||||
if (object == null) {
|
||||
if (!nullable) {
|
||||
throw new NoSuchElementException(map + " does not contain " + key);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
throw new IllegalArgumentException(key + "(" + object + ") is not a valid " + clazz);
|
||||
}
|
||||
|
||||
private ConfigSerializationUtil() {
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user