summaryrefslogtreecommitdiffstats
path: root/Essentials/src/net/ess3/bukkit/BukkitLocation.java
diff options
context:
space:
mode:
Diffstat (limited to 'Essentials/src/net/ess3/bukkit/BukkitLocation.java')
-rw-r--r--Essentials/src/net/ess3/bukkit/BukkitLocation.java63
1 files changed, 63 insertions, 0 deletions
diff --git a/Essentials/src/net/ess3/bukkit/BukkitLocation.java b/Essentials/src/net/ess3/bukkit/BukkitLocation.java
new file mode 100644
index 000000000..21021873c
--- /dev/null
+++ b/Essentials/src/net/ess3/bukkit/BukkitLocation.java
@@ -0,0 +1,63 @@
+package net.ess3.bukkit;
+
+import net.ess3.api.server.World;
+import net.ess3.api.server.Location;
+import lombok.Delegate;
+import lombok.Getter;
+
+
+public class BukkitLocation extends Location
+{
+ public static class BukkitLocationFactory implements LocationFactory
+ {
+ private final org.bukkit.Server server;
+
+ public BukkitLocationFactory(org.bukkit.Server server)
+ {
+ this.server = server;
+ }
+
+ @Override
+ public Location create(String worldName, double x, double y, double z, double yaw, double pitch)
+ {
+ org.bukkit.World world = server.getWorld(worldName);
+ return new BukkitLocation(new org.bukkit.Location(world, x, y, z, (float)yaw, (float)pitch));
+ }
+
+ @Override
+ public Location create(World world, double x, double y, double z, double yaw, double pitch)
+ {
+ return new BukkitLocation(new org.bukkit.Location(((BukkitWorld)world).getBukkitWorld(), x, y, z, (float)yaw, (float)pitch));
+ }
+ }
+
+
+ private interface Excludes
+ {
+ org.bukkit.World getWorld();
+ }
+ @Delegate(excludes =
+ {
+ Excludes.class
+ })
+ @Getter
+ private final org.bukkit.Location bukkitLocation;
+
+ public BukkitLocation(org.bukkit.Location bukkitLocation)
+ {
+ this.bukkitLocation = bukkitLocation;
+ }
+
+ @Override
+ public World getWorld()
+ {
+ return new BukkitWorld(bukkitLocation.getWorld());
+ }
+
+ @Override
+ public double distanceSquared(final Location location)
+ {
+ return bukkitLocation.distanceSquared(((BukkitLocation)location).getBukkitLocation());
+ }
+
+}