summaryrefslogtreecommitdiffstats
path: root/src/main
diff options
context:
space:
mode:
authorTahg <tahgtahv@gmail.com>2011-04-04 00:44:52 -0400
committerTahg <tahgtahv@gmail.com>2011-04-04 01:14:26 -0400
commit43784649897962270b27e1e0c1d1736246c13fff (patch)
tree4b16dbaf2fac438a74d70bc175801b41cd32c2df /src/main
parent47d436c38610b9dc6b8ca5a0bb7c07f8c18f6cf5 (diff)
downloadbukkit-43784649897962270b27e1e0c1d1736246c13fff.tar
bukkit-43784649897962270b27e1e0c1d1736246c13fff.tar.gz
bukkit-43784649897962270b27e1e0c1d1736246c13fff.tar.lz
bukkit-43784649897962270b27e1e0c1d1736246c13fff.tar.xz
bukkit-43784649897962270b27e1e0c1d1736246c13fff.zip
added some API for entities
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/org/bukkit/entity/Entity.java13
-rw-r--r--src/main/java/org/bukkit/event/Event.java8
-rw-r--r--src/main/java/org/bukkit/event/entity/EntityInteractEvent.java54
-rw-r--r--src/main/java/org/bukkit/event/entity/EntityListener.java3
-rw-r--r--src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java6
5 files changed, 84 insertions, 0 deletions
diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java
index 80c4b5a9..0d55f8ff 100644
--- a/src/main/java/org/bukkit/entity/Entity.java
+++ b/src/main/java/org/bukkit/entity/Entity.java
@@ -156,4 +156,17 @@ public interface Entity {
* @return
*/
public abstract boolean eject();
+
+ /**
+ * Returns the distance this entity has fallen
+ * @return
+ */
+ public float getFallDistance();
+
+ /**
+ * Sets the fall distance for this entity
+ * @param distance
+ */
+ public void setFallDistance(float distance);
+
}
diff --git a/src/main/java/org/bukkit/event/Event.java b/src/main/java/org/bukkit/event/Event.java
index 01ad2acf..453f1514 100644
--- a/src/main/java/org/bukkit/event/Event.java
+++ b/src/main/java/org/bukkit/event/Event.java
@@ -532,6 +532,14 @@ public abstract class Event implements Serializable {
* @see org.bukkit.event.entity.EntityTargetEvent
*/
ENTITY_TARGET (Category.LIVING_ENTITY),
+
+ /**
+ * Called when an entity interacts with a block
+ * This event specifically excludes player entities
+ *
+ * @see org.bukkit.event.entity.EntityInteractEvent
+ */
+ ENTITY_INTERACT (Category.LIVING_ENTITY),
/**
* VEHICLE EVENTS
diff --git a/src/main/java/org/bukkit/event/entity/EntityInteractEvent.java b/src/main/java/org/bukkit/event/entity/EntityInteractEvent.java
new file mode 100644
index 00000000..1e10a210
--- /dev/null
+++ b/src/main/java/org/bukkit/event/entity/EntityInteractEvent.java
@@ -0,0 +1,54 @@
+package org.bukkit.event.entity;
+
+import org.bukkit.block.Block;
+import org.bukkit.entity.Entity;
+import org.bukkit.event.Cancellable;
+
+/**
+ *
+ * @author durron597
+ *
+ */
+public class EntityInteractEvent extends EntityEvent implements Cancellable {
+ protected Block block;
+
+ private boolean cancelled;
+
+ public EntityInteractEvent(Entity entity, Block block) {
+ super(Type.ENTITY_INTERACT, entity);
+ this.block = block;
+ }
+
+ /**
+ * Gets the cancellation state of this event. Set to true if you
+ * want to prevent buckets from placing water and so forth
+ *
+ * @return boolean cancellation state
+ */
+ public boolean isCancelled() {
+ return cancelled;
+ }
+
+ /**
+ * Sets the cancellation state of this event. A canceled event will not
+ * be executed in the server, but will still pass to other plugins
+ *
+ * Canceling this event will prevent use of food (player won't lose the
+ * food item), prevent bows/snowballs/eggs from firing, etc. (player won't
+ * lose the ammo)
+ *
+ * @param cancel true if you wish to cancel this event
+ */
+ public void setCancelled(boolean cancel) {
+ cancelled = cancel;
+ }
+
+ /**
+ * Returns the involved block
+ *
+ * @return Block returns the block clicked with this item.
+ */
+ public Block getBlock() {
+ return block;
+ }
+} \ No newline at end of file
diff --git a/src/main/java/org/bukkit/event/entity/EntityListener.java b/src/main/java/org/bukkit/event/entity/EntityListener.java
index 5326a0f5..6e6dbf88 100644
--- a/src/main/java/org/bukkit/event/entity/EntityListener.java
+++ b/src/main/java/org/bukkit/event/entity/EntityListener.java
@@ -29,4 +29,7 @@ public class EntityListener implements Listener {
public void onEntityTarget(EntityTargetEvent event) {
}
+
+ public void onEntityInteract(EntityInteractEvent event) {
+ }
}
diff --git a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
index 2018d0af..10b0fd3e 100644
--- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
+++ b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
@@ -468,6 +468,12 @@ public final class JavaPluginLoader implements PluginLoader {
((EntityListener) listener).onEntityTarget((EntityTargetEvent) event);
}
};
+ case ENTITY_INTERACT:
+ return new EventExecutor() {
+ public void execute(Listener listener, Event event) {
+ ((EntityListener) listener).onEntityInteract((EntityInteractEvent) event);
+ }
+ };
case CREATURE_SPAWN:
return new EventExecutor() {
public void execute(Listener listener, Event event) {