#include <dpp/dpp.h>
int main() {
dpp::message m{"Test"};
std::string id{event.command.id.str()};
);
return b.custom_id == id;
}
);
}
});
if (dpp::run_once<struct register_bot_commands>()) {
bot.global_command_create(command);
}
});
}
The cluster class represents a group of shards and a command queue for sending and receiving commands...
Definition: cluster.h:82
event_router_t< button_click_t > on_button_click
Called when a button is clicked attached to a message. Button clicks are triggered by discord when bu...
Definition: cluster.h:508
Represents the component object. A component is a clickable button or drop down list within a discord...
Definition: message.h:221
component & set_id(const std::string &id)
Set the id of the component. For action rows, this field is ignored. Setting the id will auto-set the...
component & set_label(const std::string &label)
Set the label of the component, e.g. button text. For action rows, this field is ignored....
component & set_type(component_type ct)
Set the type of the component. Button components (type dpp::cot_button) should always be contained wi...
component & add_component(const component &c)
Add a sub-component, only valid for action rows. Adding subcomponents to a component will automatical...
class dpp::cluster * creator
Owning cluster.
Definition: discordclient.h:277
std::string get_command_name() const
Get the command name for a command interaction.
snowflake id
Unique ID of object set by Discord. This value contains a timestamp, worker ID, internal server ID,...
Definition: managed.h:39
Represents an application command, created by your bot either globally, or on a guild.
Definition: appcommand.h:999
constexpr const char m[]
Definition: unicode_emoji.h:5117
std::function< void(const dpp::log_t &)> DPP_EXPORT cout_logger()
Get a default logger that outputs to std::cout. e.g.
@ i_message_content
Intent for receipt of message content.
Definition: intents.h:65
@ i_default_intents
Default D++ intents (all non-privileged intents)
Definition: intents.h:73
@ ir_deferred_update_message
for components, acknowledge an interaction and edit the original message later; the user does not see...
Definition: appcommand.h:295
@ st_wait
Wait forever on a condition variable. The cluster will spawn threads for each shard and start() will ...
Definition: cluster.h:65
@ cot_button
Clickable button.
Definition: message.h:42
class discord_client * from
Shard the event came from. Note that for some events, notably voice events, this may be nullptr.
Definition: dispatcher.h:83
void edit_original_response(const message &m, command_completion_event_t callback=utility::log_error()) const
Edit original response message for this interaction.
interaction command
command interaction
Definition: dispatcher.h:585
dpp::async< dpp::confirmation_callback_t > co_reply() const
Acknowledge interaction without displaying a message to the user, for use with button and select menu...
Extremely light coroutine object designed to send off a coroutine to execute on its own....
Definition: job.h:46
Represents messages sent and received on Discord.
Definition: message.h:1180
Session ready.
Definition: dispatcher.h:877
User has issued a slash command.
Definition: dispatcher.h:607
Note that there is a problem with that! If the user never clicks your button, or if the message gets deleted, your coroutine will be stuck waiting... And waiting... Forever until your bot shuts down, occupying a space in memory. This is where the next example comes into play as a solution, with a button that expires with time.