summaryrefslogtreecommitdiffstats
path: root/src/main/java
diff options
context:
space:
mode:
authorCeltic Minstrel <celtic.minstrel.ca@some.place>2012-03-12 12:45:09 -0400
committerEvilSeph <evilseph@gmail.com>2012-03-15 07:18:59 -0400
commit92f771a022593c0b10349f2096b4d892e93f7807 (patch)
treef17cfa68edfd613269050c3edae0281cedf7f011 /src/main/java
parent6f6f8ef0088c545505c75396a01fc7bd8055c249 (diff)
downloadcraftbukkit-92f771a022593c0b10349f2096b4d892e93f7807.tar
craftbukkit-92f771a022593c0b10349f2096b4d892e93f7807.tar.gz
craftbukkit-92f771a022593c0b10349f2096b4d892e93f7807.tar.lz
craftbukkit-92f771a022593c0b10349f2096b4d892e93f7807.tar.xz
craftbukkit-92f771a022593c0b10349f2096b4d892e93f7807.zip
[Bleeding] Implemented ProjectileLaunchEvent. Addresses BUKKIT-284
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/net/minecraft/server/World.java5
-rw-r--r--src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java7
2 files changed, 12 insertions, 0 deletions
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 976dbe0c..8a35b54f 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -897,6 +897,11 @@ public class World implements IBlockAccess {
if (event.isCancelled()) {
return false;
}
+ } else if (entity.getBukkitEntity() instanceof org.bukkit.entity.Projectile) {
+ // Not all projectiles extend EntityProjectile, so check for Bukkit interface instead
+ if (CraftEventFactory.callProjectileLaunchEvent(entity).isCancelled()) {
+ return false;
+ }
}
// CraftBukkit end
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
index 9116adfa..e7aad886 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -491,4 +491,11 @@ public class CraftEventFactory {
return CraftItemStack.createNMSItemStack(bitem);
}
+
+ public static ProjectileLaunchEvent callProjectileLaunchEvent(Entity entity) {
+ Projectile bukkitEntity = (Projectile) entity.getBukkitEntity();
+ ProjectileLaunchEvent event = new ProjectileLaunchEvent(bukkitEntity);
+ Bukkit.getPluginManager().callEvent(event);
+ return event;
+ }
}