![]() |
D++ (DPP)
C++ Discord API Bot Library
|
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 <dpp/dpp.h> 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<struct register_bot_commands>()) { /* 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; }
This will make the bot think briefly, then change the response to "thonk"!