diff options
author | Nate Mortensen <nate.richard.mortensen@gmail.com> | 2013-07-12 16:45:42 -0600 |
---|---|---|
committer | Nate Mortensen <nate.richard.mortensen@gmail.com> | 2013-07-13 13:29:32 -0600 |
commit | cebc247b78e14c7bc236d69010e1000d53be28ef (patch) | |
tree | a54345c2058257476570d19aba1572955c9da659 /src/main/java/net/minecraft/server/EntityHuman.java | |
parent | 67f15266dae4d2963d5351fb20f40de63acd721e (diff) | |
download | craftbukkit-cebc247b78e14c7bc236d69010e1000d53be28ef.tar craftbukkit-cebc247b78e14c7bc236d69010e1000d53be28ef.tar.gz craftbukkit-cebc247b78e14c7bc236d69010e1000d53be28ef.tar.lz craftbukkit-cebc247b78e14c7bc236d69010e1000d53be28ef.tar.xz craftbukkit-cebc247b78e14c7bc236d69010e1000d53be28ef.zip |
Correctly fire VehicleExitEvent. Fixes BUKKIT-3761
This change makes it so that EntityHuman#setPassengerOf(Entity) invokes
its parent method when leaving vehicles so that VehicleExitEvent is fired
for players leaving vehicles.
This change also fixes BUKKIT-2110, making it so VehicleExitEvent
correctly handles cancellation. The implementation of VehicleExitEvent
completely ignored the cancellation state of the event, making it so that
cancelling the event had no effect. Cancelling a VehicleExitEvent now
causes the entity to remain inside of the vehicle, with no visual stutter.
Diffstat (limited to 'src/main/java/net/minecraft/server/EntityHuman.java')
-rw-r--r-- | src/main/java/net/minecraft/server/EntityHuman.java | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java index 963bc55c..e1a3ca11 100644 --- a/src/main/java/net/minecraft/server/EntityHuman.java +++ b/src/main/java/net/minecraft/server/EntityHuman.java @@ -304,6 +304,10 @@ public abstract class EntityHuman extends EntityLiving implements ICommandListen public void setPassengerOf(Entity entity) { // CraftBukkit end if (this.vehicle != null && entity == null) { + // CraftBukkit start - use parent method instead to correctly fire VehicleExitEvent + Entity originalVehicle = this.vehicle; + // First statement moved down, second statement handled in parent method. + /* if (!this.world.isStatic) { this.l(this.vehicle); } @@ -313,6 +317,12 @@ public abstract class EntityHuman extends EntityLiving implements ICommandListen } this.vehicle = null; + */ + super.setPassengerOf(entity); + if (!this.world.isStatic && this.vehicle == null) { + this.l(originalVehicle); + } + // CraftBukkit end } else { super.setPassengerOf(entity); // CraftBukkit - call new parent } |