![]()  | 
  
    D++ (DPP)
    
   C++ Discord API Bot Library 
   | 
 
By default D++ does not cache messages. The example program below demonstrates how to instantiate a custom cache using dpp::cache which will allow you to cache messages and query the cache for messages by ID.
This can be adjusted to cache any type derived from dpp::managed including types you define yourself.
#include <dpp/dpp.h> #include <sstream>   int main() {     /* Create bot */     dpp::cluster bot("token", dpp::i_default_intents | dpp::i_message_content); /* Because we're handling messages, we need to use the "i_message_content" intent! */       /* Create a cache to contain types of dpp::message */     dpp::cache<dpp::message> message_cache;       bot.on_log(dpp::utility::cout_logger());       /* Message handler */     bot.on_message_create([&message_cache](const dpp::message_create_t &event) {         /* Make a permanent pointer using new, for each message to be cached */         dpp::message* m = new dpp::message();           /* Store the message into the pointer by copying it */         *m = event.msg;           /* Store the new pointer to the cache using the store() method */         message_cache.store(m);     });       /* The event is fired when someone issues your commands */     bot.on_slashcommand([&bot, &message_cache](const dpp::slashcommand_t& event) {         /* Check which command they ran */         if (event.command.get_command_name() == "get") {               dpp::message* find_msg = message_cache.find(std::get<std::string>(event.get_parameter("message_id")));               /* If find_msg is null, tell the user and return. */             if (!find_msg) {                 event.reply("There is no message cached with this ID");                 return;             }               event.reply("This message had the following content: " + find_msg->content);         }     });       bot.on_ready([&bot](const dpp::ready_t& event) {         if (dpp::run_once<struct register_bot_commands>()) {               /* Create a new command. */             dpp::slashcommand newcommand("get", "Get the contents of a message that was cached via an id", bot.me.id);               /* Add a parameter option. */             newcommand.add_option(dpp::command_option(dpp::co_string, "message_id", "The ID of the message you want to find", true));               /* Register the command */             bot.global_command_create(newcommand);         }     });       /* Start bot */     bot.start(dpp::st_wait);       return 0; }