summaryrefslogtreecommitdiffstats
path: root/src/main/java/net/minecraft/server/EntityHuman.java
diff options
context:
space:
mode:
authorNate Mortensen <nate.richard.mortensen@gmail.com>2013-07-12 16:45:42 -0600
committerNate Mortensen <nate.richard.mortensen@gmail.com>2013-07-13 13:29:32 -0600
commitcebc247b78e14c7bc236d69010e1000d53be28ef (patch)
treea54345c2058257476570d19aba1572955c9da659 /src/main/java/net/minecraft/server/EntityHuman.java
parent67f15266dae4d2963d5351fb20f40de63acd721e (diff)
downloadcraftbukkit-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.java10
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
}