public void onMinecartClickedEvent(MinecartClickedEvent event) {
    if (event.isActionTaken()) {
      return;
    }
    MinecartManiaMinecart minecart = event.getMinecart();
    if (StationUtil.isInQueue(minecart)) {
      event.setActionTaken(true);
      return;
    }
    CompassDirection facingDir =
        DirectionUtils.getDirectionFromMinecartRotation(
            (minecart.minecart.getPassenger().getLocation().getYaw() - 90.0F) % 360.0F);

    Vector velocity = (Vector) minecart.getDataValue("preintersection velocity");
    if (velocity == null) {
      return;
    }

    velocity = StationUtil.alterMotionFromDirection(facingDir, velocity);

    // responding to chat direction prompt
    if (minecart.isAtIntersection() && minecart.hasPlayerPassenger()) {
      if (StationUtil.isValidDirection(facingDir, minecart)) {
        int data =
            DirectionUtils.getMinetrackRailDataForDirection(facingDir, minecart.getDirection());
        if (data != -1) {
          MinecartManiaWorld.setBlockData(
              minecart.minecart.getWorld(),
              minecart.getX(),
              minecart.getY(),
              minecart.getZ(),
              data);
        }
        minecart.minecart.setVelocity(velocity);
        minecart.setDataValue("preintersection velocity", null);
      }
      event.setActionTaken(true);
    }
  }