package de.codebucket.witchmania.util; import org.bukkit.Bukkit; import org.bukkit.Location; public class GameLocation { private String world; private Double x; private Double y; private Double z; private Float yaw; private Float pitch; private LocationType type; public GameLocation(String world, Double x, Double y, Double z) { this.world = world; this.x = x; this.y = y; this.z = z; this.type = LocationType.ENTITY; } public GameLocation(String world, Double x, Double y, Double z, Float yaw, Float pitch) { this.world = world; this.x = x; this.y = y; this.z = z; this.yaw = yaw; this.pitch = pitch; this.type = LocationType.PLAYER; } public String getWorld() { return world; } public void setWorld(String world) { this.world = world; } public Double getX() { return x; } public void setX(Double x) { this.x = x; } public Double getY() { return y; } public void setY(Double y) { this.y = y; } public Double getZ() { return z; } public void setZ(Double z) { this.z = z; } public Float getYaw() { return yaw; } public void setYaw(Float yaw) { this.yaw = yaw; } public Float getPitch() { return pitch; } public void setPitch(Float pitch) { this.pitch = pitch; } public Location serialize() { if(type == LocationType.ENTITY) { return new Location(Bukkit.getWorld(world), x, y, z); new Loc } else if(type == LocationType.PLAYER) { return new Location(Bukkit.getWorld(world), x, y, z, yaw, pitch); } return null; } public void deserialize(Location location) { this.world = location.getWorld().getName(); this.x = location.getX(); this.y = location.getY(); this.z = location.getZ(); this.yaw = location.getYaw(); this.pitch = location.getPitch(); } public GameLocation clone() { if(type == LocationType.ENTITY) { return new GameLocation(world, x, y, z); } else if(type == LocationType.PLAYER) { return new GameLocation(world, x, y, z, yaw, pitch); } return null; } public enum LocationType { ENTITY, PLAYER; } }