diff --git a/paper-api/src/main/java/org/bukkit/Minecart.java b/paper-api/src/main/java/org/bukkit/Minecart.java new file mode 100644 index 0000000000..275a084e2c --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/Minecart.java @@ -0,0 +1,22 @@ +package org.bukkit; + +/** + * Represents a minecart entity. + * + * @author sk89q + */ +public interface Minecart extends Vehicle { + /** + * Sets a minecart's damage. + * + * @param damage over 40 to "kill" a minecart + */ + public void setDamage(int damage); + + /** + * Gets a minecart's damage. + * + * @param damage + */ + public int getDamage(); +} diff --git a/paper-api/src/main/java/org/bukkit/PoweredMinecart.java b/paper-api/src/main/java/org/bukkit/PoweredMinecart.java new file mode 100644 index 0000000000..c6ca47164e --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/PoweredMinecart.java @@ -0,0 +1,10 @@ +package org.bukkit; + +/** + * Represents a powered minecart. + * + * @author sk89q + */ +public interface PoweredMinecart extends Minecart { + +} diff --git a/paper-api/src/main/java/org/bukkit/StorageMinecart.java b/paper-api/src/main/java/org/bukkit/StorageMinecart.java new file mode 100644 index 0000000000..2d4a4afbdd --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/StorageMinecart.java @@ -0,0 +1,9 @@ +package org.bukkit; + +/** + * Represents a storage minecart. + * + * @author sk89q + */ +public interface StorageMinecart extends Minecart { +} diff --git a/paper-api/src/main/java/org/bukkit/Vehicle.java b/paper-api/src/main/java/org/bukkit/Vehicle.java new file mode 100644 index 0000000000..245c671fa7 --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/Vehicle.java @@ -0,0 +1,37 @@ +package org.bukkit; + +/** + * Represents a vehicle entity. + * + * @author sk89q + */ +public interface Vehicle extends Entity { + /** + * Gets the vehicle's velocity. + * + * @return velocity vector + */ + public Vector getVelocity(); + + /** + * Sets the vehicle's velocity. + * + * @param vel velocity vector + */ + public void setVelocity(Vector vel); + + /** + * Gets the primary passenger of a vehicle. For vehicles that could have + * multiple passengers, this will only return the primary passenger. + * + * @return a living entity + */ + public LivingEntity getPassenger(); + + /** + * Returns true if the vehicle has no passengers. + * + * @return + */ + public boolean isEmpty(); +} diff --git a/paper-api/src/main/java/org/bukkit/World.java b/paper-api/src/main/java/org/bukkit/World.java index deef731481..5b03ebffad 100644 --- a/paper-api/src/main/java/org/bukkit/World.java +++ b/paper-api/src/main/java/org/bukkit/World.java @@ -63,7 +63,7 @@ public interface World { * @return whether the tree was created */ public boolean generateTree(Location loc); - + /** * Spawns a big tree at a location. * @@ -71,4 +71,28 @@ public interface World { * @return whether the tree was created */ public boolean generateBigTree(Location loc); + + /** + * Spawns a regular passenger minecart. + * + * @param loc + * @return + */ + public Minecart spawnMinecart(Location loc); + + /** + * Spawns a storage minecart. + * + * @param loc + * @return + */ + public StorageMinecart spawnStorageMinecart(Location loc); + + /** + * Spawns a powered minecart. + * + * @param loc + * @return + */ + public PoweredMinecart spawnPoweredMinecart(Location loc); }