mirror of
https://github.com/BentoBoxWorld/BentoBox.git
synced 2024-11-30 22:53:39 +01:00
Minor changes to deserialization in Yaml handler
This commit is contained in:
parent
6977a31830
commit
bce906d98e
@ -491,30 +491,19 @@ public class YamlDatabaseHandler<T> extends AbstractDatabaseHandler<T> {
|
|||||||
return Long.valueOf((Integer) value);
|
return Long.valueOf((Integer) value);
|
||||||
}
|
}
|
||||||
if (value.getClass().equals(String.class)) {
|
if (value.getClass().equals(String.class)) {
|
||||||
if (clazz.equals(Integer.class)) {
|
return deserializeGenericTypes((String) value, clazz);
|
||||||
return Integer.valueOf((String) value);
|
|
||||||
}
|
|
||||||
if (clazz.equals(Long.class)) {
|
|
||||||
return Long.valueOf((String) value);
|
|
||||||
}
|
|
||||||
if (clazz.equals(Double.class)) {
|
|
||||||
return Double.valueOf((String) value);
|
|
||||||
}
|
|
||||||
if (clazz.equals(Float.class)) {
|
|
||||||
return Float.valueOf((String) value);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (clazz.equals(UUID.class)) {
|
if (clazz.equals(UUID.class)) {
|
||||||
value = UUID.fromString((String)value);
|
return UUID.fromString((String)value);
|
||||||
}
|
}
|
||||||
// Bukkit Types
|
// Bukkit Types
|
||||||
if (clazz.equals(Location.class)) {
|
if (clazz.equals(Location.class)) {
|
||||||
// Get Location from String - may be null...
|
// Get Location from String - may be null...
|
||||||
value = Util.getLocationString(((String)value));
|
return Util.getLocationString(((String)value));
|
||||||
}
|
}
|
||||||
if (clazz.equals(World.class)) {
|
if (clazz.equals(World.class)) {
|
||||||
// Get world by name - may be null...
|
// Get world by name - may be null...
|
||||||
value = plugin.getServer().getWorld((String)value);
|
return plugin.getServer().getWorld((String)value);
|
||||||
}
|
}
|
||||||
// Enums
|
// Enums
|
||||||
if (Enum.class.isAssignableFrom(clazz)) {
|
if (Enum.class.isAssignableFrom(clazz)) {
|
||||||
@ -522,7 +511,7 @@ public class YamlDatabaseHandler<T> extends AbstractDatabaseHandler<T> {
|
|||||||
// Find out the value
|
// Find out the value
|
||||||
Class<Enum> enumClass = (Class<Enum>)clazz;
|
Class<Enum> enumClass = (Class<Enum>)clazz;
|
||||||
try {
|
try {
|
||||||
value = Enum.valueOf(enumClass, (String)value);
|
return Enum.valueOf(enumClass, (String)value);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
// This value does not exist - probably admin typed it wrongly
|
// This value does not exist - probably admin typed it wrongly
|
||||||
// Show what is available and pick one at random
|
// Show what is available and pick one at random
|
||||||
@ -531,12 +520,28 @@ public class YamlDatabaseHandler<T> extends AbstractDatabaseHandler<T> {
|
|||||||
for (Field fields : enumClass.getFields()) {
|
for (Field fields : enumClass.getFields()) {
|
||||||
plugin.logError(fields.getName());
|
plugin.logError(fields.getName());
|
||||||
}
|
}
|
||||||
value = null;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// Could not deserialize the value.
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Object deserializeGenericTypes(String value, Class<?> clazz) {
|
||||||
|
if (clazz.equals(Integer.class)) {
|
||||||
|
return Integer.valueOf(value);
|
||||||
|
}
|
||||||
|
if (clazz.equals(Long.class)) {
|
||||||
|
return Long.valueOf(value);
|
||||||
|
}
|
||||||
|
if (clazz.equals(Double.class)) {
|
||||||
|
return Double.valueOf(value);
|
||||||
|
}
|
||||||
|
if (clazz.equals(Float.class)) {
|
||||||
|
return Float.valueOf(value);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see world.bentobox.bentobox.database.AbstractDatabaseHandler#deleteObject(java.lang.Object)
|
* @see world.bentobox.bentobox.database.AbstractDatabaseHandler#deleteObject(java.lang.Object)
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user