diff --git a/src/main/java/net/minecraft/server/EntityBoat.java b/src/main/java/net/minecraft/server/EntityBoat.java index b6072cfd39..51f83379e4 100644 --- a/src/main/java/net/minecraft/server/EntityBoat.java +++ b/src/main/java/net/minecraft/server/EntityBoat.java @@ -9,6 +9,7 @@ import org.bukkit.craftbukkit.CraftWorld; import org.bukkit.entity.Vehicle; import org.bukkit.event.vehicle.VehicleCreateEvent; import org.bukkit.event.vehicle.VehicleDamageEvent; +import org.bukkit.event.vehicle.VehicleDestroyEvent; import org.bukkit.event.vehicle.VehicleEnterEvent; import org.bukkit.event.vehicle.VehicleEntityCollisionEvent; import org.bukkit.event.vehicle.VehicleMoveEvent; @@ -116,6 +117,17 @@ public class EntityBoat extends Entity { this.a += i * 10; this.W(); if (this.a > 40) { + + // CraftBukkit start + VehicleDestroyEvent destroyEvent = new VehicleDestroyEvent(vehicle, attacker); + ((WorldServer) this.world).getServer().getPluginManager().callEvent(destroyEvent); + + if (destroyEvent.isCancelled()) { + this.a = 40; // Maximize damage so this doesn't get triggered again right away + return true; + } + // CraftBukkit end + int j; for (j = 0; j < 3; ++j) { diff --git a/src/main/java/net/minecraft/server/EntityMinecart.java b/src/main/java/net/minecraft/server/EntityMinecart.java index ce6b1143ad..fb87d30b65 100644 --- a/src/main/java/net/minecraft/server/EntityMinecart.java +++ b/src/main/java/net/minecraft/server/EntityMinecart.java @@ -120,6 +120,17 @@ public class EntityMinecart extends Entity implements IInventory { this.W(); this.a += i * 10; if (this.a > 40) { + + // CraftBukkit start + VehicleDestroyEvent destroyEvent = new VehicleDestroyEvent(vehicle, passenger); + ((WorldServer) this.world).getServer().getPluginManager().callEvent(destroyEvent); + + if (destroyEvent.isCancelled()) { + this.a = 40; // Maximize damage so this doesn't get triggered again right away + return true; + } + // CraftBukkit end + this.a(Item.MINECART.id, 1, 0.0F); if (this.d == 1) { this.a(Block.CHEST.id, 1, 0.0F);