If your slash command accepts options like user, channel, or role you can get their value, as specified by the user in the command, from parameters. Though parameter gives you only the snowflake id of the passed value.
If you need object of that snowflake, you can get that from the resolved set using its snowflake id.
Below is an example showing how to get a member, passed in command options, using resolved set.
#include <dpp/dpp.h>
int main() {
dpp::snowflake user_id = std::get<dpp::snowflake>(event.get_parameter("user"));
dpp::snowflake role_id = std::get<dpp::snowflake>(event.get_parameter("role"));
dpp::guild_member resolved_member = event.command.get_resolved_member(user_id);
resolved_member.add_role(role_id);
bot.guild_edit_member(resolved_member);
event.reply("Added role");
}
});
if (dpp::run_once<struct register_bot_commands>()) {
bot.global_command_create(add_role);
}
});
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:1397
std::function< void(const dpp::log_t &)> DPP_EXPORT cout_logger()
Get a default logger that outputs to std::cout. e.g.
@ co_role
A role id (snowflake).
Definition: appcommand.h:90
@ co_user
A user snowflake id.
Definition: appcommand.h:80
@ 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:204
interaction command
command interaction
Definition: dispatcher.h:678
Session ready.
Definition: dispatcher.h:961
User has issued a slash command.
Definition: dispatcher.h:695