Saber-Factions/src/main/java/com/massivecraft/factions/util/MyLocationTypeAdapter.java

60 lines
2.0 KiB
Java
Raw Normal View History

2011-07-31 03:17:00 +02:00
package com.massivecraft.factions.util;
2011-03-23 17:39:56 +01:00
import com.massivecraft.factions.P;
2014-04-04 20:55:21 +02:00
import org.bukkit.craftbukkit.libs.com.google.gson.*;
2011-07-18 22:06:02 +02:00
2014-04-04 20:55:21 +02:00
import java.lang.reflect.Type;
import java.util.logging.Level;
2014-04-04 20:55:21 +02:00
public class MyLocationTypeAdapter implements JsonDeserializer<LazyLocation>, JsonSerializer<LazyLocation> {
2014-04-04 20:55:21 +02:00
private static final String WORLD = "world";
private static final String X = "x";
private static final String Y = "y";
private static final String Z = "z";
private static final String YAW = "yaw";
private static final String PITCH = "pitch";
@Override
public LazyLocation deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
try {
JsonObject obj = json.getAsJsonObject();
2014-07-01 22:10:18 +02:00
String worldName = obj.get(WORLD).getAsString();
double x = obj.get(X).getAsDouble();
double y = obj.get(Y).getAsDouble();
double z = obj.get(Z).getAsDouble();
float yaw = obj.get(YAW).getAsFloat();
float pitch = obj.get(PITCH).getAsFloat();
2014-04-04 20:55:21 +02:00
return new LazyLocation(worldName, x, y, z, yaw, pitch);
} catch (Exception ex) {
2014-07-01 22:10:18 +02:00
ex.printStackTrace();
P.p.log(Level.WARNING, "Error encountered while deserializing a LazyLocation.");
2014-04-04 20:55:21 +02:00
return null;
}
}
@Override
public JsonElement serialize(LazyLocation src, Type typeOfSrc, JsonSerializationContext context) {
JsonObject obj = new JsonObject();
try {
2014-07-01 22:10:18 +02:00
obj.addProperty(WORLD, src.getWorldName());
obj.addProperty(X, src.getX());
obj.addProperty(Y, src.getY());
obj.addProperty(Z, src.getZ());
obj.addProperty(YAW, src.getYaw());
obj.addProperty(PITCH, src.getPitch());
2014-04-04 20:55:21 +02:00
return obj;
} catch (Exception ex) {
2014-07-01 22:10:18 +02:00
ex.printStackTrace();
P.p.log(Level.WARNING, "Error encountered while serializing a LazyLocation.");
2014-04-04 20:55:21 +02:00
return obj;
}
}
2011-03-23 17:39:56 +01:00
}