diff --git a/docpages/example_code/thinking.cpp b/docpages/example_code/thinking.cpp new file mode 100644 index 0000000000..dce146e619 --- /dev/null +++ b/docpages/example_code/thinking.cpp @@ -0,0 +1,36 @@ +#include + +int main() { + dpp::cluster bot("token"); + + bot.on_log(dpp::utility::cout_logger()); + + /* 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() == "thinking") { + /* + * true for Ephemeral. + * You can set this to false if you want everyone to see the thinking response. + */ + event.thinking(true, [event](const dpp::confirmation_callback_t& callback) { + event.edit_original_response(dpp::message("thonk")); + }); + + } + }); + + bot.on_ready([&bot](const dpp::ready_t& event) { + if (dpp::run_once()) { + /* Create a new global command on ready event */ + dpp::slashcommand newcommand("thinking", "Thinking example...", bot.me.id); + + /* Register the command */ + bot.global_command_create(newcommand); + } + }); + + bot.start(dpp::st_wait); + + return 0; +} diff --git a/docpages/example_programs/interactions_and_components.md b/docpages/example_programs/interactions_and_components.md index 0112f192bb..44f2ce7e7b 100644 --- a/docpages/example_programs/interactions_and_components.md +++ b/docpages/example_programs/interactions_and_components.md @@ -8,3 +8,4 @@ Interactions are a unified way provided by Discord to handle \ref slashcommands * \subpage components-menu * \subpage modal-dialog-interactions * \subpage context-menu +* \subpage thinking diff --git a/docpages/example_programs/interactions_and_components/thinking.md b/docpages/example_programs/interactions_and_components/thinking.md new file mode 100644 index 0000000000..87bb2a09aa --- /dev/null +++ b/docpages/example_programs/interactions_and_components/thinking.md @@ -0,0 +1,9 @@ +\page thinking Thinking + +A common mistake people do is use `event.thinking` with `event.reply`, however, they always run into the `Interaction has already been acknowledged.` error! The reason for this is because `event.thinking` is a response to the interaction, meaning you have acknowledged it! You should use dpp::interaction_create_t::edit_original_response instead. + +Below is an example, showing how you should properly use the thinking method. + +\include{cpp} thinking.cpp + +This will make the bot think briefly, then change the response to "thonk"!