From bcf6440bc42fcc80c0ec3b08c79f8d501f464749 Mon Sep 17 00:00:00 2001 From: Zeerix Date: Wed, 28 Dec 2011 21:36:02 +0100 Subject: [Bleeding] Implement EntityShootBowEvent. Thanks Zeerix. --- src/main/java/net/minecraft/server/EntitySkeleton.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'src/main/java/net/minecraft/server/EntitySkeleton.java') diff --git a/src/main/java/net/minecraft/server/EntitySkeleton.java b/src/main/java/net/minecraft/server/EntitySkeleton.java index fa997cb6..ca12dd63 100644 --- a/src/main/java/net/minecraft/server/EntitySkeleton.java +++ b/src/main/java/net/minecraft/server/EntitySkeleton.java @@ -1,6 +1,8 @@ package net.minecraft.server; // CraftBukkit start +import org.bukkit.craftbukkit.event.CraftEventFactory; +import org.bukkit.event.entity.EntityShootBowEvent; import org.bukkit.event.entity.EntityCombustEvent; import org.bukkit.event.entity.EntityDeathEvent; // CraftBukkit end @@ -76,10 +78,22 @@ public class EntitySkeleton extends EntityMonster { double d2 = entity.locY + (double) entity.y() - 0.699999988079071D - entityarrow.locY; float f1 = MathHelper.sqrt(d0 * d0 + d1 * d1) * 0.2F; - this.world.makeSound(this, "random.bow", 1.0F, 1.0F / (this.random.nextFloat() * 0.4F + 0.8F)); - this.world.addEntity(entityarrow); + this.world.makeSound(this, "random.bow", 1.0F, 1.0F / (this.random.nextFloat() * 0.4F + 0.8F)); // CraftBukkit - moved down + // this.world.addEntity(entityarrow); // CraftBukkit - moved down entityarrow.shoot(d0, d2 + (double) f1, d1, 1.6F, 12.0F); this.attackTicks = 60; + + // CraftBukkit start + EntityShootBowEvent event = CraftEventFactory.callEntityShootBowEvent(this, null, entityarrow, 0.5F); + if (event.isCancelled()) { + if (event.getProjectile() != null) { + event.getProjectile().remove(); + } + } else if (event.getProjectile() == entityarrow.getBukkitEntity()) { + world.addEntity(entityarrow); + } + this.world.makeSound(this, "random.bow", 1.0F, 1.0F / (this.random.nextFloat() * 0.4F + 0.8F)); + // CraftBukkit end } this.yaw = (float) (Math.atan2(d1, d0) * 180.0D / 3.1415927410125732D) - 90.0F; -- cgit v1.2.3