public void setPassengerOf(Entity entity) { // b(null) doesn't really fly for overloaded methods, // so this method is needed // CraftBukkit end this.d = 0.0D; this.e = 0.0D; if (entity == null) { if (this.vehicle != null) { // CraftBukkit start if ((this.getBukkitEntity() instanceof LivingEntity) && (vehicle.getBukkitEntity() instanceof CraftVehicle)) { CraftVehicle cvehicle = (CraftVehicle) vehicle.getBukkitEntity(); LivingEntity living = (LivingEntity) getBukkitEntity(); VehicleExitEvent event = new VehicleExitEvent(cvehicle, living); ((WorldServer) world).getServer().getPluginManager().callEvent(event); } // CraftBukkit end this.setPositionRotation( this.vehicle.locX, this.vehicle.boundingBox.b + (double) this.vehicle.width, this.vehicle.locZ, this.yaw, this.pitch); this.vehicle.passenger = null; } this.vehicle = null; } else if (this.vehicle == entity) { // CraftBukkit start if ((this.getBukkitEntity() instanceof LivingEntity) && (vehicle.getBukkitEntity() instanceof CraftVehicle)) { CraftVehicle cvehicle = (CraftVehicle) vehicle.getBukkitEntity(); LivingEntity living = (LivingEntity) getBukkitEntity(); VehicleExitEvent event = new VehicleExitEvent(cvehicle, living); ((WorldServer) world).getServer().getPluginManager().callEvent(event); } // CraftBukkit end this.vehicle.passenger = null; this.vehicle = null; this.setPositionRotation( entity.locX, entity.boundingBox.b + (double) entity.width, entity.locZ, this.yaw, this.pitch); } else { if (this.vehicle != null) { this.vehicle.passenger = null; } if (entity.passenger != null) { entity.passenger.vehicle = null; } this.vehicle = entity; entity.passenger = this; } }