summaryrefslogtreecommitdiffstats
path: root/src/main/java
diff options
context:
space:
mode:
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;
+ }
}