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:82
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:999
std::function< void(const dpp::log_t &)> DPP_EXPORT cout_logger()
Get a default logger that outputs to std::cout. e.g.
@ co_attachment
Definition: appcommand.h:71
@ st_wait
Wait forever on a condition variable. The cluster will spawn threads for each shard and start() will ...
Definition: cluster.h:65
Each command option is a command line parameter. It can have a type (see dpp::command_option_type),...
Definition: appcommand.h:155
interaction command
command interaction
Definition: dispatcher.h:643
Session ready.
Definition: dispatcher.h:898
User has issued a slash command.
Definition: dispatcher.h:660