D++ (DPP)
C++ Discord API Bot Library
Loading...
Searching...
No Matches
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");
/* The event is fired when someone issues your commands */
bot.on_slashcommand([&bot](const dpp::slashcommand_t& event) {
/* Check which command they ran */
if (event.command.get_command_name() == "show") {
/* Get the file id from the parameter attachment. */
dpp::snowflake file_id = std::get<dpp::snowflake>(event.get_parameter("file"));
/* Get the attachment that the user inputted from the file id. */
dpp::attachment att = event.command.get_resolved_attachment(file_id);
/* Reply with the file as a URL. */
event.reply(att.url);
}
});
bot.on_ready([&bot](const dpp::ready_t & event) {
/* Create a new command. */
dpp::slashcommand newcommand("show", "Show an uploaded file", bot.me.id);
/* Add a parameter option. */
newcommand.add_option(dpp::command_option(dpp::co_attachment, "file", "Select an image"));
/* Register the command */
bot.global_command_create(newcommand);
}
});
bot.start(dpp::st_wait);
return 0;
}
The cluster class represents a group of shards and a command queue for sending and receiving commands...
Definition cluster.h:89
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:1436
std::function< void(const dpp::log_t &)> DPP_EXPORT cout_logger()
Get a default logger that outputs to std::cout. e.g.
auto run_once()
Run some code within an if() statement only once.
Definition once.h:41
@ co_attachment
File attachment type.
Definition appcommand.h:109
@ st_wait
Wait forever on a condition variable. The cluster will spawn threads for each shard and start() will ...
Definition cluster.h:72
Each command option is a command line parameter. It can have a type (see dpp::command_option_type),...
Definition appcommand.h:208
interaction command
command interaction
Definition dispatcher.h:789
Session ready.
Definition dispatcher.h:1072
User has issued a slash command.
Definition dispatcher.h:806
D++ 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