summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorsk89q <the.sk89q@gmail.com>2011-01-03 16:52:44 +0800
committerDinner Bone <dinnerbone@dinnerbone.com>2011-01-03 22:24:43 +0800
commite05708c9df2e0cd3d2fad3a7c36de1bc762779e5 (patch)
treeab32a2934ea33a6e5fa872a581cda272f5b1dc14 /src
parent5d6b436ad388d2324e1c95a17bd8f6c4e34cb513 (diff)
downloadbukkit-e05708c9df2e0cd3d2fad3a7c36de1bc762779e5.tar
bukkit-e05708c9df2e0cd3d2fad3a7c36de1bc762779e5.tar.gz
bukkit-e05708c9df2e0cd3d2fad3a7c36de1bc762779e5.tar.lz
bukkit-e05708c9df2e0cd3d2fad3a7c36de1bc762779e5.tar.xz
bukkit-e05708c9df2e0cd3d2fad3a7c36de1bc762779e5.zip
Implemented vehicle hooks (some changes will still be made).
Diffstat (limited to 'src')
-rw-r--r--src/main/java/org/bukkit/event/Event.java8
-rw-r--r--src/main/java/org/bukkit/event/vehicle/VehicleBlockCollisionEvent.java22
-rw-r--r--src/main/java/org/bukkit/event/vehicle/VehicleCollisionEvent.java14
-rw-r--r--src/main/java/org/bukkit/event/vehicle/VehicleDamageEvent.java26
-rw-r--r--src/main/java/org/bukkit/event/vehicle/VehicleEnterEvent.java38
-rw-r--r--src/main/java/org/bukkit/event/vehicle/VehicleEntityCollisionEvent.java22
-rw-r--r--src/main/java/org/bukkit/event/vehicle/VehicleEvent.java27
-rw-r--r--src/main/java/org/bukkit/event/vehicle/VehicleExitEvent.java38
-rw-r--r--src/main/java/org/bukkit/event/vehicle/VehicleListener.java64
-rw-r--r--src/main/java/org/bukkit/event/vehicle/VehicleMoveEvent.java40
-rw-r--r--src/main/java/org/bukkit/event/vehicle/VehiclePlaceEvent.java26
-rw-r--r--src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java27
12 files changed, 348 insertions, 4 deletions
diff --git a/src/main/java/org/bukkit/event/Event.java b/src/main/java/org/bukkit/event/Event.java
index 2559fd14..51992ad3 100644
--- a/src/main/java/org/bukkit/event/Event.java
+++ b/src/main/java/org/bukkit/event/Event.java
@@ -337,12 +337,12 @@ public abstract class Event {
/**
* Called when a vehicle is placed by a player
*/
- VEHICLE_PLACED (Category.VEHICLE),
+ VEHICLE_PLACE (Category.VEHICLE),
/**
* Called when a vehicle is damaged by a LivingEntity
*/
- VEHICLE_DAMAGED (Category.VEHICLE),
+ VEHICLE_DAMAGE (Category.VEHICLE),
/**
* Called when a vehicle collides with an Entity
@@ -357,12 +357,12 @@ public abstract class Event {
/**
* Called when a vehicle is entered by a LivingEntity
*/
- VEHICLE_ENTERED (Category.VEHICLE),
+ VEHICLE_ENTER (Category.VEHICLE),
/**
* Called when a vehicle is exited by a LivingEntity
*/
- VEHICLE_EXITED (Category.VEHICLE),
+ VEHICLE_EXIT (Category.VEHICLE),
/**
* Called when a vehicle moves position in the world
diff --git a/src/main/java/org/bukkit/event/vehicle/VehicleBlockCollisionEvent.java b/src/main/java/org/bukkit/event/vehicle/VehicleBlockCollisionEvent.java
new file mode 100644
index 00000000..6141c1c1
--- /dev/null
+++ b/src/main/java/org/bukkit/event/vehicle/VehicleBlockCollisionEvent.java
@@ -0,0 +1,22 @@
+package org.bukkit.event.vehicle;
+
+import org.bukkit.Block;
+import org.bukkit.Vehicle;
+
+/**
+ * Raised when a vehicle collides with a block.
+ *
+ * @author sk89q
+ */
+public class VehicleBlockCollisionEvent extends VehicleCollisionEvent {
+ private Block block;
+
+ public VehicleBlockCollisionEvent(Type type, Vehicle vehicle, Block block) {
+ super(type, vehicle);
+ this.block = block;
+ }
+
+ public Block getBlock() {
+ return block;
+ }
+}
diff --git a/src/main/java/org/bukkit/event/vehicle/VehicleCollisionEvent.java b/src/main/java/org/bukkit/event/vehicle/VehicleCollisionEvent.java
new file mode 100644
index 00000000..6e4bb48a
--- /dev/null
+++ b/src/main/java/org/bukkit/event/vehicle/VehicleCollisionEvent.java
@@ -0,0 +1,14 @@
+package org.bukkit.event.vehicle;
+
+import org.bukkit.Vehicle;
+
+/**
+ * Raised when a vehicle collides.
+ *
+ * @author sk89q
+ */
+public class VehicleCollisionEvent extends VehicleEvent {
+ public VehicleCollisionEvent(Type type, Vehicle vehicle) {
+ super(type, vehicle);
+ }
+}
diff --git a/src/main/java/org/bukkit/event/vehicle/VehicleDamageEvent.java b/src/main/java/org/bukkit/event/vehicle/VehicleDamageEvent.java
new file mode 100644
index 00000000..fd112bd6
--- /dev/null
+++ b/src/main/java/org/bukkit/event/vehicle/VehicleDamageEvent.java
@@ -0,0 +1,26 @@
+package org.bukkit.event.vehicle;
+
+import org.bukkit.Vehicle;
+import org.bukkit.event.Cancellable;
+
+/**
+ * Raised when a vehicle receives damage.
+ *
+ * @author sk89q
+ */
+public class VehicleDamageEvent extends VehicleEvent implements Cancellable {
+ private boolean cancelled;
+
+ public VehicleDamageEvent(Type type, Vehicle vehicle) {
+ super(type, vehicle);
+ }
+
+ public boolean isCancelled() {
+ return cancelled;
+ }
+
+ public void setCancelled(boolean cancel) {
+ this.cancelled = cancel;
+ }
+
+}
diff --git a/src/main/java/org/bukkit/event/vehicle/VehicleEnterEvent.java b/src/main/java/org/bukkit/event/vehicle/VehicleEnterEvent.java
new file mode 100644
index 00000000..da8fc30c
--- /dev/null
+++ b/src/main/java/org/bukkit/event/vehicle/VehicleEnterEvent.java
@@ -0,0 +1,38 @@
+package org.bukkit.event.vehicle;
+
+import org.bukkit.LivingEntity;
+import org.bukkit.Vehicle;
+import org.bukkit.event.Cancellable;
+
+/**
+ * Raised when a living entity enters a vehicle.
+ *
+ * @author sk89q
+ */
+public class VehicleEnterEvent extends VehicleEvent implements Cancellable {
+ private boolean cancelled;
+ private LivingEntity entered;
+
+ public VehicleEnterEvent(Type type, Vehicle vehicle, LivingEntity entered) {
+ super(type, vehicle);
+
+ this.entered = entered;
+ }
+
+ /**
+ * Get the living entity that entered the vehicle.
+ *
+ * @return
+ */
+ public LivingEntity getEntered() {
+ return entered;
+ }
+
+ public boolean isCancelled() {
+ return cancelled;
+ }
+
+ public void setCancelled(boolean cancel) {
+ this.cancelled = cancel;
+ }
+}
diff --git a/src/main/java/org/bukkit/event/vehicle/VehicleEntityCollisionEvent.java b/src/main/java/org/bukkit/event/vehicle/VehicleEntityCollisionEvent.java
new file mode 100644
index 00000000..fe2c3b71
--- /dev/null
+++ b/src/main/java/org/bukkit/event/vehicle/VehicleEntityCollisionEvent.java
@@ -0,0 +1,22 @@
+package org.bukkit.event.vehicle;
+
+import org.bukkit.Entity;
+import org.bukkit.Vehicle;
+
+/**
+ * Raised when a vehicle collides with an entity.
+ *
+ * @author sk89q
+ */
+public class VehicleEntityCollisionEvent extends VehicleCollisionEvent {
+ private Entity entity;
+
+ public VehicleEntityCollisionEvent(Type type, Vehicle vehicle, Entity entity) {
+ super(type, vehicle);
+ this.entity = entity;
+ }
+
+ public Entity getEntity() {
+ return entity;
+ }
+}
diff --git a/src/main/java/org/bukkit/event/vehicle/VehicleEvent.java b/src/main/java/org/bukkit/event/vehicle/VehicleEvent.java
new file mode 100644
index 00000000..b08c3340
--- /dev/null
+++ b/src/main/java/org/bukkit/event/vehicle/VehicleEvent.java
@@ -0,0 +1,27 @@
+package org.bukkit.event.vehicle;
+
+import org.bukkit.Vehicle;
+import org.bukkit.event.Event;
+
+/**
+ * Represents a vehicle-related event.
+ *
+ * @author sk89q
+ */
+public class VehicleEvent extends Event {
+ protected Vehicle vehicle;
+
+ public VehicleEvent(final Event.Type type, final Vehicle vehicle) {
+ super(type);
+ this.vehicle = vehicle;
+ }
+
+ /**
+ * Get the vehicle.
+ *
+ * @return the vehicle
+ */
+ public final Vehicle getVehicle() {
+ return vehicle;
+ }
+}
diff --git a/src/main/java/org/bukkit/event/vehicle/VehicleExitEvent.java b/src/main/java/org/bukkit/event/vehicle/VehicleExitEvent.java
new file mode 100644
index 00000000..957571ed
--- /dev/null
+++ b/src/main/java/org/bukkit/event/vehicle/VehicleExitEvent.java
@@ -0,0 +1,38 @@
+package org.bukkit.event.vehicle;
+
+import org.bukkit.LivingEntity;
+import org.bukkit.Vehicle;
+import org.bukkit.event.Cancellable;
+
+/**
+ * Raised when a living entity exits a vehicle.
+ *
+ * @author sk89q
+ */
+public class VehicleExitEvent extends VehicleEvent implements Cancellable {
+ private boolean cancelled;
+ private LivingEntity exited;
+
+ public VehicleExitEvent(Type type, Vehicle vehicle, LivingEntity exited) {
+ super(type, vehicle);
+
+ this.exited = exited;
+ }
+
+ /**
+ * Get the living entity that exited the vehicle.
+ *
+ * @return
+ */
+ public LivingEntity getExited() {
+ return exited;
+ }
+
+ public boolean isCancelled() {
+ return cancelled;
+ }
+
+ public void setCancelled(boolean cancel) {
+ this.cancelled = cancel;
+ }
+}
diff --git a/src/main/java/org/bukkit/event/vehicle/VehicleListener.java b/src/main/java/org/bukkit/event/vehicle/VehicleListener.java
new file mode 100644
index 00000000..95e6e2df
--- /dev/null
+++ b/src/main/java/org/bukkit/event/vehicle/VehicleListener.java
@@ -0,0 +1,64 @@
+package org.bukkit.event.vehicle;
+
+/**
+ * Listener for vehicle events.
+ *
+ * @author sk89q
+ */
+public class VehicleListener {
+ /**
+ * Called when a vehicle is placed by a player.
+ *
+ * @param event
+ */
+ public void onVehiclePlace(VehiclePlaceEvent event) {
+ }
+
+ /**
+ * Called when a vehicle is damaged by the player.
+ *
+ * @param event
+ */
+ public void onVehicleDamage(VehicleDamageEvent event) {
+ }
+
+ /**
+ * Called when a vehicle collides with a block.
+ *
+ * @param event
+ */
+ public void onVehicleBlockCollision(VehicleBlockCollisionEvent event) {
+ }
+
+ /**
+ * Called when a vehicle collides with an entity.
+ *
+ * @param event
+ */
+ public void onVehicleEntityCollision(VehicleEntityCollisionEvent event) {
+ }
+
+ /**
+ * Called when an entity enters a vehicle.
+ *
+ * @param event
+ */
+ public void onVehicleEnter(VehicleEnterEvent event) {
+ }
+
+ /**
+ * Called when an entity exits a vehicle.
+ *
+ * @param event
+ */
+ public void onVehicleExit(VehicleExitEvent event) {
+ }
+
+ /**
+ * Called when an vehicle moves.
+ *
+ * @param event
+ */
+ public void onVehicleMove(VehicleMoveEvent event) {
+ }
+}
diff --git a/src/main/java/org/bukkit/event/vehicle/VehicleMoveEvent.java b/src/main/java/org/bukkit/event/vehicle/VehicleMoveEvent.java
new file mode 100644
index 00000000..65921ad4
--- /dev/null
+++ b/src/main/java/org/bukkit/event/vehicle/VehicleMoveEvent.java
@@ -0,0 +1,40 @@
+package org.bukkit.event.vehicle;
+
+import org.bukkit.Location;
+import org.bukkit.Vehicle;
+
+/**
+ * Raised when a vehicle moves.
+ *
+ * @author sk89q
+ */
+public class VehicleMoveEvent extends VehicleEvent {
+ private Location from;
+ private Location to;
+
+ public VehicleMoveEvent(Type type, Vehicle vehicle,
+ Location from, Location to) {
+ super(type, vehicle);
+
+ this.from = from;
+ this.to = to;
+ }
+
+ /**
+ * Get the previous position.
+ *
+ * @return
+ */
+ public Location getFrom() {
+ return from;
+ }
+
+ /**
+ * Get the next position.
+ *
+ * @return
+ */
+ public Location getTo() {
+ return to;
+ }
+}
diff --git a/src/main/java/org/bukkit/event/vehicle/VehiclePlaceEvent.java b/src/main/java/org/bukkit/event/vehicle/VehiclePlaceEvent.java
new file mode 100644
index 00000000..44628879
--- /dev/null
+++ b/src/main/java/org/bukkit/event/vehicle/VehiclePlaceEvent.java
@@ -0,0 +1,26 @@
+package org.bukkit.event.vehicle;
+
+import org.bukkit.Vehicle;
+import org.bukkit.event.Cancellable;
+
+/**
+ * Raised when a vehicle is placed by a player.
+ *
+ * @author sk89q
+ */
+public class VehiclePlaceEvent extends VehicleEvent implements Cancellable {
+ private boolean cancelled;
+
+ public VehiclePlaceEvent(Type type, Vehicle vehicle) {
+ super(type, vehicle);
+ }
+
+ public boolean isCancelled() {
+ return cancelled;
+ }
+
+ public void setCancelled(boolean cancel) {
+ this.cancelled = cancel;
+ }
+
+}
diff --git a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
index 667fcb3f..56fcbe79 100644
--- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
+++ b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
@@ -19,6 +19,7 @@ import org.bukkit.event.block.*;
import org.bukkit.event.player.*;
import org.bukkit.event.server.PluginEvent;
import org.bukkit.event.server.ServerListener;
+import org.bukkit.event.vehicle.*;
import org.bukkit.plugin.*;
/**
@@ -132,6 +133,32 @@ public final class JavaPluginLoader implements PluginLoader {
trueListener.onPluginDisabled((PluginEvent)event);
break;
}
+ } else if (listener instanceof VehicleListener) {
+ VehicleListener trueListener = (VehicleListener)listener;
+
+ switch (event.getType()) {
+ case VEHICLE_PLACE:
+ trueListener.onVehiclePlace((VehiclePlaceEvent)event);
+ break;
+ case VEHICLE_DAMAGE:
+ trueListener.onVehicleDamage((VehicleDamageEvent)event);
+ break;
+ case VEHICLE_COLLISION_BLOCK:
+ trueListener.onVehicleBlockCollision((VehicleBlockCollisionEvent)event);
+ break;
+ case VEHICLE_COLLISION_ENTITY:
+ trueListener.onVehicleEntityCollision((VehicleEntityCollisionEvent)event);
+ break;
+ case VEHICLE_ENTER:
+ trueListener.onVehicleEnter((VehicleEnterEvent)event);
+ break;
+ case VEHICLE_EXIT:
+ trueListener.onVehicleExit((VehicleExitEvent)event);
+ break;
+ case VEHICLE_MOVE:
+ trueListener.onVehicleMove((VehicleMoveEvent)event);
+ break;
+ }
} else if(listener instanceof CustomEventListener) {
if(event.getType()==Event.Type.CUSTOM_EVENT) {
((CustomEventListener)listener).onCustomEvent(event);