discord-application-command-file-upload

# Using File Parameters for Application Commands (Slash Commands)

The program below demonstrates how to use the 'file' type parameter to an application command (slash command). You must first get the `file_id` via `std::get`, and then you can find the attachment details in the 'resolved' section, `event.command.resolved`.

The file is uploaded to Discord's CDN so if you need it locally you should fetch the `.url` value, e.g. by using something like dpp::cluster::request().

    #include<dpp/dpp.h>

    intmain(){
    dpp::clusterbot("token");

    bot.on_log(dpp::utility::cout_logger());

    /*Theeventisfiredwhensomeoneissuesyourcommands*/
    bot.on_slashcommand([&bot](constdpp::slashcommand_t&event){
    /*Checkwhichcommandtheyran*/
    if(event.command.get_command_name()=="show"){
    /*Getthefileidfromtheparameterattachment.*/
    dpp::snowflakefile_id=std::get<dpp::snowflake>(event.get_parameter("file"));

    /*Gettheattachmentthattheuserinputtedfromthefileid.*/
    dpp::attachmentatt=event.command.get_resolved_attachment(file_id);

    /*ReplywiththefileasaURL.*/
    event.reply(att.url);
    }
    });

    bot.on_ready([&bot](constdpp::ready_t&event){
    if(dpp::run_once<struct register_bot_commands>()){
    /*Createanewcommand.*/
    dpp::slashcommandnewcommand("show","Showanuploadedfile",bot.me.id);

    /*Addaparameteroption.*/
    newcommand.add_option(dpp::command_option(dpp::co_attachment,"file","Selectanimage"));

    /*Registerthecommand*/
    bot.global_command_create(newcommand);
    }
    });

    bot.start(dpp::st_wait);

    return0;
    }