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>
int main() {
dpp::snowflake file_id = std::get<dpp::snowflake>(event.get_parameter("file"));
dpp::attachment att = event.command.get_resolved_attachment(file_id);
event.reply(att.url);
}
});
if (dpp::run_once<struct register_bot_commands>()) {
bot.global_command_create(newcommand);
}
});
return 0;
}
The cluster class represents a group of shards and a command queue for sending and receiving commands...
Definition: cluster.h:80
std::string get_command_name() const
Get the command name for a command interaction.
Represents an application command, created by your bot either globally, or on a guild.
Definition: appcommand.h:1339
std::function< void(const dpp::log_t &)> DPP_EXPORT cout_logger()
Get a default logger that outputs to std::cout. e.g.
@ co_attachment
File attachment type.
Definition: appcommand.h:104
@ st_wait
Wait forever on a condition variable. The cluster will spawn threads for each shard and start() will ...
Definition: cluster.h:63
Each command option is a command line parameter. It can have a type (see dpp::command_option_type),...
Definition: appcommand.h:203
interaction command
command interaction
Definition: dispatcher.h:677
Session ready.
Definition: dispatcher.h:960
User has issued a slash command.
Definition: dispatcher.h:694