diff options
author | Sam Wilson <sam.wilson@gmail.com> | 2011-12-16 12:31:00 -0800 |
---|---|---|
committer | Andrew Ardill <andrew.ardill@gmail.com> | 2011-12-19 18:22:38 +1100 |
commit | a7744ac751842e1adbeb1ee125bf8be093d4e0bc (patch) | |
tree | fe73a17b76a980032700cfce0542b81e9a4dca5c /src/main/java/net/minecraft/server/EntityMinecart.java | |
parent | 2c72f9f5af3a2ed7dd2982595f73d1935270efc0 (diff) | |
download | craftbukkit-a7744ac751842e1adbeb1ee125bf8be093d4e0bc.tar craftbukkit-a7744ac751842e1adbeb1ee125bf8be093d4e0bc.tar.gz craftbukkit-a7744ac751842e1adbeb1ee125bf8be093d4e0bc.tar.lz craftbukkit-a7744ac751842e1adbeb1ee125bf8be093d4e0bc.tar.xz craftbukkit-a7744ac751842e1adbeb1ee125bf8be093d4e0bc.zip |
Prevent VehicleEnterEvent being sent when player exits vehicle.
Fix for BUKKIT-223.
Issue BUKKIT-223: When a player exits a minecart or boat, both a
VehicleExitEvent and a VehicleEnterEvent are fired. Only the
VehicleExitEvent should fire.
Reason for bug: This occurs because the VehicleEnterEvent is fired in
EntityBoat.b and EntityMinecart.b *any* time a player right-clicks on
a vehicle, whether the right-click is to enter the vehicle or exit it.
Fix: By moving the creation of VehicleEnterEvents from EntityBoat.b
and EntityMinecart.b to Entity.setPassengerOf, we can create either a
VehicleEnterEvent or a VehicleExitEvent, depending on whether the
player is entering or exiting a vehicle.
Diffstat (limited to 'src/main/java/net/minecraft/server/EntityMinecart.java')
-rw-r--r-- | src/main/java/net/minecraft/server/EntityMinecart.java | 20 |
1 files changed, 1 insertions, 19 deletions
diff --git a/src/main/java/net/minecraft/server/EntityMinecart.java b/src/main/java/net/minecraft/server/EntityMinecart.java index b50d5bcc..4d755d0a 100644 --- a/src/main/java/net/minecraft/server/EntityMinecart.java +++ b/src/main/java/net/minecraft/server/EntityMinecart.java @@ -725,14 +725,7 @@ public class EntityMinecart extends Entity implements IInventory { } if (entity instanceof EntityLiving && !(entity instanceof EntityHuman) && this.type == 0 && this.motX * this.motX + this.motZ * this.motZ > 0.01D && this.passenger == null && entity.vehicle == null) { - if (!collisionEvent.isPickupCancelled()) { - VehicleEnterEvent enterEvent = new VehicleEnterEvent(vehicle, hitEntity); - this.world.getServer().getPluginManager().callEvent(enterEvent); - - if (!enterEvent.isCancelled()) { - entity.mount(this); - } - } + entity.mount(this); } // CraftBukkit end @@ -857,17 +850,6 @@ public class EntityMinecart extends Entity implements IInventory { } if (!this.world.isStatic) { - // CraftBukkit start - org.bukkit.entity.Entity player = (entityhuman == null) ? null : entityhuman.getBukkitEntity(); - - VehicleEnterEvent event = new VehicleEnterEvent((Vehicle) this.getBukkitEntity(), player); - this.world.getServer().getPluginManager().callEvent(event); - - if (event.isCancelled()) { - return true; - } - // CraftBukkit end - entityhuman.mount(this); } } else if (this.type == 1) { |