Example #1
0
  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;
    }
  }