D++ (DPP)
C++ Discord API Bot Library
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>
int main()
{
dpp::cluster bot("token");
bot.on_interaction_create([&bot](const dpp::interaction_create_t & event) {
dpp::command_interaction cmd_data = std::get<dpp::command_interaction>(event.command.data);
if (cmd_data.name == "show") {
dpp::snowflake file_id = std::get<dpp::snowflake>(event.get_parameter("file"));
auto iter = event.command.resolved.attachments.find(file_id);
if (iter != event.command.resolved.attachments.end()) {
const dpp::attachment& att = iter->second;
event.reply(att.url);
}
}
}
});
bot.on_ready([&bot](const dpp::ready_t & event) {
dpp::slashcommand newcommand;
newcommand.set_name("show")
.set_description("Show an uploaded file")
.set_application_id(bot.me.id)
.add_option(dpp::command_option(dpp::co_attachment, "file", "Select an image"));
bot.global_command_create(newcommand);
});
bot.start(false);
return 0;
}
The cluster class represents a group of shards and a command queue for sending and receiving commands...
Definition: cluster.h:392
uint8_t type
the type of interaction
Definition: appcommand.h:589
Represents an application command, created by your bot either globally, or on a guild.
Definition: appcommand.h:762
slashcommand & add_option(const command_option &o)
Add an option (parameter)
slashcommand & set_name(const std::string &n)
Set the name of the command.
@ it_application_command
application command (slash command)
Definition: appcommand.h:485
@ co_attachment
Definition: appcommand.h:69
Each command option is a command line parameter. It can have a type (see dpp::command_option_type),...
Definition: appcommand.h:137
Create interaction.
Definition: dispatcher.h:283
interaction command
command interaction
Definition: dispatcher.h:395
Session ready.
Definition: dispatcher.h:601
D++ Library version 10.0.35D++ Library version 10.0.34D++ Library version 10.0.33D++ Library version 10.0.32D++ Library version 10.0.31D++ Library version 10.0.30D++ Library version 10.0.29D++ Library version 10.0.28D++ Library version 10.0.27D++ Library version 10.0.26D++ Library version 10.0.25D++ Library version 10.0.24D++ Library version 10.0.23D++ Library version 10.0.22D++ Library version 10.0.21D++ Library version 10.0.20D++ Library version 10.0.19D++ Library version 10.0.18D++ Library version 10.0.17D++ Library version 10.0.16D++ Library version 10.0.15D++ Library version 10.0.14D++ Library version 10.0.13D++ Library version 10.0.12D++ Library version 10.0.11D++ Library version 10.0.10D++ Library version 10.0.9D++ Library version 10.0.8D++ Library version 10.0.7D++ Library version 10.0.6D++ Library version 10.0.5D++ Library version 10.0.4D++ Library version 10.0.3D++ Library version 10.0.2D++ Library version 10.0.1D++ Library version 10.0.0D++ Library version 9.0.19D++ Library version 9.0.18D++ Library version 9.0.17D++ Library version 9.0.16D++ Library version 9.0.15D++ Library version 9.0.14D++ Library version 9.0.13D++ Library version 9.0.12D++ Library version 9.0.11D++ Library version 9.0.10D++ Library version 9.0.9D++ Library version 9.0.8D++ Library version 9.0.7D++ Library version 9.0.6D++ Library version 9.0.5D++ Library version 9.0.4D++ Library version 9.0.3D++ Library version 9.0.2D++ Library version 9.0.1D++ Library version 9.0.0D++ Library version 1.0.2D++ Library version 1.0.1D++ Library version 1.0.0