| D++ (DPP) C++ Discord API Bot Library

Search
Loading...
Searching...
No Matches
dpp::cluster Class Reference

The cluster class represents a group of shards and a command queue for sending and receiving commands from discord via HTTP. You should usually instantiate a cluster object at the very least to make use of the library. More...

`#include <cluster.h>`

Collaboration diagram for dpp::cluster:
[legend]

## Public Member Functions

| cluster (const cluster &&)=delete
| dpp::cluster is non-moveable
| cluster (const cluster &)=delete
| dpp::cluster is non-copyable
| cluster (const std::string &token, uint32_t intents=i_default_intents, uint32_t shards=0, uint32_t cluster_id=0, uint32_t maxclusters=1, bool compressed=true, cache_policy_t policy=cache_policy::cpol_default, uint32_t pool_threads=std::thread::hardware_concurrency()/2)
| Constructor for creating a cluster. All but the token are optional.
| cluster (uint32_t pool_threads=std::thread::hardware_concurrency()/2)
| Constructor for creating a cluster without a token. A cluster created without a token has no shards, and just runs the event loop. You can use this to make asynchronous HTTP requests via e.g. dpp::cluster::request without having to connect to a websocket to receive shard events.
virtual | ~cluster ()
| Destroy the cluster object.
size_t | active_requests ()
| Get the number of currently active HTTP(S) requests active in the cluster. This total includes all in-flight API requests and calls to dpp::cluster::request(). Note that once a request is passed to the thread pool it is no longer counted here.
void | application_emoji_create (const class emoji &newemoji, command_completion_event_t callback=utility::log_error())
| Create an Application Emoji.
void | application_emoji_delete (snowflake emoji_id, command_completion_event_t callback=utility::log_error())
| Delete an Application Emoji.
void | application_emoji_edit (const class emoji &newemoji, command_completion_event_t callback=utility::log_error())
| Edit an Application Emoji.
void | application_emoji_get (snowflake emoji_id, command_completion_event_t callback=utility::log_error())
| Get an Application Emoji.
void | application_emojis_get (command_completion_event_t callback=utility::log_error())
| List all Application Emojis.
void | application_role_connection_get (snowflake application_id, command_completion_event_t callback)
| Get the application's role connection metadata records.
void | application_role_connection_update (snowflake application_id, const std::vector< application_role_connection_metadata > &connection_metadata, command_completion_event_t callback=utility::log_error())
| Update the application's role connection metadata records.
void | automod_rule_create (snowflake guild_id, const automod_rule &r, command_completion_event_t callback=utility::log_error())
| Create an auto moderation rule.
void | automod_rule_delete (snowflake guild_id, snowflake rule_id, command_completion_event_t callback=utility::log_error())
| Delete an auto moderation rule.
void | automod_rule_edit (snowflake guild_id, const automod_rule &r, command_completion_event_t callback=utility::log_error())
| Edit an auto moderation rule.
void | automod_rule_get (snowflake guild_id, snowflake rule_id, command_completion_event_t callback)
| Get a single auto moderation rule.
void | automod_rules_get (snowflake guild_id, command_completion_event_t callback)
| Get all auto moderation rules for a guild.
void | channel_create (const class channel &c, command_completion_event_t callback=utility::log_error())
| Create a channel.
void | channel_delete (snowflake channel_id, command_completion_event_t callback=utility::log_error())
| Delete a channel.
void | channel_delete_permission (const class channel &c, snowflake overwrite_id, command_completion_event_t callback=utility::log_error())
| Remove a permission from a channel.
void | channel_edit (const class channel &c, command_completion_event_t callback=utility::log_error())
| Edit a channel.
void | channel_edit_permissions (const class channel &c, const snowflake overwrite_id, const uint64_t allow, const uint64_t deny, const bool member, command_completion_event_t callback=utility::log_error())
| Edit a channel's permissions.
void | channel_edit_permissions (const snowflake channel_id, const snowflake overwrite_id, const uint64_t allow, const uint64_t deny, const bool member, command_completion_event_t callback=utility::log_error())
| Edit a channel's permissions.
void | channel_edit_positions (const std::vector< channel > &c, command_completion_event_t callback=utility::log_error())
| Edit multiple channels positions.
void | channel_follow_news (const class channel &c, snowflake target_channel_id, command_completion_event_t callback=utility::log_error())
| Follow an announcement (news) channel.
void | channel_get (snowflake c, command_completion_event_t callback)
| Get a channel.
void | channel_invite_create (const class channel &c, const class invite &i, command_completion_event_t callback=utility::log_error())
| Create invite for a channel.
void | channel_invites_get (const class channel &c, command_completion_event_t callback)
| Get invites for a channel.
void | channel_pins_get (snowflake channel_id, command_completion_event_t callback)
| Get a channel's pins.
void | channel_pins_get (snowflake channel_id, std::optional< time_t > before, std::optional< uint64_t > limit, command_completion_event_t callback)
| Get a channel's pins.
void | channel_set_voice_status (snowflake channel_id, const std::string &status, command_completion_event_t callback=utility::log_error())
| Set the status of a voice channel.
void | channel_typing (const class channel &c, command_completion_event_t callback=utility::log_error())
| Trigger channel typing indicator.
void | channel_typing (snowflake cid, command_completion_event_t callback=utility::log_error())
| Trigger channel typing indicator.
void | channels_get (snowflake guild_id, command_completion_event_t callback)
| Get all channels for a guild.
cluster & | clear_audit_reason ()
| Clear the audit log reason for the next REST call to be made. This is set per-thread, so you must ensure that if you call this method, your request that is associated with the reason happens on the same thread where you set the reason. Once the next call is made, the audit log reason is cleared for this thread automatically.
async< confirmation_callback_t > | co_application_emoji_create (const class emoji &newemoji)
| Create an Application Emoji.
async< confirmation_callback_t > | co_application_emoji_create (const class emoji &newemoji)
| Create an Application Emoji.
async< confirmation_callback_t > | co_application_emoji_delete (snowflake emoji_id)
| Delete an Application Emoji.
async< confirmation_callback_t > | co_application_emoji_delete (snowflake emoji_id)
| Delete an Application Emoji.
async< confirmation_callback_t > | co_application_emoji_edit (const class emoji &newemoji)
| Edit an Application Emoji.
async< confirmation_callback_t > | co_application_emoji_edit (const class emoji &newemoji)
| Edit an Application Emoji.
async< confirmation_callback_t > | co_application_emoji_get (snowflake emoji_id)
| Get an Application Emoji.
async< confirmation_callback_t > | co_application_emoji_get (snowflake emoji_id)
| Get an Application Emoji.
async< confirmation_callback_t > | co_application_emojis_get ()
| List all Application Emojis.
async< confirmation_callback_t > | co_application_emojis_get ()
| List all Application Emojis.
async< confirmation_callback_t > | co_application_role_connection_get (snowflake application_id)
| Get the application's role connection metadata records.
async< confirmation_callback_t > | co_application_role_connection_get (snowflake application_id)
| Get the application's role connection metadata records.
async< confirmation_callback_t > | co_application_role_connection_update (snowflake application_id, const std::vector< application_role_connection_metadata > &connection_metadata)
| Update the application's role connection metadata records.
async< confirmation_callback_t > | co_application_role_connection_update (snowflake application_id, const std::vector< application_role_connection_metadata > &connection_metadata)
| Update the application's role connection metadata records.
async< confirmation_callback_t > | co_automod_rule_create (snowflake guild_id, const automod_rule &r)
| Create an auto moderation rule.
async< confirmation_callback_t > | co_automod_rule_create (snowflake guild_id, const automod_rule &r)
| Create an auto moderation rule.
async< confirmation_callback_t > | co_automod_rule_delete (snowflake guild_id, snowflake rule_id)
| Delete an auto moderation rule.
async< confirmation_callback_t > | co_automod_rule_delete (snowflake guild_id, snowflake rule_id)
| Delete an auto moderation rule.
async< confirmation_callback_t > | co_automod_rule_edit (snowflake guild_id, const automod_rule &r)
| Edit an auto moderation rule.
async< confirmation_callback_t > | co_automod_rule_edit (snowflake guild_id, const automod_rule &r)
| Edit an auto moderation rule.
async< confirmation_callback_t > | co_automod_rule_get (snowflake guild_id, snowflake rule_id)
| Get a single auto moderation rule.
async< confirmation_callback_t > | co_automod_rule_get (snowflake guild_id, snowflake rule_id)
| Get a single auto moderation rule.
async< confirmation_callback_t > | co_automod_rules_get (snowflake guild_id)
| Get all auto moderation rules for a guild.
async< confirmation_callback_t > | co_automod_rules_get (snowflake guild_id)
| Get all auto moderation rules for a guild.
async< confirmation_callback_t > | co_channel_create (const class channel &c)
| Create a channel.
async< confirmation_callback_t > | co_channel_create (const class channel &c)
| Create a channel.
async< confirmation_callback_t > | co_channel_delete (snowflake channel_id)
| Delete a channel.
async< confirmation_callback_t > | co_channel_delete (snowflake channel_id)
| Delete a channel.
async< confirmation_callback_t > | co_channel_delete_permission (const class channel &c, snowflake overwrite_id)
| Remove a permission from a channel.
async< confirmation_callback_t > | co_channel_delete_permission (const class channel &c, snowflake overwrite_id)
| Remove a permission from a channel.
async< confirmation_callback_t > | co_channel_edit (const class channel &c)
| Edit a channel.
async< confirmation_callback_t > | co_channel_edit (const class channel &c)
| Edit a channel.
async< confirmation_callback_t > | co_channel_edit_permissions (const class channel &c, const snowflake overwrite_id, const uint64_t allow, const uint64_t deny, const bool member)
| Edit a channel's permissions.
async< confirmation_callback_t > | co_channel_edit_permissions (const class channel &c, const snowflake overwrite_id, const uint64_t allow, const uint64_t deny, const bool member)
| Edit a channel's permissions.
async< confirmation_callback_t > | co_channel_edit_permissions (const snowflake channel_id, const snowflake overwrite_id, const uint64_t allow, const uint64_t deny, const bool member)
| Edit a channel's permissions.
async< confirmation_callback_t > | co_channel_edit_permissions (const snowflake channel_id, const snowflake overwrite_id, const uint64_t allow, const uint64_t deny, const bool member)
| Edit a channel's permissions.
async< confirmation_callback_t > | co_channel_edit_positions (const std::vector< channel > &c)
| Edit multiple channels positions.
async< confirmation_callback_t > | co_channel_edit_positions (const std::vector< channel > &c)
| Edit multiple channels positions.
async< confirmation_callback_t > | co_channel_follow_news (const class channel &c, snowflake target_channel_id)
| Follow an announcement (news) channel.
async< confirmation_callback_t > | co_channel_follow_news (const class channel &c, snowflake target_channel_id)
| Follow an announcement (news) channel.
async< confirmation_callback_t > | co_channel_get (snowflake c)
| Get a channel.
async< confirmation_callback_t > | co_channel_get (snowflake c)
| Get a channel.
async< confirmation_callback_t > | co_channel_invite_create (const class channel &c, const class invite &i)
| Create invite for a channel.
async< confirmation_callback_t > | co_channel_invite_create (const class channel &c, const class invite &i)
| Create invite for a channel.
async< confirmation_callback_t > | co_channel_invites_get (const class channel &c)
| Get invites for a channel.
async< confirmation_callback_t > | co_channel_invites_get (const class channel &c)
| Get invites for a channel.
async< confirmation_callback_t > | co_channel_pins_get (snowflake channel_id)
| Get a channel's pins.
async< confirmation_callback_t > | co_channel_pins_get (snowflake channel_id)
| Get a channel's pins.
async< confirmation_callback_t > | co_channel_pins_get (snowflake channel_id, std::optional< time_t > before, std::optional< uint64_t > limit)
| Get a channel's pins.
async< confirmation_callback_t > | co_channel_pins_get (snowflake channel_id, std::optional< time_t > before, std::optional< uint64_t > limit)
| Get a channel's pins.
async< confirmation_callback_t > | co_channel_set_voice_status (snowflake channel_id, const std::string &status)
| Set the status of a voice channel.
async< confirmation_callback_t > | co_channel_set_voice_status (snowflake channel_id, const std::string &status)
| Set the status of a voice channel.
async< confirmation_callback_t > | co_channel_typing (const class channel &c)
| Trigger channel typing indicator.
async< confirmation_callback_t > | co_channel_typing (const class channel &c)
| Trigger channel typing indicator.
async< confirmation_callback_t > | co_channel_typing (snowflake cid)
| Trigger channel typing indicator.
async< confirmation_callback_t > | co_channel_typing (snowflake cid)
| Trigger channel typing indicator.
async< confirmation_callback_t > | co_channels_get (snowflake guild_id)
| Get all channels for a guild.
async< confirmation_callback_t > | co_channels_get (snowflake guild_id)
| Get all channels for a guild.
async< confirmation_callback_t > | co_create_dm_channel (snowflake user_id)
| Create a dm channel.
async< confirmation_callback_t > | co_create_dm_channel (snowflake user_id)
| Create a dm channel.
async< confirmation_callback_t > | co_create_webhook (const class webhook &wh)
async< confirmation_callback_t > | co_current_application_get ()
| Get current (bot) application.
async< confirmation_callback_t > | co_current_application_get ()
| Get current (bot) application.
async< confirmation_callback_t > | co_current_user_connections_get ()
| Get current user's connections (linked accounts, e.g. steam, xbox). This call requires the oauth2 connections scope and cannot be executed against a bot token.
async< confirmation_callback_t > | co_current_user_connections_get ()
| Get current user's connections (linked accounts, e.g. steam, xbox). This call requires the oauth2 connections scope and cannot be executed against a bot token.
async< confirmation_callback_t > | co_current_user_edit (const std::string &nickname, const std::string &avatar_blob="", const image_type avatar_type=i_png, const std::string &banner_blob="", const image_type banner_type=i_png)
| Edit current (bot) user.
async< confirmation_callback_t > | co_current_user_edit (const std::string &nickname, const std::string &avatar_blob="", const image_type avatar_type=i_png, const std::string &banner_blob="", const image_type banner_type=i_png)
| Edit current (bot) user.
async< confirmation_callback_t > | co_current_user_get ()
| Get current (bot) user.
async< confirmation_callback_t > | co_current_user_get ()
| Get current (bot) user.
async< confirmation_callback_t > | co_current_user_get_dms ()
| Get current user DM channels.
async< confirmation_callback_t > | co_current_user_get_dms ()
| Get current user DM channels.
async< confirmation_callback_t > | co_current_user_get_guilds ()
| Get current (bot) user guilds.
async< confirmation_callback_t > | co_current_user_get_guilds ()
| Get current (bot) user guilds.
async< confirmation_callback_t > | co_current_user_get_voice_state (snowflake guild_id)
| Get the bot's voice state in a guild without a Gateway connection.
async< confirmation_callback_t > | co_current_user_get_voice_state (snowflake guild_id)
| Get the bot's voice state in a guild without a Gateway connection.
async< confirmation_callback_t > | co_current_user_join_thread (snowflake thread_id)
| Join a thread.
async< confirmation_callback_t > | co_current_user_join_thread (snowflake thread_id)
| Join a thread.
async< confirmation_callback_t > | co_current_user_leave_guild (snowflake guild_id)
| Leave a guild.
async< confirmation_callback_t > | co_current_user_leave_guild (snowflake guild_id)
| Leave a guild.
async< confirmation_callback_t > | co_current_user_leave_thread (snowflake thread_id)
| Leave a thread.
async< confirmation_callback_t > | co_current_user_leave_thread (snowflake thread_id)
| Leave a thread.
async< confirmation_callback_t > | co_current_user_set_voice_state (snowflake guild_id, snowflake channel_id, bool suppress=false, time_t request_to_speak_timestamp=0)
| Set the bot's voice state on a stage channel.
async< confirmation_callback_t > | co_current_user_set_voice_state (snowflake guild_id, snowflake channel_id, bool suppress=false, time_t request_to_speak_timestamp=0)
| Set the bot's voice state on a stage channel.
async< confirmation_callback_t > | co_delete_webhook (snowflake webhook_id)
| Delete a webhook.
async< confirmation_callback_t > | co_delete_webhook (snowflake webhook_id)
| Delete a webhook.
async< confirmation_callback_t > | co_delete_webhook_message (const class webhook &wh, snowflake message_id, snowflake thread_id=0)
| Delete webhook message.
async< confirmation_callback_t > | co_delete_webhook_message (const class webhook &wh, snowflake message_id, snowflake thread_id=0)
| Delete webhook message.
async< confirmation_callback_t > | co_delete_webhook_with_token (snowflake webhook_id, const std::string &token)
| Delete webhook with token.
async< confirmation_callback_t > | co_delete_webhook_with_token (snowflake webhook_id, const std::string &token)
| Delete webhook with token.
async< confirmation_callback_t > | co_direct_message_create (snowflake user_id, const message &m)
| Create a direct message, also create the channel for the direct message if needed.
async< confirmation_callback_t > | co_direct_message_create (snowflake user_id, const message &m)
| Create a direct message, also create the channel for the direct message if needed.
async< confirmation_callback_t > | co_edit_webhook (const class webhook &wh)
| Edit webhook.
async< confirmation_callback_t > | co_edit_webhook (const class webhook &wh)
| Edit webhook.
async< confirmation_callback_t > | co_edit_webhook_message (const class webhook &wh, const struct message &m, snowflake thread_id=0)
| Edit webhook message.
async< confirmation_callback_t > | co_edit_webhook_message (const class webhook &wh, const struct message &m, snowflake thread_id=0)
| Edit webhook message.
async< confirmation_callback_t > | co_edit_webhook_with_token (const class webhook &wh)
| Edit webhook with token (token is encapsulated in the webhook object).
async< confirmation_callback_t > | co_edit_webhook_with_token (const class webhook &wh)
| Edit webhook with token (token is encapsulated in the webhook object).
async< confirmation_callback_t > | co_entitlement_consume (snowflake entitlement_id)
| For One-Time Purchase consumable SKUs, marks a given entitlement for the user as consumed.
async< confirmation_callback_t > | co_entitlement_consume (snowflake entitlement_id)
| For One-Time Purchase consumable SKUs, marks a given entitlement for the user as consumed.
async< confirmation_callback_t > | co_entitlement_test_create (const class entitlement &new_entitlement)
| Creates a test entitlement to a given SKU for a given guild or user. Discord will act as though that user or guild has entitlement to your premium offering.
async< confirmation_callback_t > | co_entitlement_test_create (const class entitlement &new_entitlement)
| Creates a test entitlement to a given SKU for a given guild or user. Discord will act as though that user or guild has entitlement to your premium offering.
async< confirmation_callback_t > | co_entitlement_test_delete (snowflake entitlement_id)
| Deletes a currently-active test entitlement. Discord will act as though that user or guild no longer has entitlement to your premium offering.
async< confirmation_callback_t > | co_entitlement_test_delete (snowflake entitlement_id)
| Deletes a currently-active test entitlement. Discord will act as though that user or guild no longer has entitlement to your premium offering.
async< confirmation_callback_t > | co_entitlements_get (snowflake user_id=0, const std::vector< snowflake > &sku_ids={}, snowflake before_id=0, snowflake after_id=0, uint8_t limit=100, snowflake guild_id=0, bool exclude_ended=false)
| Returns all entitlements for a given app, active and expired.
async< confirmation_callback_t > | co_entitlements_get (snowflake user_id=0, const std::vector< snowflake > &sku_ids={}, snowflake before_id=0, snowflake after_id=0, uint8_t limit=100, snowflake guild_id=0, bool exclude_ended=false)
| Returns all entitlements for a given app, active and expired.
async< confirmation_callback_t > | co_execute_webhook (const class webhook &wh, const struct message &m, bool wait=false, snowflake thread_id=0, const std::string &thread_name="")
| Execute webhook.
async< confirmation_callback_t > | co_execute_webhook (const class webhook &wh, const struct message &m, bool wait=false, snowflake thread_id=0, const std::string &thread_name="")
| Execute webhook.
async< confirmation_callback_t > | co_gdm_add (snowflake channel_id, snowflake user_id, const std::string &access_token, const std::string &nick)
| Adds a recipient to a Group DM using their access token.
async< confirmation_callback_t > | co_gdm_add (snowflake channel_id, snowflake user_id, const std::string &access_token, const std::string &nick)
| Adds a recipient to a Group DM using their access token.
async< confirmation_callback_t > | co_gdm_remove (snowflake channel_id, snowflake user_id)
| Removes a recipient from a Group DM.
async< confirmation_callback_t > | co_gdm_remove (snowflake channel_id, snowflake user_id)
| Removes a recipient from a Group DM.
async< confirmation_callback_t > | co_get_channel_webhooks (snowflake channel_id)
| Get channel webhooks.
async< confirmation_callback_t > | co_get_channel_webhooks (snowflake channel_id)
| Get channel webhooks.
async< confirmation_callback_t > | co_get_gateway_bot ()
| Get the gateway information for the bot using the token.
async< confirmation_callback_t > | co_get_gateway_bot ()
| Get the gateway information for the bot using the token.
async< confirmation_callback_t > | co_get_guild_webhooks (snowflake guild_id)
| Get guild webhooks.
async< confirmation_callback_t > | co_get_guild_webhooks (snowflake guild_id)
| Get guild webhooks.
async< confirmation_callback_t > | co_get_voice_regions ()
| Get all voice regions.
async< confirmation_callback_t > | co_get_voice_regions ()
| Get all voice regions.
async< confirmation_callback_t > | co_get_webhook (snowflake webhook_id)
| Get webhook.
async< confirmation_callback_t > | co_get_webhook (snowflake webhook_id)
| Get webhook.
async< confirmation_callback_t > | co_get_webhook_message (const class webhook &wh, snowflake message_id, snowflake thread_id=0)
| Get webhook message.
async< confirmation_callback_t > | co_get_webhook_message (const class webhook &wh, snowflake message_id, snowflake thread_id=0)
| Get webhook message.
async< confirmation_callback_t > | co_get_webhook_with_token (snowflake webhook_id, const std::string &token)
| Get webhook using token.
async< confirmation_callback_t > | co_get_webhook_with_token (snowflake webhook_id, const std::string &token)
| Get webhook using token.
async< confirmation_callback_t > | co_global_bulk_command_create (const std::vector< slashcommand > &commands)
| Create/overwrite global slash commands. Any existing global slash commands will be deleted and replaced with these.
async< confirmation_callback_t > | co_global_bulk_command_create (const std::vector< slashcommand > &commands)
| Create/overwrite global slash commands. Any existing global slash commands will be deleted and replaced with these.
async< confirmation_callback_t > | co_global_bulk_command_delete ()
| Delete all existing global slash commands.
async< confirmation_callback_t > | co_global_bulk_command_delete ()
| Delete all existing global slash commands.
async< confirmation_callback_t > | co_global_command_create (const slashcommand &s)
| Create a global slash command (a bot can have a maximum of 100 of these).
async< confirmation_callback_t > | co_global_command_create (const slashcommand &s)
| Create a global slash command (a bot can have a maximum of 100 of these).
async< confirmation_callback_t > | co_global_command_delete (snowflake id)
| Delete a global slash command (a bot can have a maximum of 100 of these).
async< confirmation_callback_t > | co_global_command_delete (snowflake id)
| Delete a global slash command (a bot can have a maximum of 100 of these).
async< confirmation_callback_t > | co_global_command_edit (const slashcommand &s)
| Edit a global slash command (a bot can have a maximum of 100 of these).
async< confirmation_callback_t > | co_global_command_edit (const slashcommand &s)
| Edit a global slash command (a bot can have a maximum of 100 of these).
async< confirmation_callback_t > | co_global_command_get (snowflake id)
| Get a global slash command.
async< confirmation_callback_t > | co_global_command_get (snowflake id)
| Get a global slash command.
async< confirmation_callback_t > | co_global_commands_get ()
| Get the application's global slash commands.
async< confirmation_callback_t > | co_global_commands_get ()
| Get the application's global slash commands.
async< confirmation_callback_t > | co_guild_add_member (const guild_member &gm, const std::string &access_token)
| Add guild member. Needs a specific oauth2 scope, from which you get the access_token.
async< confirmation_callback_t > | co_guild_add_member (const guild_member &gm, const std::string &access_token)
| Add guild member. Needs a specific oauth2 scope, from which you get the access_token.
async< confirmation_callback_t > | co_guild_auditlog_get (snowflake guild_id, snowflake user_id, uint32_t action_type, snowflake before, snowflake after, uint32_t limit)
| Get the audit log for a guild.
async< confirmation_callback_t > | co_guild_auditlog_get (snowflake guild_id, snowflake user_id, uint32_t action_type, snowflake before, snowflake after, uint32_t limit)
| Get the audit log for a guild.
async< confirmation_callback_t > | co_guild_ban_add (snowflake guild_id, snowflake user_id, uint32_t delete_message_seconds=0)
| Add guild ban.
async< confirmation_callback_t > | co_guild_ban_add (snowflake guild_id, snowflake user_id, uint32_t delete_message_seconds=0)
| Add guild ban.
async< confirmation_callback_t > | co_guild_ban_delete (snowflake guild_id, snowflake user_id)
| Delete guild ban.
async< confirmation_callback_t > | co_guild_ban_delete (snowflake guild_id, snowflake user_id)
| Delete guild ban.
async< confirmation_callback_t > | co_guild_begin_prune (snowflake guild_id, const struct prune &pruneinfo)
| Begin guild prune.
async< confirmation_callback_t > | co_guild_begin_prune (snowflake guild_id, const struct prune &pruneinfo)
| Begin guild prune.
async< confirmation_callback_t > | co_guild_bulk_command_create (const std::vector< slashcommand > &commands, snowflake guild_id)
| Create/overwrite guild slash commands. Any existing guild slash commands on this guild will be deleted and replaced with these.
async< confirmation_callback_t > | co_guild_bulk_command_create (const std::vector< slashcommand > &commands, snowflake guild_id)
| Create/overwrite guild slash commands. Any existing guild slash commands on this guild will be deleted and replaced with these.
async< confirmation_callback_t > | co_guild_bulk_command_delete (snowflake guild_id)
| Delete all existing guild slash commands.
async< confirmation_callback_t > | co_guild_bulk_command_delete (snowflake guild_id)
| Delete all existing guild slash commands.
async< confirmation_callback_t > | co_guild_bulk_command_edit_permissions (const std::vector< slashcommand > &commands, snowflake guild_id)
| Edit/Overwrite the permissions of all existing slash commands in a guild.
async< confirmation_callback_t > | co_guild_bulk_command_edit_permissions (const std::vector< slashcommand > &commands, snowflake guild_id)
| Edit/Overwrite the permissions of all existing slash commands in a guild.
async< confirmation_callback_t > | co_guild_command_create (const slashcommand &s, snowflake guild_id)
| Create a slash command local to a guild.
async< confirmation_callback_t > | co_guild_command_create (const slashcommand &s, snowflake guild_id)
| Create a slash command local to a guild.
async< confirmation_callback_t > | co_guild_command_delete (snowflake id, snowflake guild_id)
| Delete a slash command local to a guild.
async< confirmation_callback_t > | co_guild_command_delete (snowflake id, snowflake guild_id)
| Delete a slash command local to a guild.
async< confirmation_callback_t > | co_guild_command_edit (const slashcommand &s, snowflake guild_id)
| Edit a slash command local to a guild.
async< confirmation_callback_t > | co_guild_command_edit (const slashcommand &s, snowflake guild_id)
| Edit a slash command local to a guild.
async< confirmation_callback_t > | co_guild_command_edit_permissions (const slashcommand &s, snowflake guild_id)
| Edit slash command permissions of a guild.
async< confirmation_callback_t > | co_guild_command_edit_permissions (const slashcommand &s, snowflake guild_id)
| Edit slash command permissions of a guild.
async< confirmation_callback_t > | co_guild_command_get (snowflake id, snowflake guild_id)
| Get a slash command of a guild.
async< confirmation_callback_t > | co_guild_command_get (snowflake id, snowflake guild_id)
| Get a slash command of a guild.
async< confirmation_callback_t > | co_guild_command_get_permissions (snowflake id, snowflake guild_id)
| Get the permissions for a slash command of a guild.
async< confirmation_callback_t > | co_guild_command_get_permissions (snowflake id, snowflake guild_id)
| Get the permissions for a slash command of a guild.
async< confirmation_callback_t > | co_guild_commands_get (snowflake guild_id)
| Get the application's slash commands for a guild.
async< confirmation_callback_t > | co_guild_commands_get (snowflake guild_id)
| Get the application's slash commands for a guild.
async< confirmation_callback_t > | co_guild_commands_get_permissions (snowflake guild_id)
| Get all slash command permissions of a guild.
async< confirmation_callback_t > | co_guild_commands_get_permissions (snowflake guild_id)
| Get all slash command permissions of a guild.
async< confirmation_callback_t > | co_guild_create (const class guild &g)
| Create a guild.
async< confirmation_callback_t > | co_guild_create (const class guild &g)
| Create a guild.
async< confirmation_callback_t > | co_guild_create_from_template (const std::string &code, const std::string &name)
| Create a new guild based on a template.
async< confirmation_callback_t > | co_guild_create_from_template (const std::string &code, const std::string &name)
| Create a new guild based on a template.
async< confirmation_callback_t > | co_guild_current_member_edit (snowflake guild_id, const std::string &nickname, const std::string &banner_blob, const image_type banner_type, const std::string &avatar_blob, const image_type avatar_type, const std::string &bio)
| Modify current member.
async< confirmation_callback_t > | co_guild_current_member_edit (snowflake guild_id, const std::string &nickname, const std::string &banner_blob, const image_type banner_type, const std::string &avatar_blob, const image_type avatar_type, const std::string &bio)
| Modify current member.
async< confirmation_callback_t > | co_guild_delete (snowflake guild_id)
| Delete a guild.
async< confirmation_callback_t > | co_guild_delete (snowflake guild_id)
| Delete a guild.
async< confirmation_callback_t > | co_guild_delete_integration (snowflake guild_id, snowflake integration_id)
| Delete guild integration.
async< confirmation_callback_t > | co_guild_delete_integration (snowflake guild_id, snowflake integration_id)
| Delete guild integration.
async< confirmation_callback_t > | co_guild_edit (const class guild &g)
| Edit a guild.
async< confirmation_callback_t > | co_guild_edit (const class guild &g)
| Edit a guild.
async< confirmation_callback_t > | co_guild_edit_member (const guild_member &gm)
| Edit the properties of an existing guild member.
async< confirmation_callback_t > | co_guild_edit_member (const guild_member &gm)
| Edit the properties of an existing guild member.
async< confirmation_callback_t > | co_guild_edit_onboarding (const struct onboarding &o)
| Edit the guild's onboarding configuration.
async< confirmation_callback_t > | co_guild_edit_onboarding (const struct onboarding &o)
| Edit the guild's onboarding configuration.
async< confirmation_callback_t > | co_guild_edit_welcome_screen (snowflake guild_id, const struct welcome_screen &welcome_screen, bool enabled)
| Edit the guild's welcome screen.
async< confirmation_callback_t > | co_guild_edit_welcome_screen (snowflake guild_id, const struct welcome_screen &welcome_screen, bool enabled)
| Edit the guild's welcome screen.
async< confirmation_callback_t > | co_guild_edit_widget (snowflake guild_id, const class guild_widget &gw)
| Edit guild widget.
async< confirmation_callback_t > | co_guild_edit_widget (snowflake guild_id, const class guild_widget &gw)
| Edit guild widget.
async< confirmation_callback_t > | co_guild_emoji_create (snowflake guild_id, const class emoji &newemoji)
| Create single emoji. You must ensure that the emoji passed contained image data using the emoji::load_image() method.
async< confirmation_callback_t > | co_guild_emoji_create (snowflake guild_id, const class emoji &newemoji)
| Create single emoji. You must ensure that the emoji passed contained image data using the emoji::load_image() method.
async< confirmation_callback_t > | co_guild_emoji_delete (snowflake guild_id, snowflake emoji_id)
| Delete a guild emoji.
async< confirmation_callback_t > | co_guild_emoji_delete (snowflake guild_id, snowflake emoji_id)
| Delete a guild emoji.
async< confirmation_callback_t > | co_guild_emoji_edit (snowflake guild_id, const class emoji &newemoji)
| Edit a single emoji.
async< confirmation_callback_t > | co_guild_emoji_edit (snowflake guild_id, const class emoji &newemoji)
| Edit a single emoji.
async< confirmation_callback_t > | co_guild_emoji_get (snowflake guild_id, snowflake emoji_id)
| Get a single emoji.
async< confirmation_callback_t > | co_guild_emoji_get (snowflake guild_id, snowflake emoji_id)
| Get a single emoji.
async< confirmation_callback_t > | co_guild_emojis_get (snowflake guild_id)
| Get all emojis for a guild.
async< confirmation_callback_t > | co_guild_emojis_get (snowflake guild_id)
| Get all emojis for a guild.
async< confirmation_callback_t > | co_guild_event_create (const scheduled_event &event)
| Create a scheduled event on a guild.
async< confirmation_callback_t > | co_guild_event_create (const scheduled_event &event)
| Create a scheduled event on a guild.
async< confirmation_callback_t > | co_guild_event_delete (snowflake event_id, snowflake guild_id)
| Delete a scheduled event from a guild.
async< confirmation_callback_t > | co_guild_event_delete (snowflake event_id, snowflake guild_id)
| Delete a scheduled event from a guild.
async< confirmation_callback_t > | co_guild_event_edit (const scheduled_event &event)
| Edit/modify a scheduled event on a guild.
async< confirmation_callback_t > | co_guild_event_edit (const scheduled_event &event)
| Edit/modify a scheduled event on a guild.
async< confirmation_callback_t > | co_guild_event_get (snowflake guild_id, snowflake event_id)
| Get a scheduled event for a guild.
async< confirmation_callback_t > | co_guild_event_get (snowflake guild_id, snowflake event_id)
| Get a scheduled event for a guild.
async< confirmation_callback_t > | co_guild_events_get (snowflake guild_id)
| Get all scheduled events for a guild.
async< confirmation_callback_t > | co_guild_events_get (snowflake guild_id)
| Get all scheduled events for a guild.
async< confirmation_callback_t > | co_guild_get (snowflake guild_id)
async< confirmation_callback_t > | co_guild_get_ban (snowflake guild_id, snowflake user_id)
| Get single guild ban.
async< confirmation_callback_t > | co_guild_get_ban (snowflake guild_id, snowflake user_id)
| Get single guild ban.
async< confirmation_callback_t > | co_guild_get_bans (snowflake guild_id, snowflake before, snowflake after, snowflake limit)
| Get guild ban list.
async< confirmation_callback_t > | co_guild_get_bans (snowflake guild_id, snowflake before, snowflake after, snowflake limit)
| Get guild ban list.
async< confirmation_callback_t > | co_guild_get_integrations (snowflake guild_id)
| Get guild integrations.
async< confirmation_callback_t > | co_guild_get_integrations (snowflake guild_id)
| Get guild integrations.
async< confirmation_callback_t > | co_guild_get_invites (snowflake guild_id)
| Get guild invites.
async< confirmation_callback_t > | co_guild_get_invites (snowflake guild_id)
| Get guild invites.
async< confirmation_callback_t > | co_guild_get_member (snowflake guild_id, snowflake user_id)
| Get a guild member.
async< confirmation_callback_t > | co_guild_get_member (snowflake guild_id, snowflake user_id)
| Get a guild member.
async< confirmation_callback_t > | co_guild_get_members (snowflake guild_id, uint16_t limit, snowflake after)
| Get all guild members.
async< confirmation_callback_t > | co_guild_get_members (snowflake guild_id, uint16_t limit, snowflake after)
| Get all guild members.
async< confirmation_callback_t > | co_guild_get_onboarding (snowflake guild_id)
| Get the guild's onboarding configuration.
async< confirmation_callback_t > | co_guild_get_onboarding (snowflake guild_id)
| Get the guild's onboarding configuration.
async< confirmation_callback_t > | co_guild_get_preview (snowflake guild_id)
async< confirmation_callback_t > | co_guild_get_prune_counts (snowflake guild_id, const struct prune &pruneinfo)
| Get prune counts.
async< confirmation_callback_t > | co_guild_get_prune_counts (snowflake guild_id, const struct prune &pruneinfo)
| Get prune counts.
async< confirmation_callback_t > | co_guild_get_vanity (snowflake guild_id)
| Get guild vanity url, if enabled.
async< confirmation_callback_t > | co_guild_get_vanity (snowflake guild_id)
| Get guild vanity url, if enabled.
async< confirmation_callback_t > | co_guild_get_voice_regions (snowflake guild_id)
| Get guild voice regions.
async< confirmation_callback_t > | co_guild_get_voice_regions (snowflake guild_id)
| Get guild voice regions.
async< confirmation_callback_t > | co_guild_get_welcome_screen (snowflake guild_id)
| Get the guild's welcome screen.
async< confirmation_callback_t > | co_guild_get_welcome_screen (snowflake guild_id)
| Get the guild's welcome screen.
async< confirmation_callback_t > | co_guild_get_widget (snowflake guild_id)
| Get guild widget.
async< confirmation_callback_t > | co_guild_get_widget (snowflake guild_id)
| Get guild widget.
async< confirmation_callback_t > | co_guild_member_add_role (snowflake guild_id, snowflake user_id, snowflake role_id)
| Add role to guild member.
async< confirmation_callback_t > | co_guild_member_add_role (snowflake guild_id, snowflake user_id, snowflake role_id)
| Add role to guild member.
async< confirmation_callback_t > | co_guild_member_delete (snowflake guild_id, snowflake user_id)
| Remove (kick) a guild member.
async< confirmation_callback_t > | co_guild_member_delete (snowflake guild_id, snowflake user_id)
| Remove (kick) a guild member.
async< confirmation_callback_t > | co_guild_member_delete_role (snowflake guild_id, snowflake user_id, snowflake role_id)
| Remove role from guild member.
async< confirmation_callback_t > | co_guild_member_delete_role (snowflake guild_id, snowflake user_id, snowflake role_id)
| Remove role from guild member.
async< confirmation_callback_t > | co_guild_member_kick (snowflake guild_id, snowflake user_id)
| Remove (kick) a guild member.
async< confirmation_callback_t > | co_guild_member_kick (snowflake guild_id, snowflake user_id)
| Remove (kick) a guild member.
async< confirmation_callback_t > | co_guild_member_move (const snowflake channel_id, const snowflake guild_id, const snowflake user_id)
| Moves the guild member to a other voice channel, if member is connected to one. Set the channel_id to 0 to disconnect the user.
async< confirmation_callback_t > | co_guild_member_move (const snowflake channel_id, const snowflake guild_id, const snowflake user_id)
| Moves the guild member to a other voice channel, if member is connected to one. Set the channel_id to 0 to disconnect the user.
async< confirmation_callback_t > | co_guild_member_remove_role (snowflake guild_id, snowflake user_id, snowflake role_id)
| Remove role from guild member.
async< confirmation_callback_t > | co_guild_member_remove_role (snowflake guild_id, snowflake user_id, snowflake role_id)
| Remove role from guild member.
async< confirmation_callback_t > | co_guild_member_timeout (snowflake guild_id, snowflake user_id, time_t communication_disabled_until)
| Set the timeout of a guild member.
async< confirmation_callback_t > | co_guild_member_timeout (snowflake guild_id, snowflake user_id, time_t communication_disabled_until)
| Set the timeout of a guild member.
async< confirmation_callback_t > | co_guild_member_timeout_remove (snowflake guild_id, snowflake user_id)
| Remove the timeout of a guild member. A shortcut for guild_member_timeout(guild_id, user_id, 0, callback) Fires a Guild Member Update Gateway event.
async< confirmation_callback_t > | co_guild_member_timeout_remove (snowflake guild_id, snowflake user_id)
| Remove the timeout of a guild member. A shortcut for guild_member_timeout(guild_id, user_id, 0, callback) Fires a Guild Member Update Gateway event.
async< confirmation_callback_t > | co_guild_messages_search (snowflake guild_id, const message_search_params &params)
| Search for messages in a guild.
async< confirmation_callback_t > | co_guild_messages_search (snowflake guild_id, const message_search_params &params)
| Search for messages in a guild.
async< confirmation_callback_t > | co_guild_modify_integration (snowflake guild_id, const class integration &i)
| Modify guild integration.
async< confirmation_callback_t > | co_guild_modify_integration (snowflake guild_id, const class integration &i)
| Modify guild integration.
async< confirmation_callback_t > | co_guild_search_members (snowflake guild_id, const std::string &query, uint16_t limit)
| Search for guild members based on whether their username or nickname starts with the given string.
async< confirmation_callback_t > | co_guild_search_members (snowflake guild_id, const std::string &query, uint16_t limit)
| Search for guild members based on whether their username or nickname starts with the given string.
async< confirmation_callback_t > | co_guild_set_nickname (snowflake guild_id, const std::string &nickname)
| Change current user nickname.
async< confirmation_callback_t > | co_guild_set_nickname (snowflake guild_id, const std::string &nickname)
| Change current user nickname.
async< confirmation_callback_t > | co_guild_sticker_create (const sticker &s)
| Create a sticker in a guild.
async< confirmation_callback_t > | co_guild_sticker_create (const sticker &s)
| Create a sticker in a guild.
async< confirmation_callback_t > | co_guild_sticker_delete (snowflake sticker_id, snowflake guild_id)
| Delete a sticker from a guild.
async< confirmation_callback_t > | co_guild_sticker_delete (snowflake sticker_id, snowflake guild_id)
| Delete a sticker from a guild.
async< confirmation_callback_t > | co_guild_sticker_get (snowflake id, snowflake guild_id)
| Get a guild sticker.
async< confirmation_callback_t > | co_guild_sticker_get (snowflake id, snowflake guild_id)
| Get a guild sticker.
async< confirmation_callback_t > | co_guild_sticker_modify (const sticker &s)
| Modify a sticker in a guild.
async< confirmation_callback_t > | co_guild_sticker_modify (const sticker &s)
| Modify a sticker in a guild.
async< confirmation_callback_t > | co_guild_stickers_get (snowflake guild_id)
| Get all guild stickers.
async< confirmation_callback_t > | co_guild_stickers_get (snowflake guild_id)
| Get all guild stickers.
async< confirmation_callback_t > | co_guild_sync_integration (snowflake guild_id, snowflake integration_id)
| Sync guild integration.
async< confirmation_callback_t > | co_guild_sync_integration (snowflake guild_id, snowflake integration_id)
| Sync guild integration.
async< confirmation_callback_t > | co_guild_template_create (snowflake guild_id, const std::string &name, const std::string &description)
| Creates a template for the guild.
async< confirmation_callback_t > | co_guild_template_create (snowflake guild_id, const std::string &name, const std::string &description)
| Creates a template for the guild.
async< confirmation_callback_t > | co_guild_template_delete (snowflake guild_id, const std::string &code)
| Deletes the template.
async< confirmation_callback_t > | co_guild_template_delete (snowflake guild_id, const std::string &code)
| Deletes the template.
async< confirmation_callback_t > | co_guild_template_modify (snowflake guild_id, const std::string &code, const std::string &name, const std::string &description)
| Modifies the template's metadata.
async< confirmation_callback_t > | co_guild_template_modify (snowflake guild_id, const std::string &code, const std::string &name, const std::string &description)
| Modifies the template's metadata.
async< confirmation_callback_t > | co_guild_template_sync (snowflake guild_id, const std::string &code)
| Syncs the template to the guild's current state.
async< confirmation_callback_t > | co_guild_template_sync (snowflake guild_id, const std::string &code)
| Syncs the template to the guild's current state.
async< confirmation_callback_t > | co_guild_templates_get (snowflake guild_id)
| Get guild templates.
async< confirmation_callback_t > | co_guild_templates_get (snowflake guild_id)
| Get guild templates.
async< confirmation_callback_t > | co_interaction_followup_create (const std::string &token, const message &m)
| Create a followup message for an interaction.
async< confirmation_callback_t > | co_interaction_followup_create (const std::string &token, const message &m)
| Create a followup message for an interaction.
async< confirmation_callback_t > | co_interaction_followup_delete (const std::string &token)
| Delete the initial interaction response.
async< confirmation_callback_t > | co_interaction_followup_delete (const std::string &token)
| Delete the initial interaction response.
async< confirmation_callback_t > | co_interaction_followup_edit (const std::string &token, const message &m)
| Edit followup message for an interaction The message ID in the message you pass should be correctly set to that of a followup message you previously sent.
async< confirmation_callback_t > | co_interaction_followup_edit (const std::string &token, const message &m)
| Edit followup message for an interaction The message ID in the message you pass should be correctly set to that of a followup message you previously sent.
async< confirmation_callback_t > | co_interaction_followup_edit_original (const std::string &token, const message &m)
| Edit original followup message for an interaction This is an alias for cluster::interaction_response_edit.
async< confirmation_callback_t > | co_interaction_followup_edit_original (const std::string &token, const message &m)
| Edit original followup message for an interaction This is an alias for cluster::interaction_response_edit.
async< confirmation_callback_t > | co_interaction_followup_get (const std::string &token, snowflake message_id)
| Get the followup message for an interaction.
async< confirmation_callback_t > | co_interaction_followup_get (const std::string &token, snowflake message_id)
| Get the followup message for an interaction.
async< confirmation_callback_t > | co_interaction_followup_get_original (const std::string &token)
| Get the original followup message for an interaction This is an alias for cluster::interaction_response_get_original.
async< confirmation_callback_t > | co_interaction_followup_get_original (const std::string &token)
| Get the original followup message for an interaction This is an alias for cluster::interaction_response_get_original.
async< confirmation_callback_t > | co_interaction_response_create (snowflake interaction_id, const std::string &token, const interaction_response &r)
| Respond to a slash command.
async< confirmation_callback_t > | co_interaction_response_create (snowflake interaction_id, const std::string &token, const interaction_response &r)
| Respond to a slash command.
async< confirmation_callback_t > | co_interaction_response_edit (const std::string &token, const message &m)
| Edit response to a slash command.
async< confirmation_callback_t > | co_interaction_response_edit (const std::string &token, const message &m)
| Edit response to a slash command.
async< confirmation_callback_t > | co_interaction_response_get_original (const std::string &token)
| Get the original response to a slash command.
async< confirmation_callback_t > | co_interaction_response_get_original (const std::string &token)
| Get the original response to a slash command.
async< confirmation_callback_t > | co_invite_delete (const std::string &invitecode)
async< confirmation_callback_t > | co_invite_get (const std::string &invite_code)
| Get details about an invite.
async< confirmation_callback_t > | co_invite_get (const std::string &invite_code)
| Get details about an invite.
async< confirmation_callback_t > | co_message_add_reaction (const struct message &m, const std::string &reaction)
| Add a reaction to a message. The reaction string must be either an emojiname:id or a unicode character.
async< confirmation_callback_t > | co_message_add_reaction (const struct message &m, const std::string &reaction)
| Add a reaction to a message. The reaction string must be either an emojiname:id or a unicode character.
async< confirmation_callback_t > | co_message_add_reaction (snowflake message_id, snowflake channel_id, const std::string &reaction)
| Add a reaction to a message by id. The reaction string must be either an emojiname:id or a unicode character.
async< confirmation_callback_t > | co_message_add_reaction (snowflake message_id, snowflake channel_id, const std::string &reaction)
| Add a reaction to a message by id. The reaction string must be either an emojiname:id or a unicode character.
async< confirmation_callback_t > | co_message_create (const struct message &m)
| Send a message to a channel. The callback function is called when the message has been sent.
async< confirmation_callback_t > | co_message_create (const struct message &m)
| Send a message to a channel. The callback function is called when the message has been sent.
async< confirmation_callback_t > | co_message_crosspost (snowflake message_id, snowflake channel_id)
| Crosspost a message. The callback function is called when the message has been sent.
async< confirmation_callback_t > | co_message_crosspost (snowflake message_id, snowflake channel_id)
| Crosspost a message. The callback function is called when the message has been sent.
async< confirmation_callback_t > | co_message_delete (snowflake message_id, snowflake channel_id)
| Delete a message from a channel. The callback function is called when the message has been edited.
async< confirmation_callback_t > | co_message_delete (snowflake message_id, snowflake channel_id)
| Delete a message from a channel. The callback function is called when the message has been edited.
async< confirmation_callback_t > | co_message_delete_all_reactions (const struct message &m)
| Delete all reactions on a message.
async< confirmation_callback_t > | co_message_delete_all_reactions (const struct message &m)
| Delete all reactions on a message.
async< confirmation_callback_t > | co_message_delete_all_reactions (snowflake message_id, snowflake channel_id)
| Delete all reactions on a message by id.
async< confirmation_callback_t > | co_message_delete_all_reactions (snowflake message_id, snowflake channel_id)
| Delete all reactions on a message by id.
async< confirmation_callback_t > | co_message_delete_bulk (const std::vector< snowflake > &message_ids, snowflake channel_id)
| Bulk delete messages from a channel. The callback function is called when the message has been edited.
async< confirmation_callback_t > | co_message_delete_bulk (const std::vector< snowflake > &message_ids, snowflake channel_id)
| Bulk delete messages from a channel. The callback function is called when the message has been edited.
async< confirmation_callback_t > | co_message_delete_own_reaction (const struct message &m, const std::string &reaction)
| Delete own reaction from a message. The reaction string must be either an emojiname:id or a unicode character.
async< confirmation_callback_t > | co_message_delete_own_reaction (const struct message &m, const std::string &reaction)
| Delete own reaction from a message. The reaction string must be either an emojiname:id or a unicode character.
async< confirmation_callback_t > | co_message_delete_own_reaction (snowflake message_id, snowflake channel_id, const std::string &reaction)
| Delete own reaction from a message by id. The reaction string must be either an emojiname:id or a unicode character.
async< confirmation_callback_t > | co_message_delete_own_reaction (snowflake message_id, snowflake channel_id, const std::string &reaction)
| Delete own reaction from a message by id. The reaction string must be either an emojiname:id or a unicode character.
async< confirmation_callback_t > | co_message_delete_reaction (const struct message &m, snowflake user_id, const std::string &reaction)
| Delete a user's reaction from a message. The reaction string must be either an emojiname:id or a unicode character.
async< confirmation_callback_t > | co_message_delete_reaction (const struct message &m, snowflake user_id, const std::string &reaction)
| Delete a user's reaction from a message. The reaction string must be either an emojiname:id or a unicode character.
async< confirmation_callback_t > | co_message_delete_reaction (snowflake message_id, snowflake channel_id, snowflake user_id, const std::string &reaction)
| Delete a user's reaction from a message by id. The reaction string must be either an emojiname:id or a unicode character.
async< confirmation_callback_t > | co_message_delete_reaction (snowflake message_id, snowflake channel_id, snowflake user_id, const std::string &reaction)
| Delete a user's reaction from a message by id. The reaction string must be either an emojiname:id or a unicode character.
async< confirmation_callback_t > | co_message_delete_reaction_emoji (const struct message &m, const std::string &reaction)
| Delete all reactions on a message using a particular emoji. The reaction string must be either an emojiname:id or a unicode character.
async< confirmation_callback_t > | co_message_delete_reaction_emoji (const struct message &m, const std::string &reaction)
| Delete all reactions on a message using a particular emoji. The reaction string must be either an emojiname:id or a unicode character.
async< confirmation_callback_t > | co_message_delete_reaction_emoji (snowflake message_id, snowflake channel_id, const std::string &reaction)
| Delete all reactions on a message using a particular emoji by id. The reaction string must be either an emojiname:id or a unicode character.
async< confirmation_callback_t > | co_message_delete_reaction_emoji (snowflake message_id, snowflake channel_id, const std::string &reaction)
| Delete all reactions on a message using a particular emoji by id. The reaction string must be either an emojiname:id or a unicode character.
async< confirmation_callback_t > | co_message_edit (const struct message &m)
| Edit a message on a channel. The callback function is called when the message has been edited.
async< confirmation_callback_t > | co_message_edit (const struct message &m)
| Edit a message on a channel. The callback function is called when the message has been edited.
async< confirmation_callback_t > | co_message_edit_flags (const struct message &m)
| Edit the flags of a message on a channel. The callback function is called when the message has been edited.
async< confirmation_callback_t > | co_message_edit_flags (const struct message &m)
| Edit the flags of a message on a channel. The callback function is called when the message has been edited.
async< confirmation_callback_t > | co_message_get (snowflake message_id, snowflake channel_id)
| Get a message.
async< confirmation_callback_t > | co_message_get (snowflake message_id, snowflake channel_id)
| Get a message.
async< confirmation_callback_t > | co_message_get_reactions (const struct message &m, const std::string &reaction, snowflake before, snowflake after, snowflake limit)
| Get reactions on a message for a particular emoji. The reaction string must be either an emojiname:id or a unicode character.
async< confirmation_callback_t > | co_message_get_reactions (const struct message &m, const std::string &reaction, snowflake before, snowflake after, snowflake limit)
| Get reactions on a message for a particular emoji. The reaction string must be either an emojiname:id or a unicode character.
async< confirmation_callback_t > | co_message_get_reactions (snowflake message_id, snowflake channel_id, const std::string &reaction, snowflake before, snowflake after, snowflake limit)
| Get reactions on a message for a particular emoji by id. The reaction string must be either an emojiname:id or a unicode character.
async< confirmation_callback_t > | co_message_get_reactions (snowflake message_id, snowflake channel_id, const std::string &reaction, snowflake before, snowflake after, snowflake limit)
| Get reactions on a message for a particular emoji by id. The reaction string must be either an emojiname:id or a unicode character.
async< confirmation_callback_t > | co_message_pin (snowflake channel_id, snowflake message_id)
| Pin a message.
async< confirmation_callback_t > | co_message_pin (snowflake channel_id, snowflake message_id)
| Pin a message.
async< confirmation_callback_t > | co_message_unpin (snowflake channel_id, snowflake message_id)
| Unpin a message.
async< confirmation_callback_t > | co_message_unpin (snowflake channel_id, snowflake message_id)
| Unpin a message.
async< confirmation_callback_t > | co_messages_get (snowflake channel_id, snowflake around, snowflake before, snowflake after, uint64_t limit)
| Get multiple messages.
async< confirmation_callback_t > | co_messages_get (snowflake channel_id, snowflake around, snowflake before, snowflake after, uint64_t limit)
| Get multiple messages.
async< confirmation_callback_t > | co_nitro_sticker_get (snowflake id)
| Get a nitro sticker.
async< confirmation_callback_t > | co_nitro_sticker_get (snowflake id)
| Get a nitro sticker.
async< confirmation_callback_t > | co_poll_end (const message &m)
| Immediately end a poll.
async< confirmation_callback_t > | co_poll_end (const message &m)
| Immediately end a poll.
async< confirmation_callback_t > | co_poll_end (snowflake message_id, snowflake channel_id)
| Immediately end a poll.
async< confirmation_callback_t > | co_poll_end (snowflake message_id, snowflake channel_id)
| Immediately end a poll.
async< confirmation_callback_t > | co_poll_get_answer_voters (const message &m, uint32_t answer_id, snowflake after, uint64_t limit)
| Get a list of users that voted for this specific answer.
async< confirmation_callback_t > | co_poll_get_answer_voters (const message &m, uint32_t answer_id, snowflake after, uint64_t limit)
| Get a list of users that voted for this specific answer.
async< confirmation_callback_t > | co_poll_get_answer_voters (snowflake message_id, snowflake channel_id, uint32_t answer_id, snowflake after, uint64_t limit)
| Get a list of users that voted for this specific answer.
async< confirmation_callback_t > | co_poll_get_answer_voters (snowflake message_id, snowflake channel_id, uint32_t answer_id, snowflake after, uint64_t limit)
| Get a list of users that voted for this specific answer.
async< http_request_completion_t > | co_request (const std::string &url, http_method method, const std::string &postdata="", const std::string &mimetype="text/plain", const std::multimap< std::string, std::string > &headers={}, const std::string &protocol="1.1")
async< confirmation_callback_t > | co_role_create (const class role &r)
| Create a role on a guild.
async< confirmation_callback_t > | co_role_create (const class role &r)
| Create a role on a guild.
async< confirmation_callback_t > | co_role_delete (snowflake guild_id, snowflake role_id)
| Delete a role.
async< confirmation_callback_t > | co_role_delete (snowflake guild_id, snowflake role_id)
| Delete a role.
async< confirmation_callback_t > | co_role_edit (const class role &r)
| Edit a role on a guild.
async< confirmation_callback_t > | co_role_edit (const class role &r)
| Edit a role on a guild.
async< confirmation_callback_t > | co_roles_edit_position (snowflake guild_id, const std::vector< role > &roles)
| Edit multiple role's position in a guild. Returns a list of all roles of the guild on success.
async< confirmation_callback_t > | co_roles_edit_position (snowflake guild_id, const std::vector< role > &roles)
| Edit multiple role's position in a guild. Returns a list of all roles of the guild on success.
async< confirmation_callback_t > | co_roles_get (snowflake guild_id)
| Get a role for a guild.
async< confirmation_callback_t > | co_roles_get (snowflake guild_id)
| Get a role for a guild.
async< confirmation_callback_t > | co_skus_get ()
| Returns all SKUs for a given application.
async< confirmation_callback_t > | co_skus_get ()
| Returns all SKUs for a given application.
async< timer > | co_sleep (uint64_t seconds)
| Get an awaitable to wait a certain amount of seconds. Use the co_await keyword on its return value to suspend the coroutine until the timer ends.
async< confirmation_callback_t > | co_stage_instance_create (const stage_instance &si)
async< confirmation_callback_t > | co_stage_instance_delete (const snowflake channel_id)
| Delete a stage instance.
async< confirmation_callback_t > | co_stage_instance_delete (const snowflake channel_id)
| Delete a stage instance.
async< confirmation_callback_t > | co_stage_instance_edit (const stage_instance &si)
async< confirmation_callback_t > | co_stage_instance_get (const snowflake channel_id)
| Get the stage instance associated with the channel id, if it exists.
async< confirmation_callback_t > | co_stage_instance_get (const snowflake channel_id)
| Get the stage instance associated with the channel id, if it exists.
async< confirmation_callback_t > | co_sticker_packs_get ()
| Get a list of available sticker packs.
async< confirmation_callback_t > | co_sticker_packs_get ()
| Get a list of available sticker packs.
async< confirmation_callback_t > | co_template_get (const std::string &code)
| Get a template.
async< confirmation_callback_t > | co_template_get (const std::string &code)
| Get a template.
async< confirmation_callback_t > | co_thread_create (const std::string &thread_name, snowflake channel_id, uint16_t auto_archive_duration, channel_type thread_type, bool invitable, uint16_t rate_limit_per_user)
| Create a thread.
async< confirmation_callback_t > | co_thread_create (const std::string &thread_name, snowflake channel_id, uint16_t auto_archive_duration, channel_type thread_type, bool invitable, uint16_t rate_limit_per_user)
| Create a thread.
async< confirmation_callback_t > | co_thread_create_in_forum (const std::string &thread_name, snowflake channel_id, const message &msg, auto_archive_duration_t auto_archive_duration, uint16_t rate_limit_per_user, std::vector< snowflake > applied_tags={})
| Create a thread in a forum or media channel.
async< confirmation_callback_t > | co_thread_create_in_forum (const std::string &thread_name, snowflake channel_id, const message &msg, auto_archive_duration_t auto_archive_duration, uint16_t rate_limit_per_user, std::vector< snowflake > applied_tags={})
| Create a thread in a forum or media channel.
async< confirmation_callback_t > | co_thread_create_with_message (const std::string &thread_name, snowflake channel_id, snowflake message_id, uint16_t auto_archive_duration, uint16_t rate_limit_per_user)
| Create a thread with a message (Discord: ID of a thread is same as message ID).
async< confirmation_callback_t > | co_thread_create_with_message (const std::string &thread_name, snowflake channel_id, snowflake message_id, uint16_t auto_archive_duration, uint16_t rate_limit_per_user)
| Create a thread with a message (Discord: ID of a thread is same as message ID).
async< confirmation_callback_t > | co_thread_edit (const thread &t)
| Edit a thread.
async< confirmation_callback_t > | co_thread_edit (const thread &t)
| Edit a thread.
async< confirmation_callback_t > | co_thread_get (snowflake thread_id)
| Get the thread specified by thread_id. This uses the same call as dpp::cluster::channel_get but returns a thread object.
async< confirmation_callback_t > | co_thread_get (snowflake thread_id)
| Get the thread specified by thread_id. This uses the same call as dpp::cluster::channel_get but returns a thread object.
async< confirmation_callback_t > | co_thread_member_add (snowflake thread_id, snowflake user_id)
| Add a member to a thread.
async< confirmation_callback_t > | co_thread_member_add (snowflake thread_id, snowflake user_id)
| Add a member to a thread.
async< confirmation_callback_t > | co_thread_member_get (const snowflake thread_id, const snowflake user_id)
| Get a thread member.
async< confirmation_callback_t > | co_thread_member_get (const snowflake thread_id, const snowflake user_id)
| Get a thread member.
async< confirmation_callback_t > | co_thread_member_remove (snowflake thread_id, snowflake user_id)
| Remove a member from a thread.
async< confirmation_callback_t > | co_thread_member_remove (snowflake thread_id, snowflake user_id)
| Remove a member from a thread.
async< confirmation_callback_t > | co_thread_members_get (snowflake thread_id)
| Get members of a thread.
async< confirmation_callback_t > | co_thread_members_get (snowflake thread_id)
| Get members of a thread.
async< confirmation_callback_t > | co_threads_get_active (snowflake guild_id)
| Get all active threads in the guild, including public and private threads. Threads are ordered by their id, in descending order.
async< confirmation_callback_t > | co_threads_get_active (snowflake guild_id)
| Get all active threads in the guild, including public and private threads. Threads are ordered by their id, in descending order.
async< confirmation_callback_t > | co_threads_get_joined_private_archived (snowflake channel_id, snowflake before_id, uint16_t limit)
| Get private archived threads in a channel which current user has joined (Sorted by ID in descending order).
async< confirmation_callback_t > | co_threads_get_joined_private_archived (snowflake channel_id, snowflake before_id, uint16_t limit)
| Get private archived threads in a channel which current user has joined (Sorted by ID in descending order).
async< confirmation_callback_t > | co_threads_get_private_archived (snowflake channel_id, time_t before_timestamp, uint16_t limit)
| Get private archived threads in a channel (Sorted by archive_timestamp in descending order).
async< confirmation_callback_t > | co_threads_get_private_archived (snowflake channel_id, time_t before_timestamp, uint16_t limit)
| Get private archived threads in a channel (Sorted by archive_timestamp in descending order).
async< confirmation_callback_t > | co_threads_get_public_archived (snowflake channel_id, time_t before_timestamp, uint16_t limit)
| Get public archived threads in a channel (Sorted by archive_timestamp in descending order).
async< confirmation_callback_t > | co_threads_get_public_archived (snowflake channel_id, time_t before_timestamp, uint16_t limit)
| Get public archived threads in a channel (Sorted by archive_timestamp in descending order).
async< confirmation_callback_t > | co_user_application_role_connection_get (snowflake application_id)
| Get user application role connection.
async< confirmation_callback_t > | co_user_application_role_connection_get (snowflake application_id)
| Get user application role connection.
async< confirmation_callback_t > | co_user_application_role_connection_update (snowflake application_id, const application_role_connection &connection)
| Update user application role connection.
async< confirmation_callback_t > | co_user_application_role_connection_update (snowflake application_id, const application_role_connection &connection)
| Update user application role connection.
async< confirmation_callback_t > | co_user_get (snowflake user_id)
| Get a user by id, without using the cache.
async< confirmation_callback_t > | co_user_get (snowflake user_id)
| Get a user by id, without using the cache.
async< confirmation_callback_t > | co_user_get_cached (snowflake user_id)
| Get a user by id, checking in the cache first.
async< confirmation_callback_t > | co_user_get_cached (snowflake user_id)
| Get a user by id, checking in the cache first.
async< confirmation_callback_t > | co_user_get_voice_state (snowflake guild_id, snowflake user_id)
| Get a user's voice state in a guild without a Gateway connection.
async< confirmation_callback_t > | co_user_get_voice_state (snowflake guild_id, snowflake user_id)
| Get a user's voice state in a guild without a Gateway connection.
async< confirmation_callback_t > | co_user_set_voice_state (snowflake user_id, snowflake guild_id, snowflake channel_id, bool suppress=false)
| Set a user's voice state on a stage channel.
async< confirmation_callback_t > | co_user_set_voice_state (snowflake user_id, snowflake guild_id, snowflake channel_id, bool suppress=false)
| Set a user's voice state on a stage channel.
void | create_dm_channel (snowflake user_id, command_completion_event_t callback=utility::log_error())
| Create a dm channel.
void | create_webhook (const class webhook &w, command_completion_event_t callback=utility::log_error())
| Create a webhook.
void | current_application_get (command_completion_event_t callback)
| Get current (bot) application.
void | current_user_connections_get (command_completion_event_t callback)
| Get current user's connections (linked accounts, e.g. steam, xbox). This call requires the oauth2 connections scope and cannot be executed against a bot token.
void | current_user_edit (const std::string &nickname, const std::string &avatar_blob="", const image_type avatar_type=i_png, const std::string &banner_blob="", const image_type banner_type=i_png, command_completion_event_t callback=utility::log_error())
| Edit current (bot) user.
void | current_user_get (command_completion_event_t callback)
| Get current (bot) user.
void | current_user_get_dms (command_completion_event_t callback)
| Get current user DM channels.
void | current_user_get_guilds (command_completion_event_t callback)
| Get current (bot) user guilds.
void | current_user_get_voice_state (snowflake guild_id, command_completion_event_t callback)
| Get the bot's voice state in a guild without a Gateway connection.
void | current_user_join_thread (snowflake thread_id, command_completion_event_t callback=utility::log_error())
| Join a thread.
void | current_user_leave_guild (snowflake guild_id, command_completion_event_t callback=utility::log_error())
| Leave a guild.
void | current_user_leave_thread (snowflake thread_id, command_completion_event_t callback=utility::log_error())
| Leave a thread.
void | current_user_set_voice_state (snowflake guild_id, snowflake channel_id, bool suppress=false, time_t request_to_speak_timestamp=0, command_completion_event_t callback=utility::log_error())
| Set the bot's voice state on a stage channel.
void | delete_webhook (snowflake webhook_id, command_completion_event_t callback=utility::log_error())
| Delete a webhook.
void | delete_webhook_message (const class webhook &wh, snowflake message_id, snowflake thread_id=0, command_completion_event_t callback=utility::log_error())
| Delete webhook message.
void | delete_webhook_with_token (snowflake webhook_id, const std::string &token, command_completion_event_t callback=utility::log_error())
| Delete webhook with token.
void | direct_message_create (snowflake user_id, const message &m, command_completion_event_t callback=utility::log_error())
| Create a direct message, also create the channel for the direct message if needed.
void | edit_webhook (const class webhook &wh, command_completion_event_t callback=utility::log_error())
| Edit webhook.
void | edit_webhook_message (const class webhook &wh, const struct message &m, snowflake thread_id=0, command_completion_event_t callback=utility::log_error())
| Edit webhook message.
void | edit_webhook_with_token (const class webhook &wh, command_completion_event_t callback=utility::log_error())
| Edit webhook with token (token is encapsulated in the webhook object).
cluster & | enable_webhook_server (const std::string &discord_public_key, const std::string_view address, uint16_t port, const std::string &ssl_private_key="", const std::string &ssl_public_key="")
| Create a webhook server for receiving interactions.
void | entitlement_consume (snowflake entitlement_id, command_completion_event_t callback=utility::log_error())
| For One-Time Purchase consumable SKUs, marks a given entitlement for the user as consumed.
void | entitlement_test_create (const class entitlement &new_entitlement, command_completion_event_t callback=utility::log_error())
| Creates a test entitlement to a given SKU for a given guild or user. Discord will act as though that user or guild has entitlement to your premium offering.
void | entitlement_test_delete (snowflake entitlement_id, command_completion_event_t callback=utility::log_error())
| Deletes a currently-active test entitlement. Discord will act as though that user or guild no longer has entitlement to your premium offering.
void | entitlements_get (snowflake user_id=0, const std::vector< snowflake > &sku_ids={}, snowflake before_id=0, snowflake after_id=0, uint8_t limit=100, snowflake guild_id=0, bool exclude_ended=false, command_completion_event_t callback=utility::log_error())
| Returns all entitlements for a given app, active and expired.
void | execute_webhook (const class webhook &wh, const struct message &m, bool wait=false, snowflake thread_id=0, const std::string &thread_name="", command_completion_event_t callback=utility::log_error())
| Execute webhook.
void | gdm_add (snowflake channel_id, snowflake user_id, const std::string &access_token, const std::string &nick, command_completion_event_t callback=utility::log_error())
| Adds a recipient to a Group DM using their access token.
void | gdm_remove (snowflake channel_id, snowflake user_id, command_completion_event_t callback=utility::log_error())
| Removes a recipient from a Group DM.
std::string | get_audit_reason ()
| Get the audit reason set for the next REST call to be made on this thread. This is set per-thread, so you must ensure that if you call this method, your request that is associated with the reason happens on the same thread where you set the reason. Once the next call is made, the audit log reason is cleared for this thread automatically.
void | get_channel_webhooks (snowflake channel_id, command_completion_event_t callback)
| Get channel webhooks.
snowflake | get_dm_channel (snowflake user_id)
| Get the dm channel for a user id.
void | get_gateway_bot (command_completion_event_t callback)
| Get the gateway information for the bot using the token.
void | get_guild_webhooks (snowflake guild_id, command_completion_event_t callback)
| Get guild webhooks.
request_queue * | get_raw_rest ()
| Get the raw rest_queue object which handles all HTTP(S) requests that are not directed at Discord.
request_queue * | get_rest ()
| Get the rest_queue object which handles HTTPS requests to Discord.
discord_client * | get_shard (uint32_t id) const
| Get a shard by id, returning the discord_client.
shard_list | get_shards () const
| Get the list of shards.
void | get_voice_regions (command_completion_event_t callback)
| Get all voice regions.
void | get_webhook (snowflake webhook_id, command_completion_event_t callback)
| Get webhook.
void | get_webhook_message (const class webhook &wh, snowflake message_id, snowflake thread_id=0, command_completion_event_t callback=utility::log_error())
| Get webhook message.
void | get_webhook_with_token (snowflake webhook_id, const std::string &token, command_completion_event_t callback)
| Get webhook using token.
void | global_bulk_command_create (const std::vector< slashcommand > &commands, command_completion_event_t callback=utility::log_error())
| Create/overwrite global slash commands. Any existing global slash commands will be deleted and replaced with these.
void | global_bulk_command_delete (command_completion_event_t callback=utility::log_error())
| Delete all existing global slash commands.
void | global_command_create (const slashcommand &s, command_completion_event_t callback=utility::log_error())
| Create a global slash command (a bot can have a maximum of 100 of these).
void | global_command_delete (snowflake id, command_completion_event_t callback=utility::log_error())
| Delete a global slash command (a bot can have a maximum of 100 of these).
void | global_command_edit (const slashcommand &s, command_completion_event_t callback=utility::log_error())
| Edit a global slash command (a bot can have a maximum of 100 of these).
void | global_command_get (snowflake id, command_completion_event_t callback=utility::log_error())
| Get a global slash command.
void | global_commands_get (command_completion_event_t callback)
| Get the application's global slash commands.
void | guild_add_member (const guild_member &gm, const std::string &access_token, command_completion_event_t callback=utility::log_error())
| Add guild member. Needs a specific oauth2 scope, from which you get the access_token.
void | guild_auditlog_get (snowflake guild_id, snowflake user_id, uint32_t action_type, snowflake before, snowflake after, uint32_t limit, command_completion_event_t callback)
| Get the audit log for a guild.
void | guild_ban_add (snowflake guild_id, snowflake user_id, uint32_t delete_message_seconds=0, command_completion_event_t callback=utility::log_error())
| Add guild ban.
void | guild_ban_delete (snowflake guild_id, snowflake user_id, command_completion_event_t callback=utility::log_error())
| Delete guild ban.
void | guild_begin_prune (snowflake guild_id, const struct prune &pruneinfo, command_completion_event_t callback=utility::log_error())
| Begin guild prune.
void | guild_bulk_command_create (const std::vector< slashcommand > &commands, snowflake guild_id, command_completion_event_t callback=utility::log_error())
| Create/overwrite guild slash commands. Any existing guild slash commands on this guild will be deleted and replaced with these.
void | guild_bulk_command_delete (snowflake guild_id, command_completion_event_t callback=utility::log_error())
| Delete all existing guild slash commands.
void | guild_bulk_command_edit_permissions (const std::vector< slashcommand > &commands, snowflake guild_id, command_completion_event_t callback=utility::log_error())
| Edit/Overwrite the permissions of all existing slash commands in a guild.
void | guild_command_create (const slashcommand &s, snowflake guild_id, command_completion_event_t callback=utility::log_error())
| Create a slash command local to a guild.
void | guild_command_delete (snowflake id, snowflake guild_id, command_completion_event_t callback=utility::log_error())
| Delete a slash command local to a guild.
void | guild_command_edit (const slashcommand &s, snowflake guild_id, command_completion_event_t callback=utility::log_error())
| Edit a slash command local to a guild.
void | guild_command_edit_permissions (const slashcommand &s, snowflake guild_id, command_completion_event_t callback=utility::log_error())
| Edit slash command permissions of a guild.
void | guild_command_get (snowflake id, snowflake guild_id, command_completion_event_t callback=utility::log_error())
| Get a slash command of a guild.
void | guild_command_get_permissions (snowflake id, snowflake guild_id, command_completion_event_t callback=utility::log_error())
| Get the permissions for a slash command of a guild.
void | guild_commands_get (snowflake guild_id, command_completion_event_t callback)
| Get the application's slash commands for a guild.
void | guild_commands_get_permissions (snowflake guild_id, command_completion_event_t callback)
| Get all slash command permissions of a guild.
void | guild_create (const class guild &g, command_completion_event_t callback=utility::log_error())
| Create a guild.
void | guild_create_from_template (const std::string &code, const std::string &name, command_completion_event_t callback=utility::log_error())
| Create a new guild based on a template.
void | guild_current_member_edit (snowflake guild_id, const std::string &nickname, const std::string &banner_blob, const image_type banner_type, const std::string &avatar_blob, const image_type avatar_type, const std::string &bio, command_completion_event_t callback=utility::log_error())
| Modify current member.
void | guild_delete (snowflake guild_id, command_completion_event_t callback=utility::log_error())
| Delete a guild.
void | guild_delete_integration (snowflake guild_id, snowflake integration_id, command_completion_event_t callback=utility::log_error())
| Delete guild integration.
void | guild_edit (const class guild &g, command_completion_event_t callback=utility::log_error())
| Edit a guild.
void | guild_edit_member (const guild_member &gm, command_completion_event_t callback=utility::log_error())
| Edit the properties of an existing guild member.
void | guild_edit_onboarding (const struct onboarding &o, command_completion_event_t callback=utility::log_error())
| Edit the guild's onboarding configuration.
void | guild_edit_welcome_screen (snowflake guild_id, const struct welcome_screen &welcome_screen, bool enabled, command_completion_event_t callback=utility::log_error())
| Edit the guild's welcome screen.
void | guild_edit_widget (snowflake guild_id, const class guild_widget &gw, command_completion_event_t callback=utility::log_error())
| Edit guild widget.
void | guild_emoji_create (snowflake guild_id, const class emoji &newemoji, command_completion_event_t callback=utility::log_error())
| Create single emoji. You must ensure that the emoji passed contained image data using the emoji::load_image() method.
void | guild_emoji_delete (snowflake guild_id, snowflake emoji_id, command_completion_event_t callback=utility::log_error())
| Delete a guild emoji.
void | guild_emoji_edit (snowflake guild_id, const class emoji &newemoji, command_completion_event_t callback=utility::log_error())
| Edit a single emoji.
void | guild_emoji_get (snowflake guild_id, snowflake emoji_id, command_completion_event_t callback)
| Get a single emoji.
void | guild_emojis_get (snowflake guild_id, command_completion_event_t callback)
| Get all emojis for a guild.
void | guild_event_create (const scheduled_event &event, command_completion_event_t callback=utility::log_error())
| Create a scheduled event on a guild.
void | guild_event_delete (snowflake event_id, snowflake guild_id, command_completion_event_t callback=utility::log_error())
| Delete a scheduled event from a guild.
void | guild_event_edit (const scheduled_event &event, command_completion_event_t callback=utility::log_error())
| Edit/modify a scheduled event on a guild.
void | guild_event_get (snowflake guild_id, snowflake event_id, command_completion_event_t callback)
| Get a scheduled event for a guild.
void | guild_event_users_get (snowflake guild_id, snowflake event_id, command_completion_event_t callback, uint8_t limit=100, snowflake before=0, snowflake after=0)
| Get users RSVP'd to an event.
void | guild_events_get (snowflake guild_id, command_completion_event_t callback)
| Get all scheduled events for a guild.
void | guild_get (snowflake g, command_completion_event_t callback)
| Get a guild.
void | guild_get_ban (snowflake guild_id, snowflake user_id, command_completion_event_t callback)
| Get single guild ban.
void | guild_get_bans (snowflake guild_id, snowflake before, snowflake after, snowflake limit, command_completion_event_t callback)
| Get guild ban list.
void | guild_get_integrations (snowflake guild_id, command_completion_event_t callback)
| Get guild integrations.
void | guild_get_invites (snowflake guild_id, command_completion_event_t callback)
| Get guild invites.
void | guild_get_member (snowflake guild_id, snowflake user_id, command_completion_event_t callback)
| Get a guild member.
void | guild_get_members (snowflake guild_id, uint16_t limit, snowflake after, command_completion_event_t callback)
| Get all guild members.
void | guild_get_onboarding (snowflake guild_id, command_completion_event_t callback)
| Get the guild's onboarding configuration.
void | guild_get_preview (snowflake g, command_completion_event_t callback)
| Get a guild preview. Returns a guild object but only a subset of the fields will be populated.
void | guild_get_prune_counts (snowflake guild_id, const struct prune &pruneinfo, command_completion_event_t callback)
| Get prune counts.
void | guild_get_vanity (snowflake guild_id, command_completion_event_t callback)
| Get guild vanity url, if enabled.
void | guild_get_voice_regions (snowflake guild_id, command_completion_event_t callback)
| Get guild voice regions.
void | guild_get_welcome_screen (snowflake guild_id, command_completion_event_t callback)
| Get the guild's welcome screen.
void | guild_get_widget (snowflake guild_id, command_completion_event_t callback)
| Get guild widget.
void | guild_member_add_role (snowflake guild_id, snowflake user_id, snowflake role_id, command_completion_event_t callback=utility::log_error())
| Add role to guild member.
void | guild_member_delete (snowflake guild_id, snowflake user_id, command_completion_event_t callback=utility::log_error())
| Remove (kick) a guild member.
void | guild_member_delete_role (snowflake guild_id, snowflake user_id, snowflake role_id, command_completion_event_t callback=utility::log_error())
| Remove role from guild member.
void | guild_member_kick (snowflake guild_id, snowflake user_id, command_completion_event_t callback=utility::log_error())
| Remove (kick) a guild member.
void | guild_member_move (const snowflake channel_id, const snowflake guild_id, const snowflake user_id, command_completion_event_t callback=utility::log_error())
| Moves the guild member to a other voice channel, if member is connected to one. Set the channel_id to 0 to disconnect the user.
void | guild_member_remove_role (snowflake guild_id, snowflake user_id, snowflake role_id, command_completion_event_t callback=utility::log_error())
| Remove role from guild member.
void | guild_member_timeout (snowflake guild_id, snowflake user_id, time_t communication_disabled_until, command_completion_event_t callback=utility::log_error())
| Set the timeout of a guild member.
void | guild_member_timeout_remove (snowflake guild_id, snowflake user_id, command_completion_event_t callback=utility::log_error())
| Remove the timeout of a guild member. A shortcut for guild_member_timeout(guild_id, user_id, 0, callback) Fires a Guild Member Update Gateway event.
void | guild_messages_search (snowflake guild_id, const message_search_params &params, command_completion_event_t callback)
| Search for messages in a guild.
void | guild_modify_integration (snowflake guild_id, const class integration &i, command_completion_event_t callback=utility::log_error())
| Modify guild integration.
void | guild_search_members (snowflake guild_id, const std::string &query, uint16_t limit, command_completion_event_t callback)
| Search for guild members based on whether their username or nickname starts with the given string.
void | guild_set_nickname (snowflake guild_id, const std::string &nickname, command_completion_event_t callback=utility::log_error())
| Change current user nickname.
void | guild_sticker_create (const sticker &s, command_completion_event_t callback=utility::log_error())
| Create a sticker in a guild.
void | guild_sticker_delete (snowflake sticker_id, snowflake guild_id, command_completion_event_t callback=utility::log_error())
| Delete a sticker from a guild.
void | guild_sticker_get (snowflake id, snowflake guild_id, command_completion_event_t callback)
| Get a guild sticker.
void | guild_sticker_modify (const sticker &s, command_completion_event_t callback=utility::log_error())
| Modify a sticker in a guild.
void | guild_stickers_get (snowflake guild_id, command_completion_event_t callback)
| Get all guild stickers.
void | guild_sync_integration (snowflake guild_id, snowflake integration_id, command_completion_event_t callback=utility::log_error())
| Sync guild integration.
void | guild_template_create (snowflake guild_id, const std::string &name, const std::string &description, command_completion_event_t callback=utility::log_error())
| Creates a template for the guild.
void | guild_template_delete (snowflake guild_id, const std::string &code, command_completion_event_t callback=utility::log_error())
| Deletes the template.
void | guild_template_modify (snowflake guild_id, const std::string &code, const std::string &name, const std::string &description, command_completion_event_t callback=utility::log_error())
| Modifies the template's metadata.
void | guild_template_sync (snowflake guild_id, const std::string &code, command_completion_event_t callback=utility::log_error())
| Syncs the template to the guild's current state.
void | guild_templates_get (snowflake guild_id, command_completion_event_t callback)
| Get guild templates.
void | interaction_followup_create (const std::string &token, const message &m, command_completion_event_t callback=utility::log_error())
| Create a followup message for an interaction.
void | interaction_followup_delete (const std::string &token, command_completion_event_t callback=utility::log_error())
| Delete the initial interaction response.
void | interaction_followup_edit (const std::string &token, const message &m, command_completion_event_t callback=utility::log_error())
| Edit followup message for an interaction The message ID in the message you pass should be correctly set to that of a followup message you previously sent.
void | interaction_followup_edit_original (const std::string &token, const message &m, command_completion_event_t callback=utility::log_error())
| Edit original followup message for an interaction This is an alias for cluster::interaction_response_edit.
void | interaction_followup_get (const std::string &token, snowflake message_id, command_completion_event_t callback)
| Get the followup message for an interaction.
void | interaction_followup_get_original (const std::string &token, command_completion_event_t callback=utility::log_error())
| Get the original followup message for an interaction This is an alias for cluster::interaction_response_get_original.
void | interaction_response_create (snowflake interaction_id, const std::string &token, const interaction_response &r, command_completion_event_t callback=utility::log_error())
| Respond to a slash command.
void | interaction_response_edit (const std::string &token, const message &m, command_completion_event_t callback=utility::log_error())
| Edit response to a slash command.
void | interaction_response_get_original (const std::string &token, command_completion_event_t callback=utility::log_error())
| Get the original response to a slash command.
void | invite_delete (const std::string &invite, command_completion_event_t callback=utility::log_error())
| Delete an invite.
void | invite_get (const std::string &invite_code, command_completion_event_t callback)
| Get details about an invite.
void | log (dpp::loglevel severity, const std::string &msg) const
| Log a message to whatever log the user is using. The logged message is passed up the chain to the on_log event in user code which can then do whatever it wants to do with it.
void | message_add_reaction (const struct message &m, const std::string &reaction, command_completion_event_t callback=utility::log_error())
| Add a reaction to a message. The reaction string must be either an emojiname:id or a unicode character.
void | message_add_reaction (snowflake message_id, snowflake channel_id, const std::string &reaction, command_completion_event_t callback=utility::log_error())
| Add a reaction to a message by id. The reaction string must be either an emojiname:id or a unicode character.
void | message_create (const struct message &m, command_completion_event_t callback=utility::log_error())
| Send a message to a channel. The callback function is called when the message has been sent.
void | message_crosspost (snowflake message_id, snowflake channel_id, command_completion_event_t callback=utility::log_error())
| Crosspost a message. The callback function is called when the message has been sent.
void | message_delete (snowflake message_id, snowflake channel_id, command_completion_event_t callback=utility::log_error())
| Delete a message from a channel. The callback function is called when the message has been edited.
void | message_delete_all_reactions (const struct message &m, command_completion_event_t callback=utility::log_error())
| Delete all reactions on a message.
void | message_delete_all_reactions (snowflake message_id, snowflake channel_id, command_completion_event_t callback=utility::log_error())
| Delete all reactions on a message by id.
void | message_delete_bulk (const std::vector< snowflake > &message_ids, snowflake channel_id, command_completion_event_t callback=utility::log_error())
| Bulk delete messages from a channel. The callback function is called when the message has been edited.
void | message_delete_own_reaction (const struct message &m, const std::string &reaction, command_completion_event_t callback=utility::log_error())
| Delete own reaction from a message. The reaction string must be either an emojiname:id or a unicode character.
void | message_delete_own_reaction (snowflake message_id, snowflake channel_id, const std::string &reaction, command_completion_event_t callback=utility::log_error())
| Delete own reaction from a message by id. The reaction string must be either an emojiname:id or a unicode character.
void | message_delete_reaction (const struct message &m, snowflake user_id, const std::string &reaction, command_completion_event_t callback=utility::log_error())
| Delete a user's reaction from a message. The reaction string must be either an emojiname:id or a unicode character.
void | message_delete_reaction (snowflake message_id, snowflake channel_id, snowflake user_id, const std::string &reaction, command_completion_event_t callback=utility::log_error())
| Delete a user's reaction from a message by id. The reaction string must be either an emojiname:id or a unicode character.
void | message_delete_reaction_emoji (const struct message &m, const std::string &reaction, command_completion_event_t callback=utility::log_error())
| Delete all reactions on a message using a particular emoji. The reaction string must be either an emojiname:id or a unicode character.
void | message_delete_reaction_emoji (snowflake message_id, snowflake channel_id, const std::string &reaction, command_completion_event_t callback=utility::log_error())
| Delete all reactions on a message using a particular emoji by id. The reaction string must be either an emojiname:id or a unicode character.
void | message_edit (const struct message &m, command_completion_event_t callback=utility::log_error())
| Edit a message on a channel. The callback function is called when the message has been edited.
void | message_edit_flags (const struct message &m, command_completion_event_t callback=utility::log_error())
| Edit the flags of a message on a channel. The callback function is called when the message has been edited.
void | message_get (snowflake message_id, snowflake channel_id, command_completion_event_t callback)
| Get a message.
void | message_get_reactions (const struct message &m, const std::string &reaction, snowflake before, snowflake after, snowflake limit, command_completion_event_t callback)
| Get reactions on a message for a particular emoji. The reaction string must be either an emojiname:id or a unicode character.
void | message_get_reactions (snowflake message_id, snowflake channel_id, const std::string &reaction, snowflake before, snowflake after, snowflake limit, command_completion_event_t callback)
| Get reactions on a message for a particular emoji by id. The reaction string must be either an emojiname:id or a unicode character.
void | message_pin (snowflake channel_id, snowflake message_id, command_completion_event_t callback=utility::log_error())
| Pin a message.
void | message_unpin (snowflake channel_id, snowflake message_id, command_completion_event_t callback=utility::log_error())
| Unpin a message.
void | messages_get (snowflake channel_id, snowflake around, snowflake before, snowflake after, uint64_t limit, command_completion_event_t callback)
| Get multiple messages.
void | nitro_sticker_get (snowflake id, command_completion_event_t callback)
| Get a nitro sticker.
cluster & | operator= (const cluster &&)=delete
| dpp::cluster is non-moveable
cluster & | operator= (const cluster &)=delete
| dpp::cluster is non-copyable
void | poll_end (const message &m, command_completion_event_t callback=utility::log_error())
| Immediately end a poll.
void | poll_end (snowflake message_id, snowflake channel_id, command_completion_event_t callback=utility::log_error())
| Immediately end a poll.
void | poll_get_answer_voters (const message &m, uint32_t answer_id, snowflake after, uint64_t limit, command_completion_event_t callback=utility::log_error())
| Get a list of users that voted for this specific answer.
void | poll_get_answer_voters (snowflake message_id, snowflake channel_id, uint32_t answer_id, snowflake after, uint64_t limit, command_completion_event_t callback=utility::log_error())
| Get a list of users that voted for this specific answer.
void | post_rest (const std::string &endpoint, const std::string &major_parameters, const std::string &parameters, http_method method, const std::string &postdata, json_encode_t callback, const std::string &filename="", const std::string &filecontent="", const std::string &filemimetype="", const std::string &protocol="1.1")
| Post a REST request. Where possible use a helper method instead like message_create.
void | post_rest_multipart (const std::string &endpoint, const std::string &major_parameters, const std::string &parameters, http_method method, const std::string &postdata, json_encode_t callback, const std::vector< message_file_data > &file_data={})
| Post a multipart REST request. Where possible use a helper method instead like message_create.
void | queue_work (int priority, work_unit task)
| Place some arbitrary work into the thread pool for execution when time permits.
template<typename F> requires (utility::callable_returns<F, dpp::task<void>, const slashcommand_t&>)
bool | register_command (const std::string &name, F &&handler)
| Register a coroutine-based slash command handler.
template<typename F>
std::enable_if_t< utility::callable_returns_v< F, void, const slashcommand_t & >, bool > | register_command (const std::string &name, F &&handler)
| Register a slash command handler.
void | request (const std::string &url, http_method method, http_completion_event callback, const std::string &postdata="", const std::string &mimetype="text/plain", const std::multimap< std::string, std::string > &headers={}, const std::string &protocol="1.1")
| Make a HTTP(S) request. For use when wanting asynchronous access to HTTP APIs outside of Discord.
void | role_create (const class role &r, command_completion_event_t callback=utility::log_error())
| Create a role on a guild.
void | role_delete (snowflake guild_id, snowflake role_id, command_completion_event_t callback=utility::log_error())
| Delete a role.
void | role_edit (const class role &r, command_completion_event_t callback=utility::log_error())
| Edit a role on a guild.
void | roles_edit_position (snowflake guild_id, const std::vector< role > &roles, command_completion_event_t callback=utility::log_error())
| Edit multiple role's position in a guild. Returns a list of all roles of the guild on success.
void | roles_get (snowflake guild_id, command_completion_event_t callback)
| Get a role for a guild.
cluster & | set_audit_reason (const std::string &reason)
| Set the audit log reason for the next REST call to be made. This is set per-thread, so you must ensure that if you call this method, your request that is associated with the reason happens on the same thread where you set the reason. Once the next call is made, the audit log reason is cleared for this thread automatically.
cluster & | set_default_gateway (const std::string &default_gateway)
| Sets the address of the default gateway, for connecting the websockets.
void | set_dm_channel (snowflake user_id, snowflake channel_id)
| Set the dm channel id for a user id.
void | set_presence (const class dpp::presence &p)
| Set the presence for all shards on the cluster.
cluster & | set_request_timeout (uint16_t timeout)
| Sets the request timeout.
cluster & | set_websocket_protocol (websocket_protocol_t mode)
| Set the websocket protocol for all shards on this cluster. You should call this method before cluster::start. Generally ws_etf is faster, but provides less facilities for debugging should something go wrong. It is recommended to use ETF in production and JSON in development.
void | shutdown ()
| End cluster execution without destructing it. To restart the cluster, call cluster::start() again.
void | skus_get (command_completion_event_t callback=utility::log_error())
| Returns all SKUs for a given application.
void | stage_instance_create (const stage_instance &instance, command_completion_event_t callback=utility::log_error())
| Create a stage instance on a stage channel.
void | stage_instance_delete (const snowflake channel_id, command_completion_event_t callback=utility::log_error())
| Delete a stage instance.
void | stage_instance_edit (const stage_instance &instance, command_completion_event_t callback=utility::log_error())
| Edit a stage instance.
void | stage_instance_get (const snowflake channel_id, command_completion_event_t callback)
| Get the stage instance associated with the channel id, if it exists.
void | start (start_type return_after=st_wait)
| Start the cluster, connecting all its shards.
template<std::invocable< timer > T, std::invocable< timer > U = std::function<void(timer)>> requires ( dpp::awaitable_type<typename std::invoke_result<T, timer>::type> && std::copy_constructible<std::decay_t<T>> && // N4988 [func.wrap.func.con]/10.1 - std::function requires a copy constructible argument std::copy_constructible<std::decay_t<U>> )
timer | start_timer (T &&on_tick, uint64_t frequency, U &&on_stop={})
| Start a coroutine timer. Every frequency seconds, the callback is called.
timer | start_timer (timer_callback_t on_tick, uint64_t frequency, timer_callback_t on_stop={})
| Start a timer. Every frequency seconds, the callback is called.
void | sticker_packs_get (command_completion_event_t callback)
| Get a list of available sticker packs.
bool | stop_timer (timer t)
| Stop a ticking timer.
void | template_get (const std::string &code, command_completion_event_t callback)
| Get a template.
void | thread_create (const std::string &thread_name, snowflake channel_id, uint16_t auto_archive_duration, channel_type thread_type, bool invitable, uint16_t rate_limit_per_user, command_completion_event_t callback=utility::log_error())
| Create a thread.
void | thread_create_in_forum (const std::string &thread_name, snowflake channel_id, const message &msg, auto_archive_duration_t auto_archive_duration, uint16_t rate_limit_per_user, std::vector< snowflake > applied_tags={}, command_completion_event_t callback=utility::log_error())
| Create a thread in a forum or media channel.
void | thread_create_with_message (const std::string &thread_name, snowflake channel_id, snowflake message_id, uint16_t auto_archive_duration, uint16_t rate_limit_per_user, command_completion_event_t callback=utility::log_error())
| Create a thread with a message (Discord: ID of a thread is same as message ID).
void | thread_edit (const thread &t, command_completion_event_t callback=utility::log_error())
| Edit a thread.
void | thread_get (snowflake thread_id, command_completion_event_t callback)
| Get the thread specified by thread_id. This uses the same call as dpp::cluster::channel_get but returns a thread object.
void | thread_member_add (snowflake thread_id, snowflake user_id, command_completion_event_t callback=utility::log_error())
| Add a member to a thread.
void | thread_member_get (const snowflake thread_id, const snowflake user_id, command_completion_event_t callback)
| Get a thread member.
void | thread_member_remove (snowflake thread_id, snowflake user_id, command_completion_event_t callback=utility::log_error())
| Remove a member from a thread.
void | thread_members_get (snowflake thread_id, command_completion_event_t callback)
| Get members of a thread.
void | threads_get_active (snowflake guild_id, command_completion_event_t callback)
| Get all active threads in the guild, including public and private threads. Threads are ordered by their id, in descending order.
void | threads_get_joined_private_archived (snowflake channel_id, snowflake before_id, uint16_t limit, command_completion_event_t callback)
| Get private archived threads in a channel which current user has joined (Sorted by ID in descending order).
void | threads_get_private_archived (snowflake channel_id, time_t before_timestamp, uint16_t limit, command_completion_event_t callback)
| Get private archived threads in a channel (Sorted by archive_timestamp in descending order).
void | threads_get_public_archived (snowflake channel_id, time_t before_timestamp, uint16_t limit, command_completion_event_t callback)
| Get public archived threads in a channel (Sorted by archive_timestamp in descending order).
void | tick_timers ()
| Tick active timers.
bool | unregister_command (const std::string &name)
| Unregister a slash command.
dpp::utility::uptime | uptime ()
| Returns the uptime of the cluster.
void | user_application_role_connection_get (snowflake application_id, command_completion_event_t callback)
| Get user application role connection.
void | user_application_role_connection_update (snowflake application_id, const application_role_connection &connection, command_completion_event_t callback=utility::log_error())
| Update user application role connection.
void | user_get (snowflake user_id, command_completion_event_t callback)
| Get a user by id, without using the cache.
void | user_get_cached (snowflake user_id, command_completion_event_t callback)
| Get a user by id, checking in the cache first.
void | user_get_voice_state (snowflake guild_id, snowflake user_id, command_completion_event_t callback)
| Get a user's voice state in a guild without a Gateway connection.
void | user_set_voice_state (snowflake user_id, snowflake guild_id, snowflake channel_id, bool suppress=false, command_completion_event_t callback=utility::log_error())
| Set a user's voice state on a stage channel.

## Public Attributes

cache_policy_t | cache_policy
| Current cache policy for the cluster.
uint32_t | cluster_id
| ID of this cluster, between 0 and MAXCLUSTERS-1 inclusive.
uint32_t | intents
| Current bitmask of gateway intents.
time_t | last_identify
| Last time the bot sent an IDENTIFY.
uint32_t | maxclusters
| Total number of clusters that are active.
dpp::user | me
| The details of the bot user. This is assumed to be identical across all shards in the cluster. Each connecting shard updates this information.
uint32_t | numshards
| Total number of shards across all clusters.
event_router_t< autocomplete_t > | on_autocomplete
| Called when an auto completed field needs suggestions to present to the user This is triggered by discord when option choices have auto completion enabled which you have associated with a dpp::slashcommand.
event_router_t< automod_rule_create_t > | on_automod_rule_create
| Called when a new automod rule is created.
event_router_t< automod_rule_delete_t > | on_automod_rule_delete
| Called when an automod rule is deleted.
event_router_t< automod_rule_execute_t > | on_automod_rule_execute
| Called when an automod rule is triggered/executed.
event_router_t< automod_rule_update_t > | on_automod_rule_update
| Called when an automod rule is updated.
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 buttons are clicked which you have associated with a message using dpp::component.
event_router_t< channel_create_t > | on_channel_create
| Called when a new channel is created on a guild.
event_router_t< channel_delete_t > | on_channel_delete
| Called when a channel is deleted from a guild. The channel will still be temporarily available in the cache. Pointers to the channel should not be retained long-term as they will be deleted by the garbage collector.
event_router_t< channel_pins_update_t > | on_channel_pins_update
| Called when a message is pinned. Note that the pinned message is not returned to this event, just the timestamp of the last pinned message.
event_router_t< channel_update_t > | on_channel_update
| Called when a channel is edited on a guild. The new channel details have already been applied to the guild when you receive this event.
event_router_t< entitlement_create_t > | on_entitlement_create
| Called when a user subscribes to an SKU.
event_router_t< entitlement_delete_t > | on_entitlement_delete
| Called when a user's entitlement is deleted. These events are infrequent and only occur if Discord issues a refund, or Discord removes an entitlement via "internal tooling". Entitlements are not deleted when they expire.
event_router_t< entitlement_update_t > | on_entitlement_update
| Called when a user's subscription renews for the next billing period. The ends_at field will have an updated value with the new expiration date.
event_router_t< form_submit_t > | on_form_submit
| Called when a modal dialog is submitted. Form submits are triggered by discord when modal dialogs are submitted which you have associated with a slash command using dpp::interaction_modal_response.
event_router_t< guild_audit_log_entry_create_t > | on_guild_audit_log_entry_create
| Called when a guild audit log entry is created.
event_router_t< guild_ban_add_t > | on_guild_ban_add
| Called when a ban is added to a guild.
event_router_t< guild_ban_remove_t > | on_guild_ban_remove
| Called when a ban is removed from a guild.
event_router_t< guild_create_t > | on_guild_create
| Called when a new guild is created. D++ will request members for the guild for its cache using guild_members_chunk.
event_router_t< guild_delete_t > | on_guild_delete
| Called when a guild is deleted. A guild can be deleted via the bot being kicked, the bot leaving the guild explicitly with dpp::cluster::guild_delete, or via the guild being unavailable due to an outage.
event_router_t< guild_emojis_update_t > | on_guild_emojis_update
| Called when new emojis are added to a guild. The complete set of emojis is sent every time.
event_router_t< guild_integrations_update_t > | on_guild_integrations_update
| Called when an integration is updated for a guild. This returns the complete list. An integration is a connection to a guild of a user's associated accounts, e.g. youtube or twitch, for automatic assignment of roles etc.
event_router_t< guild_join_request_delete_t > | on_guild_join_request_delete
| on guild join request delete. Triggered when a user declines the membership screening questionnaire for a guild.
event_router_t< guild_member_add_t > | on_guild_member_add
| Called when a new member joins a guild.
event_router_t< guild_member_remove_t > | on_guild_member_remove
| Called when a user leaves a guild (either through being kicked, or choosing to leave).
event_router_t< guild_member_update_t > | on_guild_member_update
| Called when details of a guild member (e.g. their roles or nickname) are updated.
event_router_t< guild_members_chunk_t > | on_guild_members_chunk
| Called when a set of members is received for a guild. D++ will request these for all new guilds if needed, after the cluster::on_guild_create events.
event_router_t< guild_role_create_t > | on_guild_role_create
| Called when a new role is created on a guild.
event_router_t< guild_role_delete_t > | on_guild_role_delete
| Called when a role is deleted in a guild.
event_router_t< guild_role_update_t > | on_guild_role_update
| Called when an existing role is updated on a guild.
event_router_t< guild_scheduled_event_create_t > | on_guild_scheduled_event_create
| Called when a new scheduled event is created.
event_router_t< guild_scheduled_event_delete_t > | on_guild_scheduled_event_delete
| Called when a new scheduled event is deleted.
event_router_t< guild_scheduled_event_update_t > | on_guild_scheduled_event_update
| Called when a new scheduled event is updated.
event_router_t< guild_scheduled_event_user_add_t > | on_guild_scheduled_event_user_add
| Called when a user is added to a scheduled event.
event_router_t< guild_scheduled_event_user_remove_t > | on_guild_scheduled_event_user_remove
| Called when a user is removed from a scheduled event.
event_router_t< guild_stickers_update_t > | on_guild_stickers_update
| Called when new stickers are added to a guild. The complete set of stickers is sent every time.
event_router_t< guild_update_t > | on_guild_update
| Called when details of a guild are updated.
event_router_t< integration_create_t > | on_integration_create
| Called when a new integration is attached to a guild by a user. An integration is a connection to a guild of a user's associated accounts, e.g. youtube or twitch, for automatic assignment of roles etc.
event_router_t< integration_delete_t > | on_integration_delete
| Called when an integration is removed by a user. An integration is a connection to a guild of a user's associated accounts, e.g. youtube or twitch, for automatic assignment of roles etc.
event_router_t< integration_update_t > | on_integration_update
| Called when an integration is updated by a user. This returns details of just the single integration that has changed. An integration is a connection to a guild of a user's associated accounts, e.g. youtube or twitch, for automatic assignment of roles etc.
event_router_t< interaction_create_t > | on_interaction_create
| Called when a new interaction is created. Interactions are created by discord when commands you have registered are issued by a user. For an example of this in action please see Using Slash Commands and Interactions.
event_router_t< invite_create_t > | on_invite_create
| Called when a new invite is created for a guild.
event_router_t< invite_delete_t > | on_invite_delete
| Called when an invite is deleted from a guild.
event_router_t< log_t > | on_log
| Called when a log message is to be written to the log. You can attach any logging system here you wish, e.g. spdlog, or even just a simple use of std::cout or printf. If nothing attaches this log event, then the library will be silent.
event_router_t< message_context_menu_t > | on_message_context_menu
| Called when a user right-clicks or long-presses on a message, where a slash command is bound to the dpp::ctxm_message command type.
event_router_t< message_create_t > | on_message_create
| Called when a new message arrives from discord. Note that D++ does not cache messages. If you want to cache these objects you should create something yourself within your bot. Caching of messages is not on the roadmap to be supported as it consumes excessive amounts of RAM. For an example for caching of messages, please see Caching Messages.
event_router_t< message_delete_t > | on_message_delete
| Called when a message is deleted. The message has already been deleted from Discord when you receive this event.
event_router_t< message_delete_bulk_t > | on_message_delete_bulk
| Called when multiple messages are deleted from a channel or DM.
event_router_t< message_poll_vote_add_t > | on_message_poll_vote_add
| Called when a vote is added to a message poll.
event_router_t< message_poll_vote_remove_t > | on_message_poll_vote_remove
| Called when a vote is removed from a message poll.
event_router_t< message_reaction_add_t > | on_message_reaction_add
| Called when a new reaction is added to a message.
event_router_t< message_reaction_remove_t > | on_message_reaction_remove
| Called when a single reaction is removed from a message.
event_router_t< message_reaction_remove_all_t > | on_message_reaction_remove_all
| Called when all reactions are removed from a message.
event_router_t< message_reaction_remove_emoji_t > | on_message_reaction_remove_emoji
| Called when all reactions for a particular emoji are removed from a message.
event_router_t< message_update_t > | on_message_update
| Called when a message is updated (edited).
event_router_t< presence_update_t > | on_presence_update
| Called when a user's presence is updated. To receive these you will need the GUILD_PRESENCES privileged intent. You will receive many of these, very often, and receiving them will significantly increase your bot's CPU usage. If you don't need them it is recommended to not ask for them.
event_router_t< ready_t > | on_ready
| Called when a shard is connected and ready. A set of cluster::on_guild_create events will follow this event.
event_router_t< resumed_t > | on_resumed
| Called when a connection to a shard successfully resumes. A resumed session does not need to re-synchronise guilds, members, etc. This is generally non-fatal and informational only.
event_router_t< select_click_t > | on_select_click
| Called when a select menu is clicked attached to a message. Select menu clicks are triggered by discord when select menus are clicked which you have associated with a message using dpp::component.
event_router_t< slashcommand_t > | on_slashcommand
| Called when a slash command is issued. Only dpp::ctxm_chat_input types of interaction are routed to this event. For an example of this in action please see Using Slash Commands and Interactions.
event_router_t< socket_close_t > | on_socket_close
| Called when a file descriptor is removed from the socket engine.
event_router_t< stage_instance_create_t > | on_stage_instance_create
| Called when a new stage instance is created on a stage channel.
event_router_t< stage_instance_delete_t > | on_stage_instance_delete
| Called when an existing stage instance is deleted from a stage channel.
event_router_t< stage_instance_update_t > | on_stage_instance_update
| Called when a stage instance is updated.
event_router_t< thread_create_t > | on_thread_create
| Called when a thread is created. Note that threads are not cached by D++, but a list of thread IDs is accessible in a guild object.
event_router_t< thread_delete_t > | on_thread_delete
| Called when a thread is deleted.
event_router_t< thread_list_sync_t > | on_thread_list_sync
| Called when thread list is synced (upon gaining access to a channel). Note that threads are not cached by D++, but a list of thread IDs is accessible in a guild object.
event_router_t< thread_member_update_t > | on_thread_member_update
| Called when current user's thread member object is updated.
event_router_t< thread_members_update_t > | on_thread_members_update
| Called when a thread's member list is updated (without GUILD_MEMBERS intent, is only called for current user).
event_router_t< thread_update_t > | on_thread_update
| Called when a thread is updated.
event_router_t< typing_start_t > | on_typing_start
| Called when a user is typing on a channel.
event_router_t< user_context_menu_t > | on_user_context_menu
| Called when a user right-clicks or long-presses on a user, where a slash command is bound to the dpp::ctxm_user command type.
event_router_t< user_update_t > | on_user_update
| Called when a user is updated. This is separate to cluster::on_guild_member_update and includes things such as an avatar change, username change, discriminator change or change in subscription status for nitro.
event_router_t< voice_buffer_send_t > | on_voice_buffer_send

Called when packets are sent from the voice buffer. The voice buffer contains packets that are already encoded with Opus and encrypted with XChaCha20-Poly1305, and merged into packets by the repacketizer, which is done in the dpp::discord_voice_client::send_audio method. You should use the buffer size properties of dpp::voice_buffer_send_t to determine if you should fill the buffer with more content.

event_router_t< voice_channel_effect_send_t > | on_voice_channel_effect_send
| on voice channel effect send event
event_router_t< voice_client_disconnect_t > | on_voice_client_disconnect
| on voice client disconnect event
event_router_t< voice_client_platform_t > | on_voice_client_platform
| on voice client platform event After a client connects, or on joining a vc, you will receive the platform type of each client. This is either desktop or mobile.
event_router_t< voice_client_speaking_t > | on_voice_client_speaking
| on voice client speaking event
event_router_t< voice_ready_t > | on_voice_ready
| Called when a voice channel is connected and ready to send audio. Note that this is not directly attached to the READY event of the websocket, as there is further connection that needs to be done before audio is ready to send.
event_router_t< voice_receive_t > | on_voice_receive
| Called when new audio data is received. Each separate user's audio from the voice channel will arrive tagged with their user id in the event, if a user can be attributed to the received audio.
event_router_t< voice_receive_t > | on_voice_receive_combined
| Called when new audio data is received, combined and mixed for all speaking users.
event_router_t< voice_server_update_t > | on_voice_server_update
| Called when we are told which voice server we can use. This will be sent either when we establish a new voice channel connection, or as discord rearrange their infrastructure.
event_router_t< voice_state_update_t > | on_voice_state_update
| on voice state update event
event_router_t< voice_track_marker_t > | on_voice_track_marker
| Called when sending of audio passes over a track marker. Track markers are arbitrarily placed "bookmarks" in the audio buffer, placed by the bot developer. Each track marker can have a string value associated with it which is specified in dpp::discord_voice_client::insert_marker and returned to this event.
event_router_t< webhooks_update_t > | on_webhooks_update
| Called when the webhooks for a guild are updated.
uint16_t | request_timeout = 60
| The time (in seconds) that a request is allowed to take.
double | rest_ping
| REST latency (HTTPS ping) in seconds.
std::unique_ptr< socket_engine_base > | socketengine
| Socket engine instance.
std::atomic_bool | terminating {false}
| Atomic bool to set to true when the cluster is terminating.
std::string | token
| Current bot token for all shards on this cluster and all commands sent via HTTP.
websocket_protocol_t | ws_mode
| Websocket mode for all shards in the cluster, either ws_json or ws_etf. Production bots should use ETF, while development bots should use JSON.

## Friends

class | discord_client
class | discord_voice_client

## Detailed Description

The cluster class represents a group of shards and a command queue for sending and receiving commands from discord via HTTP. You should usually instantiate a cluster object at the very least to make use of the library.

## Constructor & Destructor Documentation

## ◆ cluster() [1/4]

dpp::cluster::cluster | ( | uint32_t | pool_threads = std::thread::hardware_concurrency()/2 | ) |

explicit

Constructor for creating a cluster without a token. A cluster created without a token has no shards, and just runs the event loop. You can use this to make asynchronous HTTP requests via e.g. dpp::cluster::request without having to connect to a websocket to receive shard events.

Parameters

  pool_threads | The number of threads to allocate for the thread pool. This defaults to half your system concurrency and if set to a number less than 4, will default to 4. All callbacks and events are placed into the thread pool. The bigger you make this pool (but generally no bigger than your number of cores), the more your bot will scale.

Exceptions

  dpp::exception | Thrown on windows, if WinSock fails to initialise, or on any other system if a dpp::request_queue fails to construct

## ◆ cluster() [2/4]

dpp::cluster::cluster | ( | const std::string & | token,
|  | uint32_t | intents = i_default_intents,
|  | uint32_t | shards = 0,
|  | uint32_t | cluster_id = 0,
|  | uint32_t | maxclusters = 1,
|  | bool | compressed = true,
|  | cache_policy_t | policy = cache_policy::cpol_default,
|  | uint32_t | pool_threads = std::thread::hardware_concurrency()/2 )

Constructor for creating a cluster. All but the token are optional.

Parameters

  token | The bot token to use for all HTTP commands and websocket connections
  intents | A bitmask of dpd::intents values for all shards on this cluster. This is required to be sent for all bots with over 100 servers.
  shards | The total number of shards on this bot. If there are multiple clusters, then (shards / clusters) actual shards will run on this cluster. If you omit this value, the library will attempt to query the Discord API for the correct number of shards to start.
  cluster_id | The ID of this cluster, should be between 0 and MAXCLUSTERS-1
  maxclusters | The total number of clusters that are active, which may be on separate processes or even separate machines.
  compressed | Whether or not to use compression for shards on this cluster. Saves a ton of bandwidth at the cost of some CPU
  policy | Set the caching policy for the cluster, either lazy (only cache users/members when they message the bot) or aggressive (request whole member lists on seeing new guilds too)
  pool_threads | The number of threads to allocate for the thread pool. This defaults to half your system concurrency and if set to a number less than 4, will default to 4. All callbacks and events are placed into the thread pool. The bigger you make this pool (but generally no bigger than your number of cores), the more your bot will scale.

Exceptions

  dpp::exception | Thrown on windows, if WinSock fails to initialise, or on any other system if a dpp::request_queue fails to construct

## ◆ cluster() [3/4]

dpp::cluster::cluster | ( | const cluster & |  | ) |

delete

dpp::cluster is non-copyable

## ◆ cluster() [4/4]

dpp::cluster::cluster | ( | const cluster && |  | ) |

delete

dpp::cluster is non-moveable

## ◆ ~cluster()

virtual dpp::cluster::~cluster | ( |  | ) |

virtual

Destroy the cluster object.

## Member Function Documentation

## ◆ active_requests()

size_t dpp::cluster::active_requests | ( |  | ) |

Get the number of currently active HTTP(S) requests active in the cluster. This total includes all in-flight API requests and calls to dpp::cluster::request(). Note that once a request is passed to the thread pool it is no longer counted here.

Returns
  Total active request count

## ◆ application_emoji_create()

void dpp::cluster::application_emoji_create | ( | const class emoji & | newemoji,
|  | command_completion_event_t | callback = utility::log_error() )

Create an Application Emoji.

See also
  https://discord.com/developers/docs/resources/emoji#create-application-emoji

Parameters

  newemoji | The emoji to create
  callback | Function to call when the API call completes. On success the callback will contain a dpp::emoji object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ application_emoji_delete()

void dpp::cluster::application_emoji_delete | ( | snowflake | emoji_id,
|  | command_completion_event_t | callback = utility::log_error() )

Delete an Application Emoji.

See also
  https://discord.com/developers/docs/resources/emoji#delete-application-emoji

Parameters

  emoji_id | The emoji's ID to delete.
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ application_emoji_edit()

void dpp::cluster::application_emoji_edit | ( | const class emoji & | newemoji,
|  | command_completion_event_t | callback = utility::log_error() )

Edit an Application Emoji.

See also
  https://discord.com/developers/docs/resources/emoji#modify-application-emoji

Parameters

  newemoji | The emoji to edit
  callback | Function to call when the API call completes. On success the callback will contain a dpp::emoji object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ application_emoji_get()

void dpp::cluster::application_emoji_get | ( | snowflake | emoji_id,
|  | command_completion_event_t | callback = utility::log_error() )

Get an Application Emoji.

See also
  https://discord.com/developers/docs/resources/emoji#get-application-emoji

Parameters

  emoji_id | The ID of the Emoji to get.
  callback | Function to call when the API call completes. On success the callback will contain a dpp::emoji object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ application_emojis_get()

void dpp::cluster::application_emojis_get | ( | command_completion_event_t | callback = utility::log_error() | ) |

List all Application Emojis.

See also
  https://discord.com/developers/docs/resources/emoji#list-application-emojis

Parameters

  callback | Function to call when the API call completes. On success the callback will contain a dpp::emoji_map object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ application_role_connection_get()

void dpp::cluster::application_role_connection_get | ( | snowflake | application_id,
|  | command_completion_event_t | callback )

Get the application's role connection metadata records.

See also
  https://discord.com/developers/docs/resources/application-role-connection-metadata#get-application-role-connection-metadata-records

Parameters

  application_id | The application ID
  callback | Function to call when the API call completes. On success the callback will contain a dpp::application_role_connection_metadata_list object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ application_role_connection_update()

void dpp::cluster::application_role_connection_update | ( | snowflake | application_id,
|  | const std::vector< application_role_connection_metadata > & | connection_metadata,
|  | command_completion_event_t | callback = utility::log_error() )

Update the application's role connection metadata records.

See also
  https://discord.com/developers/docs/resources/application-role-connection-metadata#update-application-role-connection-metadata-records

Parameters

  application_id | The application ID
  connection_metadata | The application role connection metadata to update
  callback | Function to call when the API call completes. On success the callback will contain a dpp::application_role_connection_metadata_list object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

Note
  An application can have a maximum of 5 metadata records.

## ◆ automod_rule_create()

void dpp::cluster::automod_rule_create | ( | snowflake | guild_id,
|  | const automod_rule & | r,
|  | command_completion_event_t | callback = utility::log_error() )

Create an auto moderation rule.

Parameters

  guild_id | Guild id of the auto moderation rule
  r | Auto moderation rule to create
  callback | Function to call when the API call completes. On success the callback will contain a dpp::automod_rule object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ automod_rule_delete()

void dpp::cluster::automod_rule_delete | ( | snowflake | guild_id,
|  | snowflake | rule_id,
|  | command_completion_event_t | callback = utility::log_error() )

Delete an auto moderation rule.

Parameters

  guild_id | Guild id of the auto moderation rule
  rule_id | Auto moderation rule id to delete
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ automod_rule_edit()

void dpp::cluster::automod_rule_edit | ( | snowflake | guild_id,
|  | const automod_rule & | r,
|  | command_completion_event_t | callback = utility::log_error() )

Edit an auto moderation rule.

Parameters

  guild_id | Guild id of the auto moderation rule
  r | Auto moderation rule to edit. The rule's id must be set.
  callback | Function to call when the API call completes. On success the callback will contain a dpp::automod_rule object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ automod_rule_get()

void dpp::cluster::automod_rule_get | ( | snowflake | guild_id,
|  | snowflake | rule_id,
|  | command_completion_event_t | callback )

Get a single auto moderation rule.

Parameters

  guild_id | Guild id of the auto moderation rule
  rule_id | Rule id to retrieve
  callback | Function to call when the API call completes. On success the callback will contain a dpp::automod_rule object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ automod_rules_get()

void dpp::cluster::automod_rules_get | ( | snowflake | guild_id,
|  | command_completion_event_t | callback )

Get all auto moderation rules for a guild.

Parameters

  guild_id | Guild id of the auto moderation rule
  callback | Function to call when the API call completes. On success the callback will contain a dpp::automod_rule_map object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ channel_create()

void dpp::cluster::channel_create | ( | const class channel & | c,
|  | command_completion_event_t | callback = utility::log_error() )

Create a channel.

Create a new channel object for the guild. Requires the MANAGE_CHANNELS permission. If setting permission overwrites, only permissions your bot has in the guild can be allowed/denied. Setting MANAGE_ROLES permission in channels is only possible for guild administrators. Returns the new channel object on success. Fires a Channel Create Gateway event.

All parameters to this endpoint are optional excluding name

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  https://discord.com/developers/docs/resources/channel#create-channel

Parameters

  c | Channel to create
  callback | Function to call when the API call completes. On success the callback will contain a dpp::channel object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ channel_delete()

void dpp::cluster::channel_delete | ( | snowflake | channel_id,
|  | command_completion_event_t | callback = utility::log_error() )

Delete a channel.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  https://discord.com/developers/docs/resources/channel#deleteclose-channel

Parameters

  channel_id | Channel id to delete
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ channel_delete_permission()

void dpp::cluster::channel_delete_permission | ( | const class channel & | c,
|  | snowflake | overwrite_id,
|  | command_completion_event_t | callback = utility::log_error() )

Remove a permission from a channel.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  https://discord.com/developers/docs/resources/channel#delete-channel-permission

Parameters

  c | Channel to remove permission from
  overwrite_id | Overwrite to remove, user or channel ID
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ channel_edit()

void dpp::cluster::channel_edit | ( | const class channel & | c,
|  | command_completion_event_t | callback = utility::log_error() )

Edit a channel.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  https://discord.com/developers/docs/resources/channel#modify-channel

Parameters

  c | Channel to edit/update
  callback | Function to call when the API call completes. On success the callback will contain a dpp::channel object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ channel_edit_permissions() [1/2]

void dpp::cluster::channel_edit_permissions | ( | const class channel & | c,
|  | const snowflake | overwrite_id,
|  | const uint64_t | allow,
|  | const uint64_t | deny,
|  | const bool | member,
|  | command_completion_event_t | callback = utility::log_error() )

Edit a channel's permissions.

See also
  https://discord.com/developers/docs/resources/channel#edit-channel-permissions

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  c | Channel to set permissions for
  overwrite_id | Overwrite to change (a user or role ID)
  allow | Bitmask of allowed permissions (refer to enum dpp::permissions)
  deny | Bitmask of denied permissions (refer to enum dpp::permissions)
  member | true if the overwrite_id is a user id, false if it is a channel id
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ channel_edit_permissions() [2/2]

void dpp::cluster::channel_edit_permissions | ( | const snowflake | channel_id,
|  | const snowflake | overwrite_id,
|  | const uint64_t | allow,
|  | const uint64_t | deny,
|  | const bool | member,
|  | command_completion_event_t | callback = utility::log_error() )

Edit a channel's permissions.

See also
  https://discord.com/developers/docs/resources/channel#edit-channel-permissions

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  channel_id | ID of the channel to set permissions for
  overwrite_id | Overwrite to change (a user or role ID)
  allow | Bitmask of allowed permissions (refer to enum dpp::permissions)
  deny | Bitmask of denied permissions (refer to enum dpp::permissions)
  member | true if the overwrite_id is a user id, false if it is a channel id
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ channel_edit_positions()

void dpp::cluster::channel_edit_positions | ( | const std::vector< channel > & | c,
|  | command_completion_event_t | callback = utility::log_error() )

Edit multiple channels positions.

Modify the positions of a set of channel objects for the guild. Requires MANAGE_CHANNELS permission. Fires multiple Channel Update Gateway events. Only channels to be modified are required.

See also
  https://discord.com/developers/docs/resources/guild#modify-guild-channel-positions

Parameters

  c | Channel to change the position for
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ channel_follow_news()

void dpp::cluster::channel_follow_news | ( | const class channel & | c,
|  | snowflake | target_channel_id,
|  | command_completion_event_t | callback = utility::log_error() )

Follow an announcement (news) channel.

See also
  https://discord.com/developers/docs/resources/channel#follow-news-channel

Parameters

  c | Channel id to follow
  target_channel_id | Channel to subscribe the channel to
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ channel_get()

void dpp::cluster::channel_get | ( | snowflake | c,
|  | command_completion_event_t | callback )

Get a channel.

See also
  https://discord.com/developers/docs/resources/channel#get-channel

Parameters

  c | Channel ID to retrieve
  callback | Function to call when the API call completes. On success the callback will contain a dpp::channel object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ channel_invite_create()

void dpp::cluster::channel_invite_create | ( | const class channel & | c,
|  | const class invite & | i,
|  | command_completion_event_t | callback = utility::log_error() )

Create invite for a channel.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  https://discord.com/developers/docs/resources/channel#create-channel-invite

Parameters

  c | Channel to create an invite on
  i | Invite to create
  callback | Function to call when the API call completes. On success the callback will contain a dpp::invite object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ channel_invites_get()

void dpp::cluster::channel_invites_get | ( | const class channel & | c,
|  | command_completion_event_t | callback )

Get invites for a channel.

See also
  https://discord.com/developers/docs/resources/invite#get-invites

Parameters

  c | Channel to get invites for
  callback | Function to call when the API call completes. On success the callback will contain a dpp::invite_map object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ channel_pins_get() [1/2]

void dpp::cluster::channel_pins_get | ( | snowflake | channel_id,
|  | command_completion_event_t | callback )

Get a channel's pins.

See also
  https://discord.com/developers/docs/resources/channel#get-pinned-messages

Parameters

  channel_id | Channel ID to get pins for
  callback | Function to call when the API call completes. On success the callback will contain a dpp::message_pin_map object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ channel_pins_get() [2/2]

void dpp::cluster::channel_pins_get | ( | snowflake | channel_id,
|  | std::optional< time_t > | before,
|  | std::optional< uint64_t > | limit,
|  | command_completion_event_t | callback )

Get a channel's pins.

See also
  https://discord.com/developers/docs/resources/channel#get-pinned-messages

Parameters

  channel_id | Channel ID to get pins for
  before | Get messages pinned before this timestamp.
  limit | Max number of pins to return (1-50). Defaults to 50 if not set.
  callback | Function to call when the API call completes. On success the callback will contain a dpp::message_pin_map object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ channel_set_voice_status()

void dpp::cluster::channel_set_voice_status | ( | snowflake | channel_id,
|  | const std::string & | status,
|  | command_completion_event_t | callback = utility::log_error() )

Set the status of a voice channel.

See also
  https://github.com/discord/discord-api-docs/pull/6400 (please replace soon).

Parameters

  channel_id | The channel to update.
  status | The new status for the channel.
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ channel_typing() [1/2]

void dpp::cluster::channel_typing | ( | const class channel & | c,
|  | command_completion_event_t | callback = utility::log_error() )

Trigger channel typing indicator.

See also
  https://discord.com/developers/docs/resources/channel#trigger-typing-indicator

Parameters

  c | Channel to set as typing on
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ channel_typing() [2/2]

void dpp::cluster::channel_typing | ( | snowflake | cid,
|  | command_completion_event_t | callback = utility::log_error() )

Trigger channel typing indicator.

See also
  https://discord.com/developers/docs/resources/channel#trigger-typing-indicator

Parameters

  cid | Channel ID to set as typing on
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ channels_get()

void dpp::cluster::channels_get | ( | snowflake | guild_id,
|  | command_completion_event_t | callback )

Get all channels for a guild.

See also
  https://discord.com/developers/docs/resources/channel#get-channels

Parameters

  guild_id | Guild ID to retrieve channels for
  callback | Function to call when the API call completes. On success the callback will contain a dpp::channel_map object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ clear_audit_reason()

cluster & dpp::cluster::clear_audit_reason | ( |  | ) |

Clear the audit log reason for the next REST call to be made. This is set per-thread, so you must ensure that if you call this method, your request that is associated with the reason happens on the same thread where you set the reason. Once the next call is made, the audit log reason is cleared for this thread automatically.

Example:

bot.set_audit_reason("Won't be sent")
.clear_audit_reason()
.channel_delete(my_channel_id);

Returns
  cluster& Reference to self for chaining.

## ◆ co_application_emoji_create() [1/2]

async< confirmation_callback_t > co_application_emoji_create | ( | const class emoji & | newemoji | ) |

nodiscard

Create an Application Emoji.

See also
  dpp::cluster::application_emoji_create
  https://discord.com/developers/docs/resources/emoji#create-application-emoji

Parameters

  newemoji | The emoji to create

Returns
  emoji returned object on completion

## ◆ co_application_emoji_create() [2/2]

async< confirmation_callback_t > co_application_emoji_create | ( | const class emoji & | newemoji | ) |

nodiscard

Create an Application Emoji.

See also
  dpp::cluster::application_emoji_create
  https://discord.com/developers/docs/resources/emoji#create-application-emoji

Parameters

  newemoji | The emoji to create

Returns
  emoji returned object on completion

## ◆ co_application_emoji_delete() [1/2]

async< confirmation_callback_t > co_application_emoji_delete | ( | snowflake | emoji_id | ) |

nodiscard

Delete an Application Emoji.

See also
  dpp::cluster::application_emoji_delete
  https://discord.com/developers/docs/resources/emoji#delete-application-emoji

Parameters

  emoji_id | The emoji's ID to delete.

Returns
  confirmation returned object on completion

## ◆ co_application_emoji_delete() [2/2]

async< confirmation_callback_t > co_application_emoji_delete | ( | snowflake | emoji_id | ) |

nodiscard

Delete an Application Emoji.

See also
  dpp::cluster::application_emoji_delete
  https://discord.com/developers/docs/resources/emoji#delete-application-emoji

Parameters

  emoji_id | The emoji's ID to delete.

Returns
  confirmation returned object on completion

## ◆ co_application_emoji_edit() [1/2]

async< confirmation_callback_t > co_application_emoji_edit | ( | const class emoji & | newemoji | ) |

nodiscard

Edit an Application Emoji.

See also
  dpp::cluster::application_emoji_edit
  https://discord.com/developers/docs/resources/emoji#modify-application-emoji

Parameters

  newemoji | The emoji to edit

Returns
  emoji returned object on completion

## ◆ co_application_emoji_edit() [2/2]

async< confirmation_callback_t > co_application_emoji_edit | ( | const class emoji & | newemoji | ) |

nodiscard

Edit an Application Emoji.

See also
  dpp::cluster::application_emoji_edit
  https://discord.com/developers/docs/resources/emoji#modify-application-emoji

Parameters

  newemoji | The emoji to edit

Returns
  emoji returned object on completion

## ◆ co_application_emoji_get() [1/2]

async< confirmation_callback_t > co_application_emoji_get | ( | snowflake | emoji_id | ) |

nodiscard

Get an Application Emoji.

See also
  dpp::cluster::application_emoji_get
  https://discord.com/developers/docs/resources/emoji#get-application-emoji

Parameters

  emoji_id | The ID of the Emoji to get.

Returns
  emoji returned object on completion

## ◆ co_application_emoji_get() [2/2]

async< confirmation_callback_t > co_application_emoji_get | ( | snowflake | emoji_id | ) |

nodiscard

Get an Application Emoji.

See also
  dpp::cluster::application_emoji_get
  https://discord.com/developers/docs/resources/emoji#get-application-emoji

Parameters

  emoji_id | The ID of the Emoji to get.

Returns
  emoji returned object on completion

## ◆ co_application_emojis_get() [1/2]

async< confirmation_callback_t > co_application_emojis_get | ( |  | ) |

nodiscard

List all Application Emojis.

See also
  dpp::cluster::application_emojis_get
  https://discord.com/developers/docs/resources/emoji#list-application-emojis

Returns
  emoji_map returned object on completion

## ◆ co_application_emojis_get() [2/2]

async< confirmation_callback_t > co_application_emojis_get | ( |  | ) |

nodiscard

List all Application Emojis.

See also
  dpp::cluster::application_emojis_get
  https://discord.com/developers/docs/resources/emoji#list-application-emojis

Returns
  emoji_map returned object on completion

## ◆ co_application_role_connection_get() [1/2]

async< confirmation_callback_t > co_application_role_connection_get | ( | snowflake | application_id | ) |

nodiscard

Get the application's role connection metadata records.

See also
  dpp::cluster::application_role_connection_get
  https://discord.com/developers/docs/resources/application-role-connection-metadata#get-application-role-connection-metadata-records

Parameters

  application_id | The application ID

Returns
  application_role_connection_metadata_list returned object on completion

## ◆ co_application_role_connection_get() [2/2]

async< confirmation_callback_t > co_application_role_connection_get | ( | snowflake | application_id | ) |

nodiscard

Get the application's role connection metadata records.

See also
  dpp::cluster::application_role_connection_get
  https://discord.com/developers/docs/resources/application-role-connection-metadata#get-application-role-connection-metadata-records

Parameters

  application_id | The application ID

Returns
  application_role_connection_metadata_list returned object on completion

## ◆ co_application_role_connection_update() [1/2]

async< confirmation_callback_t > co_application_role_connection_update | ( | snowflake | application_id,
|  | const std::vector< application_role_connection_metadata > & | connection_metadata )

nodiscard

Update the application's role connection metadata records.

See also
  dpp::cluster::application_role_connection_update
  https://discord.com/developers/docs/resources/application-role-connection-metadata#update-application-role-connection-metadata-records

Parameters

  application_id | The application ID
  connection_metadata | The application role connection metadata to update

Returns
  application_role_connection_metadata_list returned object on completion

Note
  An application can have a maximum of 5 metadata records.

## ◆ co_application_role_connection_update() [2/2]

async< confirmation_callback_t > co_application_role_connection_update | ( | snowflake | application_id,
|  | const std::vector< application_role_connection_metadata > & | connection_metadata )

nodiscard

Update the application's role connection metadata records.

See also
  dpp::cluster::application_role_connection_update
  https://discord.com/developers/docs/resources/application-role-connection-metadata#update-application-role-connection-metadata-records

Parameters

  application_id | The application ID
  connection_metadata | The application role connection metadata to update

Returns
  application_role_connection_metadata_list returned object on completion

Note
  An application can have a maximum of 5 metadata records.

## ◆ co_automod_rule_create() [1/2]

async< confirmation_callback_t > co_automod_rule_create | ( | snowflake | guild_id,
|  | const automod_rule & | r )

nodiscard

Create an auto moderation rule.

Parameters

  guild_id | Guild id of the auto moderation rule
  r | Auto moderation rule to create

Returns
  automod_rule returned object on completion

## ◆ co_automod_rule_create() [2/2]

async< confirmation_callback_t > co_automod_rule_create | ( | snowflake | guild_id,
|  | const automod_rule & | r )

nodiscard

Create an auto moderation rule.

Parameters

  guild_id | Guild id of the auto moderation rule
  r | Auto moderation rule to create

Returns
  automod_rule returned object on completion

## ◆ co_automod_rule_delete() [1/2]

async< confirmation_callback_t > co_automod_rule_delete | ( | snowflake | guild_id,
|  | snowflake | rule_id )

nodiscard

Delete an auto moderation rule.

Parameters

  guild_id | Guild id of the auto moderation rule
  rule_id | Auto moderation rule id to delete

Returns
  confirmation returned object on completion

## ◆ co_automod_rule_delete() [2/2]

async< confirmation_callback_t > co_automod_rule_delete | ( | snowflake | guild_id,
|  | snowflake | rule_id )

nodiscard

Delete an auto moderation rule.

Parameters

  guild_id | Guild id of the auto moderation rule
  rule_id | Auto moderation rule id to delete

Returns
  confirmation returned object on completion

## ◆ co_automod_rule_edit() [1/2]

async< confirmation_callback_t > co_automod_rule_edit | ( | snowflake | guild_id,
|  | const automod_rule & | r )

nodiscard

Edit an auto moderation rule.

Parameters

  guild_id | Guild id of the auto moderation rule
  r | Auto moderation rule to edit. The rule's id must be set.

Returns
  automod_rule returned object on completion

## ◆ co_automod_rule_edit() [2/2]

async< confirmation_callback_t > co_automod_rule_edit | ( | snowflake | guild_id,
|  | const automod_rule & | r )

nodiscard

Edit an auto moderation rule.

Parameters

  guild_id | Guild id of the auto moderation rule
  r | Auto moderation rule to edit. The rule's id must be set.

Returns
  automod_rule returned object on completion

## ◆ co_automod_rule_get() [1/2]

async< confirmation_callback_t > co_automod_rule_get | ( | snowflake | guild_id,
|  | snowflake | rule_id )

nodiscard

Get a single auto moderation rule.

Parameters

  guild_id | Guild id of the auto moderation rule
  rule_id | Rule id to retrieve

Returns
  automod_rule returned object on completion

## ◆ co_automod_rule_get() [2/2]

async< confirmation_callback_t > co_automod_rule_get | ( | snowflake | guild_id,
|  | snowflake | rule_id )

nodiscard

Get a single auto moderation rule.

Parameters

  guild_id | Guild id of the auto moderation rule
  rule_id | Rule id to retrieve

Returns
  automod_rule returned object on completion

## ◆ co_automod_rules_get() [1/2]

async< confirmation_callback_t > co_automod_rules_get | ( | snowflake | guild_id | ) |

nodiscard

Get all auto moderation rules for a guild.

Parameters

  guild_id | Guild id of the auto moderation rule

Returns
  automod_rule_map returned object on completion

## ◆ co_automod_rules_get() [2/2]

async< confirmation_callback_t > co_automod_rules_get | ( | snowflake | guild_id | ) |

nodiscard

Get all auto moderation rules for a guild.

Parameters

  guild_id | Guild id of the auto moderation rule

Returns
  automod_rule_map returned object on completion

## ◆ co_channel_create() [1/2]

async< confirmation_callback_t > co_channel_create | ( | const class channel & | c | ) |

nodiscard

Create a channel.

Create a new channel object for the guild. Requires the MANAGE_CHANNELS permission. If setting permission overwrites, only permissions your bot has in the guild can be allowed/denied. Setting MANAGE_ROLES permission in channels is only possible for guild administrators. Returns the new channel object on success. Fires a Channel Create Gateway event.

All parameters to this endpoint are optional excluding name

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  dpp::cluster::channel_create
  https://discord.com/developers/docs/resources/channel#create-channel

Parameters

  c | Channel to create

Returns
  channel returned object on completion

## ◆ co_channel_create() [2/2]

async< confirmation_callback_t > co_channel_create | ( | const class channel & | c | ) |

nodiscard

Create a channel.

Create a new channel object for the guild. Requires the MANAGE_CHANNELS permission. If setting permission overwrites, only permissions your bot has in the guild can be allowed/denied. Setting MANAGE_ROLES permission in channels is only possible for guild administrators. Returns the new channel object on success. Fires a Channel Create Gateway event.

All parameters to this endpoint are optional excluding name

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  dpp::cluster::channel_create
  https://discord.com/developers/docs/resources/channel#create-channel

Parameters

  c | Channel to create

Returns
  channel returned object on completion

## ◆ co_channel_delete() [1/2]

async< confirmation_callback_t > co_channel_delete | ( | snowflake | channel_id | ) |

nodiscard

Delete a channel.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  dpp::cluster::channel_delete
  https://discord.com/developers/docs/resources/channel#deleteclose-channel

Parameters

  channel_id | Channel id to delete

Returns
  confirmation returned object on completion

## ◆ co_channel_delete() [2/2]

async< confirmation_callback_t > co_channel_delete | ( | snowflake | channel_id | ) |

nodiscard

Delete a channel.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  dpp::cluster::channel_delete
  https://discord.com/developers/docs/resources/channel#deleteclose-channel

Parameters

  channel_id | Channel id to delete

Returns
  confirmation returned object on completion

## ◆ co_channel_delete_permission() [1/2]

async< confirmation_callback_t > co_channel_delete_permission | ( | const class channel & | c,
|  | snowflake | overwrite_id )

nodiscard

Remove a permission from a channel.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  dpp::cluster::channel_delete_permission
  https://discord.com/developers/docs/resources/channel#delete-channel-permission

Parameters

  c | Channel to remove permission from
  overwrite_id | Overwrite to remove, user or channel ID

Returns
  confirmation returned object on completion

## ◆ co_channel_delete_permission() [2/2]

async< confirmation_callback_t > co_channel_delete_permission | ( | const class channel & | c,
|  | snowflake | overwrite_id )

nodiscard

Remove a permission from a channel.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  dpp::cluster::channel_delete_permission
  https://discord.com/developers/docs/resources/channel#delete-channel-permission

Parameters

  c | Channel to remove permission from
  overwrite_id | Overwrite to remove, user or channel ID

Returns
  confirmation returned object on completion

## ◆ co_channel_edit() [1/2]

async< confirmation_callback_t > co_channel_edit | ( | const class channel & | c | ) |

nodiscard

Edit a channel.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  dpp::cluster::channel_edit
  https://discord.com/developers/docs/resources/channel#modify-channel

Parameters

  c | Channel to edit/update

Returns
  channel returned object on completion

## ◆ co_channel_edit() [2/2]

async< confirmation_callback_t > co_channel_edit | ( | const class channel & | c | ) |

nodiscard

Edit a channel.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  dpp::cluster::channel_edit
  https://discord.com/developers/docs/resources/channel#modify-channel

Parameters

  c | Channel to edit/update

Returns
  channel returned object on completion

## ◆ co_channel_edit_permissions() [1/4]

async< confirmation_callback_t > co_channel_edit_permissions | ( | const class channel & | c,
|  | const snowflake | overwrite_id,
|  | const uint64_t | allow,
|  | const uint64_t | deny,
|  | const bool | member )

nodiscard

Edit a channel's permissions.

See also
  dpp::cluster::channel_edit_permissions
  https://discord.com/developers/docs/resources/channel#edit-channel-permissions

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  c | Channel to set permissions for
  overwrite_id | Overwrite to change (a user or role ID)
  allow | Bitmask of allowed permissions (refer to enum dpp::permissions)
  deny | Bitmask of denied permissions (refer to enum dpp::permissions)
  member | true if the overwrite_id is a user id, false if it is a channel id

Returns
  confirmation returned object on completion

## ◆ co_channel_edit_permissions() [2/4]

async< confirmation_callback_t > co_channel_edit_permissions | ( | const class channel & | c,
|  | const snowflake | overwrite_id,
|  | const uint64_t | allow,
|  | const uint64_t | deny,
|  | const bool | member )

nodiscard

Edit a channel's permissions.

See also
  dpp::cluster::channel_edit_permissions
  https://discord.com/developers/docs/resources/channel#edit-channel-permissions

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  c | Channel to set permissions for
  overwrite_id | Overwrite to change (a user or role ID)
  allow | Bitmask of allowed permissions (refer to enum dpp::permissions)
  deny | Bitmask of denied permissions (refer to enum dpp::permissions)
  member | true if the overwrite_id is a user id, false if it is a channel id

Returns
  confirmation returned object on completion

## ◆ co_channel_edit_permissions() [3/4]

async< confirmation_callback_t > co_channel_edit_permissions | ( | const snowflake | channel_id,
|  | const snowflake | overwrite_id,
|  | const uint64_t | allow,
|  | const uint64_t | deny,
|  | const bool | member )

nodiscard

Edit a channel's permissions.

See also
  dpp::cluster::channel_edit_permissions
  https://discord.com/developers/docs/resources/channel#edit-channel-permissions

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  channel_id | ID of the channel to set permissions for
  overwrite_id | Overwrite to change (a user or role ID)
  allow | Bitmask of allowed permissions (refer to enum dpp::permissions)
  deny | Bitmask of denied permissions (refer to enum dpp::permissions)
  member | true if the overwrite_id is a user id, false if it is a channel id

Returns
  confirmation returned object on completion

## ◆ co_channel_edit_permissions() [4/4]

async< confirmation_callback_t > co_channel_edit_permissions | ( | const snowflake | channel_id,
|  | const snowflake | overwrite_id,
|  | const uint64_t | allow,
|  | const uint64_t | deny,
|  | const bool | member )

nodiscard

Edit a channel's permissions.

See also
  dpp::cluster::channel_edit_permissions
  https://discord.com/developers/docs/resources/channel#edit-channel-permissions

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  channel_id | ID of the channel to set permissions for
  overwrite_id | Overwrite to change (a user or role ID)
  allow | Bitmask of allowed permissions (refer to enum dpp::permissions)
  deny | Bitmask of denied permissions (refer to enum dpp::permissions)
  member | true if the overwrite_id is a user id, false if it is a channel id

Returns
  confirmation returned object on completion

## ◆ co_channel_edit_positions() [1/2]

async< confirmation_callback_t > co_channel_edit_positions | ( | const std::vector< channel > & | c | ) |

nodiscard

Edit multiple channels positions.

Modify the positions of a set of channel objects for the guild. Requires MANAGE_CHANNELS permission. Fires multiple Channel Update Gateway events. Only channels to be modified are required.

See also
  dpp::cluster::channel_edit_positions
  https://discord.com/developers/docs/resources/guild#modify-guild-channel-positions

Parameters

  c | Channel to change the position for

Returns
  confirmation returned object on completion

## ◆ co_channel_edit_positions() [2/2]

async< confirmation_callback_t > co_channel_edit_positions | ( | const std::vector< channel > & | c | ) |

nodiscard

Edit multiple channels positions.

Modify the positions of a set of channel objects for the guild. Requires MANAGE_CHANNELS permission. Fires multiple Channel Update Gateway events. Only channels to be modified are required.

See also
  dpp::cluster::channel_edit_positions
  https://discord.com/developers/docs/resources/guild#modify-guild-channel-positions

Parameters

  c | Channel to change the position for

Returns
  confirmation returned object on completion

## ◆ co_channel_follow_news() [1/2]

async< confirmation_callback_t > co_channel_follow_news | ( | const class channel & | c,
|  | snowflake | target_channel_id )

nodiscard

Follow an announcement (news) channel.

See also
  dpp::cluster::channel_follow_news
  https://discord.com/developers/docs/resources/channel#follow-news-channel

Parameters

  c | Channel id to follow
  target_channel_id | Channel to subscribe the channel to

Returns
  confirmation returned object on completion

## ◆ co_channel_follow_news() [2/2]

async< confirmation_callback_t > co_channel_follow_news | ( | const class channel & | c,
|  | snowflake | target_channel_id )

nodiscard

Follow an announcement (news) channel.

See also
  dpp::cluster::channel_follow_news
  https://discord.com/developers/docs/resources/channel#follow-news-channel

Parameters

  c | Channel id to follow
  target_channel_id | Channel to subscribe the channel to

Returns
  confirmation returned object on completion

## ◆ co_channel_get() [1/2]

async< confirmation_callback_t > co_channel_get | ( | snowflake | c | ) |

nodiscard

Get a channel.

See also
  dpp::cluster::channel_get
  https://discord.com/developers/docs/resources/channel#get-channel

Parameters

  c | Channel ID to retrieve

Returns
  channel returned object on completion

## ◆ co_channel_get() [2/2]

async< confirmation_callback_t > co_channel_get | ( | snowflake | c | ) |

nodiscard

Get a channel.

See also
  dpp::cluster::channel_get
  https://discord.com/developers/docs/resources/channel#get-channel

Parameters

  c | Channel ID to retrieve

Returns
  channel returned object on completion

## ◆ co_channel_invite_create() [1/2]

async< confirmation_callback_t > co_channel_invite_create | ( | const class channel & | c,
|  | const class invite & | i )

nodiscard

Create invite for a channel.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  dpp::cluster::channel_invite_create
  https://discord.com/developers/docs/resources/channel#create-channel-invite

Parameters

  c | Channel to create an invite on
  i | Invite to create

Returns
  invite returned object on completion

## ◆ co_channel_invite_create() [2/2]

async< confirmation_callback_t > co_channel_invite_create | ( | const class channel & | c,
|  | const class invite & | i )

nodiscard

Create invite for a channel.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  dpp::cluster::channel_invite_create
  https://discord.com/developers/docs/resources/channel#create-channel-invite

Parameters

  c | Channel to create an invite on
  i | Invite to create

Returns
  invite returned object on completion

## ◆ co_channel_invites_get() [1/2]

async< confirmation_callback_t > co_channel_invites_get | ( | const class channel & | c | ) |

nodiscard

Get invites for a channel.

See also
  dpp::cluster::channel_invites_get
  https://discord.com/developers/docs/resources/invite#get-invites

Parameters

  c | Channel to get invites for

Returns
  invite_map returned object on completion

## ◆ co_channel_invites_get() [2/2]

async< confirmation_callback_t > co_channel_invites_get | ( | const class channel & | c | ) |

nodiscard

Get invites for a channel.

See also
  dpp::cluster::channel_invites_get
  https://discord.com/developers/docs/resources/invite#get-invites

Parameters

  c | Channel to get invites for

Returns
  invite_map returned object on completion

## ◆ co_channel_pins_get() [1/4]

async< confirmation_callback_t > co_channel_pins_get | ( | snowflake | channel_id | ) |

nodiscard

Get a channel's pins.

See also
  dpp::cluster::channel_pins_get
  https://discord.com/developers/docs/resources/channel#get-pinned-messages

Parameters

  channel_id | Channel ID to get pins for

Returns
  message_pin_map returned object on completion

## ◆ co_channel_pins_get() [2/4]

async< confirmation_callback_t > co_channel_pins_get | ( | snowflake | channel_id | ) |

nodiscard

Get a channel's pins.

See also
  dpp::cluster::channel_pins_get
  https://discord.com/developers/docs/resources/channel#get-pinned-messages

Parameters

  channel_id | Channel ID to get pins for

Returns
  message_pin_map returned object on completion

## ◆ co_channel_pins_get() [3/4]

async< confirmation_callback_t > co_channel_pins_get | ( | snowflake | channel_id,
|  | std::optional< time_t > | before,
|  | std::optional< uint64_t > | limit )

nodiscard

Get a channel's pins.

See also
  dpp::cluster::channel_pins_get
  https://discord.com/developers/docs/resources/channel#get-pinned-messages

Parameters

  channel_id | Channel ID to get pins for
  before | Get messages pinned before this timestamp.
  limit | Max number of pins to return (1-50). Defaults to 50 if not set.

Returns
  message_pin_map returned object on completion

## ◆ co_channel_pins_get() [4/4]

async< confirmation_callback_t > co_channel_pins_get | ( | snowflake | channel_id,
|  | std::optional< time_t > | before,
|  | std::optional< uint64_t > | limit )

nodiscard

Get a channel's pins.

See also
  dpp::cluster::channel_pins_get
  https://discord.com/developers/docs/resources/channel#get-pinned-messages

Parameters

  channel_id | Channel ID to get pins for
  before | Get messages pinned before this timestamp.
  limit | Max number of pins to return (1-50). Defaults to 50 if not set.

Returns
  message_pin_map returned object on completion

## ◆ co_channel_set_voice_status() [1/2]

async< confirmation_callback_t > co_channel_set_voice_status | ( | snowflake | channel_id,
|  | const std::string & | status )

nodiscard

Set the status of a voice channel.

See also
  dpp::cluster::channel_set_voice_status
  https://github.com/discord/discord-api-docs/pull/6400 (please replace soon).

Parameters

  channel_id | The channel to update.
  status | The new status for the channel.

Returns
  confirmation returned object on completion

## ◆ co_channel_set_voice_status() [2/2]

async< confirmation_callback_t > co_channel_set_voice_status | ( | snowflake | channel_id,
|  | const std::string & | status )

nodiscard

Set the status of a voice channel.

See also
  dpp::cluster::channel_set_voice_status
  https://github.com/discord/discord-api-docs/pull/6400 (please replace soon).

Parameters

  channel_id | The channel to update.
  status | The new status for the channel.

Returns
  confirmation returned object on completion

## ◆ co_channel_typing() [1/4]

async< confirmation_callback_t > co_channel_typing | ( | const class channel & | c | ) |

nodiscard

Trigger channel typing indicator.

See also
  dpp::cluster::channel_typing
  https://discord.com/developers/docs/resources/channel#trigger-typing-indicator

Parameters

  c | Channel to set as typing on

Returns
  confirmation returned object on completion

## ◆ co_channel_typing() [2/4]

async< confirmation_callback_t > co_channel_typing | ( | const class channel & | c | ) |

nodiscard

Trigger channel typing indicator.

See also
  dpp::cluster::channel_typing
  https://discord.com/developers/docs/resources/channel#trigger-typing-indicator

Parameters

  c | Channel to set as typing on

Returns
  confirmation returned object on completion

## ◆ co_channel_typing() [3/4]

async< confirmation_callback_t > co_channel_typing | ( | snowflake | cid | ) |

nodiscard

Trigger channel typing indicator.

See also
  dpp::cluster::channel_typing
  https://discord.com/developers/docs/resources/channel#trigger-typing-indicator

Parameters

  cid | Channel ID to set as typing on

Returns
  confirmation returned object on completion

## ◆ co_channel_typing() [4/4]

async< confirmation_callback_t > co_channel_typing | ( | snowflake | cid | ) |

nodiscard

Trigger channel typing indicator.

See also
  dpp::cluster::channel_typing
  https://discord.com/developers/docs/resources/channel#trigger-typing-indicator

Parameters

  cid | Channel ID to set as typing on

Returns
  confirmation returned object on completion

## ◆ co_channels_get() [1/2]

async< confirmation_callback_t > co_channels_get | ( | snowflake | guild_id | ) |

nodiscard

Get all channels for a guild.

See also
  dpp::cluster::channels_get
  https://discord.com/developers/docs/resources/channel#get-channels

Parameters

  guild_id | Guild ID to retrieve channels for

Returns
  channel_map returned object on completion

## ◆ co_channels_get() [2/2]

async< confirmation_callback_t > co_channels_get | ( | snowflake | guild_id | ) |

nodiscard

Get all channels for a guild.

See also
  dpp::cluster::channels_get
  https://discord.com/developers/docs/resources/channel#get-channels

Parameters

  guild_id | Guild ID to retrieve channels for

Returns
  channel_map returned object on completion

## ◆ co_create_dm_channel() [1/2]

async< confirmation_callback_t > co_create_dm_channel | ( | snowflake | user_id | ) |

nodiscard

Create a dm channel.

See also
  dpp::cluster::create_dm_channel
  https://discord.com/developers/docs/resources/user#create-dm

Parameters

  user_id | User ID to create DM channel with

Returns
  channel returned object on completion

## ◆ co_create_dm_channel() [2/2]

async< confirmation_callback_t > co_create_dm_channel | ( | snowflake | user_id | ) |

nodiscard

Create a dm channel.

See also
  dpp::cluster::create_dm_channel
  https://discord.com/developers/docs/resources/user#create-dm

Parameters

  user_id | User ID to create DM channel with

Returns
  channel returned object on completion

## ◆ co_create_webhook()

async< confirmation_callback_t > dpp::cluster::co_create_webhook | ( | const class webhook & | wh | ) |

nodiscard

## ◆ co_current_application_get() [1/2]

async< confirmation_callback_t > co_current_application_get | ( |  | ) |

nodiscard

Get current (bot) application.

See also
  dpp::cluster::current_application_get
  https://discord.com/developers/docs/topics/oauth2#get-current-bot-application-information

Returns
  application returned object on completion

## ◆ co_current_application_get() [2/2]

async< confirmation_callback_t > co_current_application_get | ( |  | ) |

nodiscard

Get current (bot) application.

See also
  dpp::cluster::current_application_get
  https://discord.com/developers/docs/topics/oauth2#get-current-bot-application-information

Returns
  application returned object on completion

## ◆ co_current_user_connections_get() [1/2]

async< confirmation_callback_t > co_current_user_connections_get | ( |  | ) |

nodiscard

Get current user's connections (linked accounts, e.g. steam, xbox). This call requires the oauth2 connections scope and cannot be executed against a bot token.

See also
  dpp::cluster::current_user_connections_get
  https://discord.com/developers/docs/resources/user#get-user-connections

Returns
  connection_map returned object on completion

## ◆ co_current_user_connections_get() [2/2]

async< confirmation_callback_t > co_current_user_connections_get | ( |  | ) |

nodiscard

Get current user's connections (linked accounts, e.g. steam, xbox). This call requires the oauth2 connections scope and cannot be executed against a bot token.

See also
  dpp::cluster::current_user_connections_get
  https://discord.com/developers/docs/resources/user#get-user-connections

Returns
  connection_map returned object on completion

## ◆ co_current_user_edit() [1/2]

async< confirmation_callback_t > co_current_user_edit | ( | const std::string & | nickname,
|  | const std::string & | avatar_blob = "",
|  | const image_type | avatar_type = i_png,
|  | const std::string & | banner_blob = "",
|  | const image_type | banner_type = i_png )

nodiscard

Edit current (bot) user.

Modify the requester's user account settings. Returns a dpp::user object on success. Fires a User Update Gateway event.

Note
  There appears to be no limit to the image size, however, if your image cannot be processed/uploaded in time, you will receive a malformed http request.

See also
  dpp::cluster::current_user_edit
  https://discord.com/developers/docs/resources/user#modify-current-user

Parameters

  nickname | Nickname to set
  avatar_blob | Avatar data to upload
  avatar_type | Type of image for avatar. It can be one of i_gif, i_jpg or i_png.
  banner_blob | Banner data to upload
  banner_type | Type of image for Banner. It can be one of i_gif, i_jpg or i_png.

Returns
  user returned object on completion

Exceptions

  dpp::length_exception | Image data is larger than the maximum size of 256 kilobytes

## ◆ co_current_user_edit() [2/2]

async< confirmation_callback_t > co_current_user_edit | ( | const std::string & | nickname,
|  | const std::string & | avatar_blob = "",
|  | const image_type | avatar_type = i_png,
|  | const std::string & | banner_blob = "",
|  | const image_type | banner_type = i_png )

nodiscard

Edit current (bot) user.

Modify the requester's user account settings. Returns a dpp::user object on success. Fires a User Update Gateway event.

Note
  There appears to be no limit to the image size, however, if your image cannot be processed/uploaded in time, you will receive a malformed http request.

See also
  dpp::cluster::current_user_edit
  https://discord.com/developers/docs/resources/user#modify-current-user

Parameters

  nickname | Nickname to set
  avatar_blob | Avatar data to upload
  avatar_type | Type of image for avatar. It can be one of i_gif, i_jpg or i_png.
  banner_blob | Banner data to upload
  banner_type | Type of image for Banner. It can be one of i_gif, i_jpg or i_png.

Returns
  user returned object on completion

Exceptions

  dpp::length_exception | Image data is larger than the maximum size of 256 kilobytes

## ◆ co_current_user_get() [1/2]

async< confirmation_callback_t > co_current_user_get | ( |  | ) |

nodiscard

Get current (bot) user.

See also
  dpp::cluster::current_user_get
  https://discord.com/developers/docs/resources/user#get-current-user

Returns
  user_identified returned object on completion

Note
  The user_identified object is a subclass of dpp::user which contains further details if you have the oauth2 identify or email scopes. If you do not have these scopes, these fields are empty. You can safely convert a user_identified to user with dynamic_cast.

## ◆ co_current_user_get() [2/2]

async< confirmation_callback_t > co_current_user_get | ( |  | ) |

nodiscard

Get current (bot) user.

See also
  dpp::cluster::current_user_get
  https://discord.com/developers/docs/resources/user#get-current-user

Returns
  user_identified returned object on completion

Note
  The user_identified object is a subclass of dpp::user which contains further details if you have the oauth2 identify or email scopes. If you do not have these scopes, these fields are empty. You can safely convert a user_identified to user with dynamic_cast.

## ◆ co_current_user_get_dms() [1/2]

async< confirmation_callback_t > co_current_user_get_dms | ( |  | ) |

nodiscard

Get current user DM channels.

Returns
  channel_map returned object on completion

## ◆ co_current_user_get_dms() [2/2]

async< confirmation_callback_t > co_current_user_get_dms | ( |  | ) |

nodiscard

Get current user DM channels.

Returns
  channel_map returned object on completion

## ◆ co_current_user_get_guilds() [1/2]

async< confirmation_callback_t > co_current_user_get_guilds | ( |  | ) |

nodiscard

Get current (bot) user guilds.

See also
  dpp::cluster::current_user_get_guilds
  https://discord.com/developers/docs/resources/user#get-current-user-guilds

Returns
  guild_map returned object on completion

## ◆ co_current_user_get_guilds() [2/2]

async< confirmation_callback_t > co_current_user_get_guilds | ( |  | ) |

nodiscard

Get current (bot) user guilds.

See also
  dpp::cluster::current_user_get_guilds
  https://discord.com/developers/docs/resources/user#get-current-user-guilds

Returns
  guild_map returned object on completion

## ◆ co_current_user_get_voice_state() [1/2]

async< confirmation_callback_t > co_current_user_get_voice_state | ( | snowflake | guild_id | ) |

nodiscard

Get the bot's voice state in a guild without a Gateway connection.

See also
  dpp::cluster::current_user_get_voice_state
  https://discord.com/developers/docs/resources/voice#get-current-user-voice-state

Parameters

  guild_id | Guild to get the voice state for

Returns
  voicestate returned object on completion

## ◆ co_current_user_get_voice_state() [2/2]

async< confirmation_callback_t > co_current_user_get_voice_state | ( | snowflake | guild_id | ) |

nodiscard

Get the bot's voice state in a guild without a Gateway connection.

See also
  dpp::cluster::current_user_get_voice_state
  https://discord.com/developers/docs/resources/voice#get-current-user-voice-state

Parameters

  guild_id | Guild to get the voice state for

Returns
  voicestate returned object on completion

## ◆ co_current_user_join_thread() [1/2]

async< confirmation_callback_t > co_current_user_join_thread | ( | snowflake | thread_id | ) |

nodiscard

Join a thread.

See also
  dpp::cluster::current_user_join_thread
  https://discord.com/developers/docs/resources/channel#join-thread

Parameters

  thread_id | Thread ID to join

Returns
  confirmation returned object on completion

## ◆ co_current_user_join_thread() [2/2]

async< confirmation_callback_t > co_current_user_join_thread | ( | snowflake | thread_id | ) |

nodiscard

Join a thread.

See also
  dpp::cluster::current_user_join_thread
  https://discord.com/developers/docs/resources/channel#join-thread

Parameters

  thread_id | Thread ID to join

Returns
  confirmation returned object on completion

## ◆ co_current_user_leave_guild() [1/2]

async< confirmation_callback_t > co_current_user_leave_guild | ( | snowflake | guild_id | ) |

nodiscard

Leave a guild.

See also
  dpp::cluster::current_user_leave_guild
  https://discord.com/developers/docs/resources/user#leave-guild

Parameters

  guild_id | Guild ID to leave

Returns
  confirmation returned object on completion

## ◆ co_current_user_leave_guild() [2/2]

async< confirmation_callback_t > co_current_user_leave_guild | ( | snowflake | guild_id | ) |

nodiscard

Leave a guild.

See also
  dpp::cluster::current_user_leave_guild
  https://discord.com/developers/docs/resources/user#leave-guild

Parameters

  guild_id | Guild ID to leave

Returns
  confirmation returned object on completion

## ◆ co_current_user_leave_thread() [1/2]

async< confirmation_callback_t > co_current_user_leave_thread | ( | snowflake | thread_id | ) |

nodiscard

Leave a thread.

See also
  dpp::cluster::current_user_leave_thread
  https://discord.com/developers/docs/resources/channel#leave-thread

Parameters

  thread_id | Thread ID to leave

Returns
  confirmation returned object on completion

## ◆ co_current_user_leave_thread() [2/2]

async< confirmation_callback_t > co_current_user_leave_thread | ( | snowflake | thread_id | ) |

nodiscard

Leave a thread.

See also
  dpp::cluster::current_user_leave_thread
  https://discord.com/developers/docs/resources/channel#leave-thread

Parameters

  thread_id | Thread ID to leave

Returns
  confirmation returned object on completion

## ◆ co_current_user_set_voice_state() [1/2]

async< confirmation_callback_t > co_current_user_set_voice_state | ( | snowflake | guild_id,
|  | snowflake | channel_id,
|  | bool | suppress = false,
|  | time_t | request_to_speak_timestamp = 0 )

nodiscard

Set the bot's voice state on a stage channel.

Caveats

There are currently several caveats for this endpoint:

- channel_id must currently point to a stage channel.
- current user must already have joined channel_id.
- You must have the MUTE_MEMBERS permission to unsuppress yourself. You can always suppress yourself.
- You must have the REQUEST_TO_SPEAK permission to request to speak. You can always clear your own request to speak.
- You are able to set request_to_speak_timestamp to any present or future time.

See also
  dpp::cluster::current_user_set_voice_state
  https://discord.com/developers/docs/resources/guild#modify-current-user-voice-state

Parameters

  guild_id | Guild to set voice state on
  channel_id | Stage channel to set voice state on

Returns
  confirmation returned object on completion

Parameters

  suppress | True if the user's audio should be suppressed, false if it should not
  request_to_speak_timestamp | The time at which we requested to speak, or 0 to clear the request. The time set here must be the current time or in the future.

Exceptions

  std::logic_exception | You attempted to set a request_to_speak_timestamp in the past which is not the value of 0.

## ◆ co_current_user_set_voice_state() [2/2]

async< confirmation_callback_t > co_current_user_set_voice_state | ( | snowflake | guild_id,
|  | snowflake | channel_id,
|  | bool | suppress = false,
|  | time_t | request_to_speak_timestamp = 0 )

nodiscard

Set the bot's voice state on a stage channel.

Caveats

There are currently several caveats for this endpoint:

- channel_id must currently point to a stage channel.
- current user must already have joined channel_id.
- You must have the MUTE_MEMBERS permission to unsuppress yourself. You can always suppress yourself.
- You must have the REQUEST_TO_SPEAK permission to request to speak. You can always clear your own request to speak.
- You are able to set request_to_speak_timestamp to any present or future time.

See also
  dpp::cluster::current_user_set_voice_state
  https://discord.com/developers/docs/resources/guild#modify-current-user-voice-state

Parameters

  guild_id | Guild to set voice state on
  channel_id | Stage channel to set voice state on

Returns
  confirmation returned object on completion

Parameters

  suppress | True if the user's audio should be suppressed, false if it should not
  request_to_speak_timestamp | The time at which we requested to speak, or 0 to clear the request. The time set here must be the current time or in the future.

Exceptions

  std::logic_exception | You attempted to set a request_to_speak_timestamp in the past which is not the value of 0.

## ◆ co_delete_webhook() [1/2]

async< confirmation_callback_t > co_delete_webhook | ( | snowflake | webhook_id | ) |

nodiscard

Delete a webhook.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  dpp::cluster::delete_webhook
  https://discord.com/developers/docs/resources/webhook#delete-webhook

Parameters

  webhook_id | Webhook ID to delete

Returns
  confirmation returned object on completion

## ◆ co_delete_webhook() [2/2]

async< confirmation_callback_t > co_delete_webhook | ( | snowflake | webhook_id | ) |

nodiscard

Delete a webhook.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  dpp::cluster::delete_webhook
  https://discord.com/developers/docs/resources/webhook#delete-webhook

Parameters

  webhook_id | Webhook ID to delete

Returns
  confirmation returned object on completion

## ◆ co_delete_webhook_message() [1/2]

async< confirmation_callback_t > co_delete_webhook_message | ( | const class webhook & | wh,
|  | snowflake | message_id,
|  | snowflake | thread_id = 0 )

nodiscard

Delete webhook message.

See also
  dpp::cluster::delete_webhook_message
  https://discord.com/developers/docs/resources/webhook#delete-webhook-message

Parameters

  wh | Webhook to delete message for
  message_id | Message ID to delete
  thread_id | ID of the thread the message is in

Returns
  confirmation returned object on completion

## ◆ co_delete_webhook_message() [2/2]

async< confirmation_callback_t > co_delete_webhook_message | ( | const class webhook & | wh,
|  | snowflake | message_id,
|  | snowflake | thread_id = 0 )

nodiscard

Delete webhook message.

See also
  dpp::cluster::delete_webhook_message
  https://discord.com/developers/docs/resources/webhook#delete-webhook-message

Parameters

  wh | Webhook to delete message for
  message_id | Message ID to delete
  thread_id | ID of the thread the message is in

Returns
  confirmation returned object on completion

## ◆ co_delete_webhook_with_token() [1/2]

async< confirmation_callback_t > co_delete_webhook_with_token | ( | snowflake | webhook_id,
|  | const std::string & | token )

nodiscard

Delete webhook with token.

See also
  dpp::cluster::delete_webhook_with_token
  https://discord.com/developers/docs/resources/webhook#delete-webhook-with-token

Parameters

  webhook_id | Webhook ID to delete
  token | Token of webhook to delete

Returns
  confirmation returned object on completion

## ◆ co_delete_webhook_with_token() [2/2]

async< confirmation_callback_t > co_delete_webhook_with_token | ( | snowflake | webhook_id,
|  | const std::string & | token )

nodiscard

Delete webhook with token.

See also
  dpp::cluster::delete_webhook_with_token
  https://discord.com/developers/docs/resources/webhook#delete-webhook-with-token

Parameters

  webhook_id | Webhook ID to delete
  token | Token of webhook to delete

Returns
  confirmation returned object on completion

## ◆ co_direct_message_create() [1/2]

async< confirmation_callback_t > co_direct_message_create | ( | snowflake | user_id,
|  | const message & | m )

nodiscard

Create a direct message, also create the channel for the direct message if needed.

See also
  dpp::cluster::direct_message_create
  https://discord.com/developers/docs/resources/user#create-dm
  dpp::cluster::direct_message_create
  https://discord.com/developers/docs/resources/channel#create-message

Parameters

  user_id | User ID of user to send message to
  m | Message object

Returns
  message returned object on completion

## ◆ co_direct_message_create() [2/2]

async< confirmation_callback_t > co_direct_message_create | ( | snowflake | user_id,
|  | const message & | m )

nodiscard

Create a direct message, also create the channel for the direct message if needed.

See also
  dpp::cluster::direct_message_create
  https://discord.com/developers/docs/resources/user#create-dm
  dpp::cluster::direct_message_create
  https://discord.com/developers/docs/resources/channel#create-message

Parameters

  user_id | User ID of user to send message to
  m | Message object

Returns
  message returned object on completion

## ◆ co_edit_webhook() [1/2]

async< confirmation_callback_t > co_edit_webhook | ( | const class webhook & | wh | ) |

nodiscard

Edit webhook.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  dpp::cluster::edit_webhook
  https://discord.com/developers/docs/resources/webhook#modify-webhook

Parameters

  wh | Webhook to edit

Returns
  webhook returned object on completion

## ◆ co_edit_webhook() [2/2]

async< confirmation_callback_t > co_edit_webhook | ( | const class webhook & | wh | ) |

nodiscard

Edit webhook.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  dpp::cluster::edit_webhook
  https://discord.com/developers/docs/resources/webhook#modify-webhook

Parameters

  wh | Webhook to edit

Returns
  webhook returned object on completion

## ◆ co_edit_webhook_message() [1/2]

async< confirmation_callback_t > co_edit_webhook_message | ( | const class webhook & | wh,
|  | const struct message & | m,
|  | snowflake | thread_id = 0 )

nodiscard

Edit webhook message.

When the content field is edited, the mentions array in the message object will be reconstructed from scratch based on the new content. The allowed_mentions field of the edit request controls how this happens. If there is no explicit allowed_mentions in the edit request, the content will be parsed with default allowances, that is, without regard to whether or not an allowed_mentions was present in the request that originally created the message.

See also
  dpp::cluster::edit_webhook_message
  https://discord.com/developers/docs/resources/webhook#edit-webhook-message

Note
  the attachments array must contain all attachments that should be present after edit, including retained and new attachments provided in the request body.

Parameters

  wh | Webhook to edit message for
  m | New message
  thread_id | ID of the thread the message is in

Returns
  message returned object on completion

## ◆ co_edit_webhook_message() [2/2]

async< confirmation_callback_t > co_edit_webhook_message | ( | const class webhook & | wh,
|  | const struct message & | m,
|  | snowflake | thread_id = 0 )

nodiscard

Edit webhook message.

When the content field is edited, the mentions array in the message object will be reconstructed from scratch based on the new content. The allowed_mentions field of the edit request controls how this happens. If there is no explicit allowed_mentions in the edit request, the content will be parsed with default allowances, that is, without regard to whether or not an allowed_mentions was present in the request that originally created the message.

See also
  dpp::cluster::edit_webhook_message
  https://discord.com/developers/docs/resources/webhook#edit-webhook-message

Note
  the attachments array must contain all attachments that should be present after edit, including retained and new attachments provided in the request body.

Parameters

  wh | Webhook to edit message for
  m | New message
  thread_id | ID of the thread the message is in

Returns
  message returned object on completion

## ◆ co_edit_webhook_with_token() [1/2]

async< confirmation_callback_t > co_edit_webhook_with_token | ( | const class webhook & | wh | ) |

nodiscard

Edit webhook with token (token is encapsulated in the webhook object).

See also
  dpp::cluster::edit_webhook_with_token
  https://discord.com/developers/docs/resources/webhook#modify-webhook-with-token

Parameters

  wh | Webhook to edit (should include token)

Returns
  webhook returned object on completion

## ◆ co_edit_webhook_with_token() [2/2]

async< confirmation_callback_t > co_edit_webhook_with_token | ( | const class webhook & | wh | ) |

nodiscard

Edit webhook with token (token is encapsulated in the webhook object).

See also
  dpp::cluster::edit_webhook_with_token
  https://discord.com/developers/docs/resources/webhook#modify-webhook-with-token

Parameters

  wh | Webhook to edit (should include token)

Returns
  webhook returned object on completion

## ◆ co_entitlement_consume() [1/2]

async< confirmation_callback_t > co_entitlement_consume | ( | snowflake | entitlement_id | ) |

nodiscard

For One-Time Purchase consumable SKUs, marks a given entitlement for the user as consumed.

See also
  dpp::cluster::entitlement_consume
  https://discord.com/developers/docs/monetization/entitlements#consume-an-entitlement

Parameters

  entitlement_id | The entitlement to mark as consumed.

Returns
  confirmation returned object on completion

## ◆ co_entitlement_consume() [2/2]

async< confirmation_callback_t > co_entitlement_consume | ( | snowflake | entitlement_id | ) |

nodiscard

For One-Time Purchase consumable SKUs, marks a given entitlement for the user as consumed.

See also
  dpp::cluster::entitlement_consume
  https://discord.com/developers/docs/monetization/entitlements#consume-an-entitlement

Parameters

  entitlement_id | The entitlement to mark as consumed.

Returns
  confirmation returned object on completion

## ◆ co_entitlement_test_create() [1/2]

async< confirmation_callback_t > co_entitlement_test_create | ( | const class entitlement & | new_entitlement | ) |

nodiscard

Creates a test entitlement to a given SKU for a given guild or user. Discord will act as though that user or guild has entitlement to your premium offering.

See also
  dpp::cluster::entitlement_test_create
  https://discord.com/developers/docs/monetization/entitlements#create-test-entitlement

Parameters

  new_entitlement | The entitlement to create. Make sure your dpp::entitlement_type (inside your dpp::entitlement object) matches the type of the owner_id (if type is guild, owner_id is a guild id), otherwise it won't work!

Returns
  entitlement returned object on completion

## ◆ co_entitlement_test_create() [2/2]

async< confirmation_callback_t > co_entitlement_test_create | ( | const class entitlement & | new_entitlement | ) |

nodiscard

Creates a test entitlement to a given SKU for a given guild or user. Discord will act as though that user or guild has entitlement to your premium offering.

See also
  dpp::cluster::entitlement_test_create
  https://discord.com/developers/docs/monetization/entitlements#create-test-entitlement

Parameters

  new_entitlement | The entitlement to create. Make sure your dpp::entitlement_type (inside your dpp::entitlement object) matches the type of the owner_id (if type is guild, owner_id is a guild id), otherwise it won't work!

Returns
  entitlement returned object on completion

## ◆ co_entitlement_test_delete() [1/2]

async< confirmation_callback_t > co_entitlement_test_delete | ( | snowflake | entitlement_id | ) |

nodiscard

Deletes a currently-active test entitlement. Discord will act as though that user or guild no longer has entitlement to your premium offering.

See also
  dpp::cluster::entitlement_test_delete
  https://discord.com/developers/docs/monetization/entitlements#delete-test-entitlement

Parameters

  entitlement_id | The test entitlement to delete.

Returns
  confirmation returned object on completion

## ◆ co_entitlement_test_delete() [2/2]

async< confirmation_callback_t > co_entitlement_test_delete | ( | snowflake | entitlement_id | ) |

nodiscard

Deletes a currently-active test entitlement. Discord will act as though that user or guild no longer has entitlement to your premium offering.

See also
  dpp::cluster::entitlement_test_delete
  https://discord.com/developers/docs/monetization/entitlements#delete-test-entitlement

Parameters

  entitlement_id | The test entitlement to delete.

Returns
  confirmation returned object on completion

## ◆ co_entitlements_get() [1/2]

async< confirmation_callback_t > co_entitlements_get | ( | snowflake | user_id = 0,
|  | const std::vector< snowflake > & | sku_ids = {},
|  | snowflake | before_id = 0,
|  | snowflake | after_id = 0,
|  | uint8_t | limit = 100,
|  | snowflake | guild_id = 0,
|  | bool | exclude_ended = false )

nodiscard

Returns all entitlements for a given app, active and expired.

See also
  dpp::cluster::entitlements_get
  https://discord.com/developers/docs/monetization/entitlements#list-entitlements

Parameters

  user_id | User ID to look up entitlements for.
  sku_ids | List of SKU IDs to check entitlements for.
  before_id | Retrieve entitlements before this entitlement ID.
  after_id | Retrieve entitlements after this entitlement ID.
  limit | Number of entitlements to return, 1-100 (default 100).
  guild_id | Guild ID to look up entitlements for.
  exclude_ended | Whether ended entitlements should be excluded from the search.

Returns
  entitlement_map returned object on completion

## ◆ co_entitlements_get() [2/2]

async< confirmation_callback_t > co_entitlements_get | ( | snowflake | user_id = 0,
|  | const std::vector< snowflake > & | sku_ids = {},
|  | snowflake | before_id = 0,
|  | snowflake | after_id = 0,
|  | uint8_t | limit = 100,
|  | snowflake | guild_id = 0,
|  | bool | exclude_ended = false )

nodiscard

Returns all entitlements for a given app, active and expired.

See also
  dpp::cluster::entitlements_get
  https://discord.com/developers/docs/monetization/entitlements#list-entitlements

Parameters

  user_id | User ID to look up entitlements for.
  sku_ids | List of SKU IDs to check entitlements for.
  before_id | Retrieve entitlements before this entitlement ID.
  after_id | Retrieve entitlements after this entitlement ID.
  limit | Number of entitlements to return, 1-100 (default 100).
  guild_id | Guild ID to look up entitlements for.
  exclude_ended | Whether ended entitlements should be excluded from the search.

Returns
  entitlement_map returned object on completion

## ◆ co_execute_webhook() [1/2]

async< confirmation_callback_t > co_execute_webhook | ( | const class webhook & | wh,
|  | const struct message & | m,
|  | bool | wait = false,
|  | snowflake | thread_id = 0,
|  | const std::string & | thread_name = "" )

nodiscard

Execute webhook.

See also
  dpp::cluster::execute_webhook
  https://discord.com/developers/docs/resources/webhook#execute-webhook

Parameters

  wh | Webhook to execute
  m | Message to send
  wait | waits for server confirmation of message send before response, and returns the created message body
  thread_id | Send a message to the specified thread within a webhook's channel. The thread will automatically be unarchived
  thread_name | Name of thread to create (requires the webhook channel to be a forum channel)

Returns
  message returned object on completion

Note
  If the webhook channel is a forum channel, you must provide either thread_id or thread_name. If thread_id is provided, the message will send in that thread. If thread_name is provided, a thread with that name will be created in the forum channel.

## ◆ co_execute_webhook() [2/2]

async< confirmation_callback_t > co_execute_webhook | ( | const class webhook & | wh,
|  | const struct message & | m,
|  | bool | wait = false,
|  | snowflake | thread_id = 0,
|  | const std::string & | thread_name = "" )

nodiscard

Execute webhook.

See also
  dpp::cluster::execute_webhook
  https://discord.com/developers/docs/resources/webhook#execute-webhook

Parameters

  wh | Webhook to execute
  m | Message to send
  wait | waits for server confirmation of message send before response, and returns the created message body
  thread_id | Send a message to the specified thread within a webhook's channel. The thread will automatically be unarchived
  thread_name | Name of thread to create (requires the webhook channel to be a forum channel)

Returns
  message returned object on completion

Note
  If the webhook channel is a forum channel, you must provide either thread_id or thread_name. If thread_id is provided, the message will send in that thread. If thread_name is provided, a thread with that name will be created in the forum channel.

## ◆ co_gdm_add() [1/2]

async< confirmation_callback_t > co_gdm_add | ( | snowflake | channel_id,
|  | snowflake | user_id,
|  | const std::string & | access_token,
|  | const std::string & | nick )

nodiscard

Adds a recipient to a Group DM using their access token.

See also
  dpp::cluster::gdm_add
  https://discord.com/developers/docs/resources/channel#group-dm-add-recipient

Parameters

  channel_id | Channel id to add group DM recipients to
  user_id | User ID to add
  access_token | Access token from OAuth2
  nick | Nickname of user to apply to the chat

Returns
  confirmation returned object on completion

## ◆ co_gdm_add() [2/2]

async< confirmation_callback_t > co_gdm_add | ( | snowflake | channel_id,
|  | snowflake | user_id,
|  | const std::string & | access_token,
|  | const std::string & | nick )

nodiscard

Adds a recipient to a Group DM using their access token.

See also
  dpp::cluster::gdm_add
  https://discord.com/developers/docs/resources/channel#group-dm-add-recipient

Parameters

  channel_id | Channel id to add group DM recipients to
  user_id | User ID to add
  access_token | Access token from OAuth2
  nick | Nickname of user to apply to the chat

Returns
  confirmation returned object on completion

## ◆ co_gdm_remove() [1/2]

async< confirmation_callback_t > co_gdm_remove | ( | snowflake | channel_id,
|  | snowflake | user_id )

nodiscard

Removes a recipient from a Group DM.

See also
  dpp::cluster::gdm_remove
  https://discord.com/developers/docs/resources/channel#group-dm-remove-recipient

Parameters

  channel_id | Channel ID of group DM
  user_id | User ID to remove from group DM

Returns
  confirmation returned object on completion

## ◆ co_gdm_remove() [2/2]

async< confirmation_callback_t > co_gdm_remove | ( | snowflake | channel_id,
|  | snowflake | user_id )

nodiscard

Removes a recipient from a Group DM.

See also
  dpp::cluster::gdm_remove
  https://discord.com/developers/docs/resources/channel#group-dm-remove-recipient

Parameters

  channel_id | Channel ID of group DM
  user_id | User ID to remove from group DM

Returns
  confirmation returned object on completion

## ◆ co_get_channel_webhooks() [1/2]

async< confirmation_callback_t > co_get_channel_webhooks | ( | snowflake | channel_id | ) |

nodiscard

Get channel webhooks.

See also
  dpp::cluster::get_channel_webhooks
  https://discord.com/developers/docs/resources/webhook#get-guild-webhooks

Parameters

  channel_id | Channel ID to get webhooks for

Returns
  webhook_map returned object on completion

## ◆ co_get_channel_webhooks() [2/2]

async< confirmation_callback_t > co_get_channel_webhooks | ( | snowflake | channel_id | ) |

nodiscard

Get channel webhooks.

See also
  dpp::cluster::get_channel_webhooks
  https://discord.com/developers/docs/resources/webhook#get-guild-webhooks

Parameters

  channel_id | Channel ID to get webhooks for

Returns
  webhook_map returned object on completion

## ◆ co_get_gateway_bot() [1/2]

async< confirmation_callback_t > co_get_gateway_bot | ( |  | ) |

nodiscard

Get the gateway information for the bot using the token.

See also
  dpp::cluster::get_gateway_bot
  https://discord.com/developers/docs/topics/gateway#get-gateway-bot

Returns
  gateway returned object on completion

## ◆ co_get_gateway_bot() [2/2]

async< confirmation_callback_t > co_get_gateway_bot | ( |  | ) |

nodiscard

Get the gateway information for the bot using the token.

See also
  dpp::cluster::get_gateway_bot
  https://discord.com/developers/docs/topics/gateway#get-gateway-bot

Returns
  gateway returned object on completion

## ◆ co_get_guild_webhooks() [1/2]

async< confirmation_callback_t > co_get_guild_webhooks | ( | snowflake | guild_id | ) |

nodiscard

Get guild webhooks.

See also
  dpp::cluster::get_guild_webhooks
  https://discord.com/developers/docs/resources/webhook#get-guild-webhooks

Parameters

  guild_id | Guild ID to get webhooks for

Returns
  webhook_map returned object on completion

## ◆ co_get_guild_webhooks() [2/2]

async< confirmation_callback_t > co_get_guild_webhooks | ( | snowflake | guild_id | ) |

nodiscard

Get guild webhooks.

See also
  dpp::cluster::get_guild_webhooks
  https://discord.com/developers/docs/resources/webhook#get-guild-webhooks

Parameters

  guild_id | Guild ID to get webhooks for

Returns
  webhook_map returned object on completion

## ◆ co_get_voice_regions() [1/2]

async< confirmation_callback_t > co_get_voice_regions | ( |  | ) |

nodiscard

Get all voice regions.

See also
  dpp::cluster::get_voice_regions
  https://discord.com/developers/docs/resources/voice#list-voice-regions

Returns
  voiceregion_map returned object on completion

## ◆ co_get_voice_regions() [2/2]

async< confirmation_callback_t > co_get_voice_regions | ( |  | ) |

nodiscard

Get all voice regions.

See also
  dpp::cluster::get_voice_regions
  https://discord.com/developers/docs/resources/voice#list-voice-regions

Returns
  voiceregion_map returned object on completion

## ◆ co_get_webhook() [1/2]

async< confirmation_callback_t > co_get_webhook | ( | snowflake | webhook_id | ) |

nodiscard

Get webhook.

See also
  dpp::cluster::get_webhook
  https://discord.com/developers/docs/resources/webhook#get-webhook

Parameters

  webhook_id | Webhook ID to get

Returns
  webhook returned object on completion

## ◆ co_get_webhook() [2/2]

async< confirmation_callback_t > co_get_webhook | ( | snowflake | webhook_id | ) |

nodiscard

Get webhook.

See also
  dpp::cluster::get_webhook
  https://discord.com/developers/docs/resources/webhook#get-webhook

Parameters

  webhook_id | Webhook ID to get

Returns
  webhook returned object on completion

## ◆ co_get_webhook_message() [1/2]

async< confirmation_callback_t > co_get_webhook_message | ( | const class webhook & | wh,
|  | snowflake | message_id,
|  | snowflake | thread_id = 0 )

nodiscard

Get webhook message.

See also
  dpp::cluster::get_webhook_message
  https://discord.com/developers/docs/resources/webhook#get-webhook-message

Parameters

  wh | Webhook to get the original message for
  message_id | The message ID
  thread_id | ID of the thread the message is in

Returns
  message returned object on completion

## ◆ co_get_webhook_message() [2/2]

async< confirmation_callback_t > co_get_webhook_message | ( | const class webhook & | wh,
|  | snowflake | message_id,
|  | snowflake | thread_id = 0 )

nodiscard

Get webhook message.

See also
  dpp::cluster::get_webhook_message
  https://discord.com/developers/docs/resources/webhook#get-webhook-message

Parameters

  wh | Webhook to get the original message for
  message_id | The message ID
  thread_id | ID of the thread the message is in

Returns
  message returned object on completion

## ◆ co_get_webhook_with_token() [1/2]

async< confirmation_callback_t > co_get_webhook_with_token | ( | snowflake | webhook_id,
|  | const std::string & | token )

nodiscard

Get webhook using token.

See also
  dpp::cluster::get_webhook_with_token
  https://discord.com/developers/docs/resources/webhook#get-webhook-with-token

Parameters

  webhook_id | Webhook ID to retrieve
  token | Token of webhook

Returns
  webhook returned object on completion

## ◆ co_get_webhook_with_token() [2/2]

async< confirmation_callback_t > co_get_webhook_with_token | ( | snowflake | webhook_id,
|  | const std::string & | token )

nodiscard

Get webhook using token.

See also
  dpp::cluster::get_webhook_with_token
  https://discord.com/developers/docs/resources/webhook#get-webhook-with-token

Parameters

  webhook_id | Webhook ID to retrieve
  token | Token of webhook

Returns
  webhook returned object on completion

## ◆ co_global_bulk_command_create() [1/2]

async< confirmation_callback_t > co_global_bulk_command_create | ( | const std::vector< slashcommand > & | commands | ) |

nodiscard

Create/overwrite global slash commands. Any existing global slash commands will be deleted and replaced with these.

See also
  dpp::cluster::global_bulk_command_create
  https://discord.com/developers/docs/interactions/application-commands#bulk-overwrite-global-application-commands

Parameters

  commands | Vector of slash commands to create/update. overwriting existing commands that are registered globally for this application. Commands that do not already exist will count toward daily application command create limits.

Returns
  slashcommand_map returned object on completion

## ◆ co_global_bulk_command_create() [2/2]

async< confirmation_callback_t > co_global_bulk_command_create | ( | const std::vector< slashcommand > & | commands | ) |

nodiscard

Create/overwrite global slash commands. Any existing global slash commands will be deleted and replaced with these.

See also
  dpp::cluster::global_bulk_command_create
  https://discord.com/developers/docs/interactions/application-commands#bulk-overwrite-global-application-commands

Parameters

  commands | Vector of slash commands to create/update. overwriting existing commands that are registered globally for this application. Commands that do not already exist will count toward daily application command create limits.

Returns
  slashcommand_map returned object on completion

## ◆ co_global_bulk_command_delete() [1/2]

async< confirmation_callback_t > co_global_bulk_command_delete | ( |  | ) |

nodiscard

Delete all existing global slash commands.

See also
  dpp::cluster::global_bulk_command_delete
  https://discord.com/developers/docs/interactions/application-commands#bulk-overwrite-global-application-commands

Returns
  slashcommand_map returned object on completion

## ◆ co_global_bulk_command_delete() [2/2]

async< confirmation_callback_t > co_global_bulk_command_delete | ( |  | ) |

nodiscard

Delete all existing global slash commands.

See also
  dpp::cluster::global_bulk_command_delete
  https://discord.com/developers/docs/interactions/application-commands#bulk-overwrite-global-application-commands

Returns
  slashcommand_map returned object on completion

## ◆ co_global_command_create() [1/2]

async< confirmation_callback_t > co_global_command_create | ( | const slashcommand & | s | ) |

nodiscard

Create a global slash command (a bot can have a maximum of 100 of these).

See also
  dpp::cluster::global_command_create
  https://discord.com/developers/docs/interactions/application-commands#create-global-application-command

Parameters

  s | Slash command to create

Returns
  slashcommand returned object on completion

## ◆ co_global_command_create() [2/2]

async< confirmation_callback_t > co_global_command_create | ( | const slashcommand & | s | ) |

nodiscard

Create a global slash command (a bot can have a maximum of 100 of these).

See also
  dpp::cluster::global_command_create
  https://discord.com/developers/docs/interactions/application-commands#create-global-application-command

Parameters

  s | Slash command to create

Returns
  slashcommand returned object on completion

## ◆ co_global_command_delete() [1/2]

async< confirmation_callback_t > co_global_command_delete | ( | snowflake | id | ) |

nodiscard

Delete a global slash command (a bot can have a maximum of 100 of these).

See also
  dpp::cluster::global_command_delete
  https://discord.com/developers/docs/interactions/application-commands#delete-global-application-command

Parameters

  id | Slash command to delete

Returns
  confirmation returned object on completion

## ◆ co_global_command_delete() [2/2]

async< confirmation_callback_t > co_global_command_delete | ( | snowflake | id | ) |

nodiscard

Delete a global slash command (a bot can have a maximum of 100 of these).

See also
  dpp::cluster::global_command_delete
  https://discord.com/developers/docs/interactions/application-commands#delete-global-application-command

Parameters

  id | Slash command to delete

Returns
  confirmation returned object on completion

## ◆ co_global_command_edit() [1/2]

async< confirmation_callback_t > co_global_command_edit | ( | const slashcommand & | s | ) |

nodiscard

Edit a global slash command (a bot can have a maximum of 100 of these).

See also
  dpp::cluster::global_command_edit
  https://discord.com/developers/docs/interactions/application-commands#edit-global-application-command

Parameters

  s | Slash command to change

Returns
  confirmation returned object on completion

## ◆ co_global_command_edit() [2/2]

async< confirmation_callback_t > co_global_command_edit | ( | const slashcommand & | s | ) |

nodiscard

Edit a global slash command (a bot can have a maximum of 100 of these).

See also
  dpp::cluster::global_command_edit
  https://discord.com/developers/docs/interactions/application-commands#edit-global-application-command

Parameters

  s | Slash command to change

Returns
  confirmation returned object on completion

## ◆ co_global_command_get() [1/2]

async< confirmation_callback_t > co_global_command_get | ( | snowflake | id | ) |

nodiscard

Get a global slash command.

See also
  dpp::cluster::global_command_get
  https://discord.com/developers/docs/interactions/application-commands#get-global-application-command

Parameters

  id | The ID of the slash command

Returns
  slashcommand returned object on completion

## ◆ co_global_command_get() [2/2]

async< confirmation_callback_t > co_global_command_get | ( | snowflake | id | ) |

nodiscard

Get a global slash command.

See also
  dpp::cluster::global_command_get
  https://discord.com/developers/docs/interactions/application-commands#get-global-application-command

Parameters

  id | The ID of the slash command

Returns
  slashcommand returned object on completion

## ◆ co_global_commands_get() [1/2]

async< confirmation_callback_t > co_global_commands_get | ( |  | ) |

nodiscard

Get the application's global slash commands.

See also
  dpp::cluster::global_commands_get
  https://discord.com/developers/docs/interactions/application-commands#get-global-application-commands

Returns
  slashcommand_map returned object on completion

## ◆ co_global_commands_get() [2/2]

async< confirmation_callback_t > co_global_commands_get | ( |  | ) |

nodiscard

Get the application's global slash commands.

See also
  dpp::cluster::global_commands_get
  https://discord.com/developers/docs/interactions/application-commands#get-global-application-commands

Returns
  slashcommand_map returned object on completion

## ◆ co_guild_add_member() [1/2]

async< confirmation_callback_t > co_guild_add_member | ( | const guild_member & | gm,
|  | const std::string & | access_token )

nodiscard

Add guild member. Needs a specific oauth2 scope, from which you get the access_token.

Adds a user to the guild, provided you have a valid oauth2 access token for the user with the guilds.join scope. Returns the guild_member, which is defaulted if the user is already a member of the guild. Fires a Guild Member Add Gateway event.

For guilds with Membership Screening enabled, this endpoint will default to adding new members as pending in the guild member object. Members that are pending will have to complete membership screening before they become full members that can talk.

Note
  All parameters to this endpoint except for access_token are optional. The bot must be a member of the guild with CREATE_INSTANT_INVITE permission.

See also
  dpp::cluster::guild_add_member
  https://discord.com/developers/docs/resources/guild#add-guild-member

Parameters

  gm | Guild member to add
  access_token | Access token from Oauth2 scope

Returns
  confirmation returned object on completion

## ◆ co_guild_add_member() [2/2]

async< confirmation_callback_t > co_guild_add_member | ( | const guild_member & | gm,
|  | const std::string & | access_token )

nodiscard

Add guild member. Needs a specific oauth2 scope, from which you get the access_token.

Adds a user to the guild, provided you have a valid oauth2 access token for the user with the guilds.join scope. Returns the guild_member, which is defaulted if the user is already a member of the guild. Fires a Guild Member Add Gateway event.

For guilds with Membership Screening enabled, this endpoint will default to adding new members as pending in the guild member object. Members that are pending will have to complete membership screening before they become full members that can talk.

Note
  All parameters to this endpoint except for access_token are optional. The bot must be a member of the guild with CREATE_INSTANT_INVITE permission.

See also
  dpp::cluster::guild_add_member
  https://discord.com/developers/docs/resources/guild#add-guild-member

Parameters

  gm | Guild member to add
  access_token | Access token from Oauth2 scope

Returns
  confirmation returned object on completion

## ◆ co_guild_auditlog_get() [1/2]

async< confirmation_callback_t > co_guild_auditlog_get | ( | snowflake | guild_id,
|  | snowflake | user_id,
|  | uint32_t | action_type,
|  | snowflake | before,
|  | snowflake | after,
|  | uint32_t | limit )

nodiscard

Get the audit log for a guild.

See also
  dpp::cluster::guild_auditlog_get
  https://discord.com/developers/docs/resources/audit-log#get-guild-audit-log

Parameters

  guild_id | Guild to get the audit log of
  user_id | Entries from a specific user ID. Set this to 0 will fetch any user
  action_type | Entries for a specific dpp::audit_type. Set this to 0 will fetch any type
  before | Entries with ID less than a specific audit log entry ID. Used for paginating
  after | Entries with ID greater than a specific audit log entry ID. Used for paginating
  limit | Maximum number of entries (between 1-100) to return

Returns
  auditlog returned object on completion

## ◆ co_guild_auditlog_get() [2/2]

async< confirmation_callback_t > co_guild_auditlog_get | ( | snowflake | guild_id,
|  | snowflake | user_id,
|  | uint32_t | action_type,
|  | snowflake | before,
|  | snowflake | after,
|  | uint32_t | limit )

nodiscard

Get the audit log for a guild.

See also
  dpp::cluster::guild_auditlog_get
  https://discord.com/developers/docs/resources/audit-log#get-guild-audit-log

Parameters

  guild_id | Guild to get the audit log of
  user_id | Entries from a specific user ID. Set this to 0 will fetch any user
  action_type | Entries for a specific dpp::audit_type. Set this to 0 will fetch any type
  before | Entries with ID less than a specific audit log entry ID. Used for paginating
  after | Entries with ID greater than a specific audit log entry ID. Used for paginating
  limit | Maximum number of entries (between 1-100) to return

Returns
  auditlog returned object on completion

## ◆ co_guild_ban_add() [1/2]

async< confirmation_callback_t > co_guild_ban_add | ( | snowflake | guild_id,
|  | snowflake | user_id,
|  | uint32_t | delete_message_seconds = 0 )

nodiscard

Add guild ban.

Create a guild ban, and optionally delete previous messages sent by the banned user. Requires the BAN_MEMBERS permission. Fires a Guild Ban Add Gateway event.

See also
  dpp::cluster::guild_ban_add
  https://discord.com/developers/docs/resources/guild#create-guild-ban

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  guild_id | Guild ID to add ban to
  user_id | User ID to ban
  delete_message_seconds | How many seconds to delete messages for, between 0 and 604800 (7 days). Defaults to 0

Returns
  confirmation returned object on completion

## ◆ co_guild_ban_add() [2/2]

async< confirmation_callback_t > co_guild_ban_add | ( | snowflake | guild_id,
|  | snowflake | user_id,
|  | uint32_t | delete_message_seconds = 0 )

nodiscard

Add guild ban.

Create a guild ban, and optionally delete previous messages sent by the banned user. Requires the BAN_MEMBERS permission. Fires a Guild Ban Add Gateway event.

See also
  dpp::cluster::guild_ban_add
  https://discord.com/developers/docs/resources/guild#create-guild-ban

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  guild_id | Guild ID to add ban to
  user_id | User ID to ban
  delete_message_seconds | How many seconds to delete messages for, between 0 and 604800 (7 days). Defaults to 0

Returns
  confirmation returned object on completion

## ◆ co_guild_ban_delete() [1/2]

async< confirmation_callback_t > co_guild_ban_delete | ( | snowflake | guild_id,
|  | snowflake | user_id )

nodiscard

Delete guild ban.

Remove the ban for a user. Requires the BAN_MEMBERS permissions. Fires a Guild Ban Remove Gateway event.

See also
  dpp::cluster::guild_ban_delete
  https://discord.com/developers/docs/resources/guild#remove-guild-ban

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  guild_id | Guild to delete ban from
  user_id | User ID to delete ban for

Returns
  confirmation returned object on completion

## ◆ co_guild_ban_delete() [2/2]

async< confirmation_callback_t > co_guild_ban_delete | ( | snowflake | guild_id,
|  | snowflake | user_id )

nodiscard

Delete guild ban.

Remove the ban for a user. Requires the BAN_MEMBERS permissions. Fires a Guild Ban Remove Gateway event.

See also
  dpp::cluster::guild_ban_delete
  https://discord.com/developers/docs/resources/guild#remove-guild-ban

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  guild_id | Guild to delete ban from
  user_id | User ID to delete ban for

Returns
  confirmation returned object on completion

## ◆ co_guild_begin_prune() [1/2]

async< confirmation_callback_t > co_guild_begin_prune | ( | snowflake | guild_id,
|  | const struct prune & | pruneinfo )

nodiscard

Begin guild prune.

Begin a prune operation. Requires the KICK_MEMBERS permission. Returns a prune object indicating the number of members that were removed in the prune operation. For large guilds it's recommended to set the compute_prune_count option to false, forcing 'pruned' to 0. Fires multiple Guild Member Remove Gateway events. By default, prune will not remove users with roles. You can optionally include specific roles in your prune by providing the include_roles parameter. Any inactive user that has a subset of the provided role(s) will be included in the prune and users with additional roles will not.

See also
  dpp::cluster::guild_begin_prune
  https://discord.com/developers/docs/resources/guild#begin-guild-prune

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  guild_id | Guild ID to prune
  pruneinfo | Pruning info

Returns
  prune returned object on completion

## ◆ co_guild_begin_prune() [2/2]

async< confirmation_callback_t > co_guild_begin_prune | ( | snowflake | guild_id,
|  | const struct prune & | pruneinfo )

nodiscard

Begin guild prune.

Begin a prune operation. Requires the KICK_MEMBERS permission. Returns a prune object indicating the number of members that were removed in the prune operation. For large guilds it's recommended to set the compute_prune_count option to false, forcing 'pruned' to 0. Fires multiple Guild Member Remove Gateway events. By default, prune will not remove users with roles. You can optionally include specific roles in your prune by providing the include_roles parameter. Any inactive user that has a subset of the provided role(s) will be included in the prune and users with additional roles will not.

See also
  dpp::cluster::guild_begin_prune
  https://discord.com/developers/docs/resources/guild#begin-guild-prune

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  guild_id | Guild ID to prune
  pruneinfo | Pruning info

Returns
  prune returned object on completion

## ◆ co_guild_bulk_command_create() [1/2]

async< confirmation_callback_t > co_guild_bulk_command_create | ( | const std::vector< slashcommand > & | commands,
|  | snowflake | guild_id )

nodiscard

Create/overwrite guild slash commands. Any existing guild slash commands on this guild will be deleted and replaced with these.

See also
  dpp::cluster::guild_bulk_command_create
  https://discord.com/developers/docs/interactions/application-commands#bulk-overwrite-guild-application-commands

Parameters

  commands | Vector of slash commands to create/update. New guild commands will be available in the guild immediately. If the command did not already exist, it will count toward daily application command create limits.
  guild_id | Guild ID to create/update the slash commands in

Returns
  slashcommand_map returned object on completion

## ◆ co_guild_bulk_command_create() [2/2]

async< confirmation_callback_t > co_guild_bulk_command_create | ( | const std::vector< slashcommand > & | commands,
|  | snowflake | guild_id )

nodiscard

Create/overwrite guild slash commands. Any existing guild slash commands on this guild will be deleted and replaced with these.

See also
  dpp::cluster::guild_bulk_command_create
  https://discord.com/developers/docs/interactions/application-commands#bulk-overwrite-guild-application-commands

Parameters

  commands | Vector of slash commands to create/update. New guild commands will be available in the guild immediately. If the command did not already exist, it will count toward daily application command create limits.
  guild_id | Guild ID to create/update the slash commands in

Returns
  slashcommand_map returned object on completion

## ◆ co_guild_bulk_command_delete() [1/2]

async< confirmation_callback_t > co_guild_bulk_command_delete | ( | snowflake | guild_id | ) |

nodiscard

Delete all existing guild slash commands.

See also
  dpp::cluster::guild_bulk_command_delete
  https://discord.com/developers/docs/interactions/application-commands#bulk-overwrite-global-application-commands

Parameters

  guild_id | Guild ID to delete the slash commands in.

Returns
  slashcommand_map returned object on completion

## ◆ co_guild_bulk_command_delete() [2/2]

async< confirmation_callback_t > co_guild_bulk_command_delete | ( | snowflake | guild_id | ) |

nodiscard

Delete all existing guild slash commands.

See also
  dpp::cluster::guild_bulk_command_delete
  https://discord.com/developers/docs/interactions/application-commands#bulk-overwrite-global-application-commands

Parameters

  guild_id | Guild ID to delete the slash commands in.

Returns
  slashcommand_map returned object on completion

## ◆ co_guild_bulk_command_edit_permissions() [1/2]

async< confirmation_callback_t > co_guild_bulk_command_edit_permissions | ( | const std::vector< slashcommand > & | commands,
|  | snowflake | guild_id )

nodiscard

Edit/Overwrite the permissions of all existing slash commands in a guild.

Note
  You can only add up to 10 permission overwrites for a command

See also
  dpp::cluster::guild_bulk_command_edit_permissions
  https://discord.com/developers/docs/interactions/application-commands#batch-edit-application-command-permissions

Warning
  The endpoint will overwrite all existing permissions for all commands of the application in a guild, including slash commands, user commands, and message commands. Meaning that if you forgot to pass a slash command, the permissions of it might be removed.

Parameters

  commands | A vector of slash commands to edit/overwrite the permissions for
  guild_id | Guild ID to edit permissions of the slash commands in

Returns
  guild_command_permissions_map returned object on completion

Deprecated
  This has been disabled with updates to Permissions v2. You can use guild_command_edit_permissions instead

## ◆ co_guild_bulk_command_edit_permissions() [2/2]

async< confirmation_callback_t > co_guild_bulk_command_edit_permissions | ( | const std::vector< slashcommand > & | commands,
|  | snowflake | guild_id )

nodiscard

Edit/Overwrite the permissions of all existing slash commands in a guild.

Note
  You can only add up to 10 permission overwrites for a command

See also
  dpp::cluster::guild_bulk_command_edit_permissions
  https://discord.com/developers/docs/interactions/application-commands#batch-edit-application-command-permissions

Warning
  The endpoint will overwrite all existing permissions for all commands of the application in a guild, including slash commands, user commands, and message commands. Meaning that if you forgot to pass a slash command, the permissions of it might be removed.

Parameters

  commands | A vector of slash commands to edit/overwrite the permissions for
  guild_id | Guild ID to edit permissions of the slash commands in

Returns
  guild_command_permissions_map returned object on completion

Deprecated
  This has been disabled with updates to Permissions v2. You can use guild_command_edit_permissions instead

## ◆ co_guild_command_create() [1/2]

async< confirmation_callback_t > co_guild_command_create | ( | const slashcommand & | s,
|  | snowflake | guild_id )

nodiscard

Create a slash command local to a guild.

See also
  dpp::cluster::guild_command_create
  https://discord.com/developers/docs/interactions/application-commands#create-guild-application-command

Note
  Creating a command with the same name as an existing command for your application will overwrite the old command.

Parameters

  s | Slash command to create
  guild_id | Guild ID to create the slash command in

Returns
  slashcommand returned object on completion

## ◆ co_guild_command_create() [2/2]

async< confirmation_callback_t > co_guild_command_create | ( | const slashcommand & | s,
|  | snowflake | guild_id )

nodiscard

Create a slash command local to a guild.

See also
  dpp::cluster::guild_command_create
  https://discord.com/developers/docs/interactions/application-commands#create-guild-application-command

Note
  Creating a command with the same name as an existing command for your application will overwrite the old command.

Parameters

  s | Slash command to create
  guild_id | Guild ID to create the slash command in

Returns
  slashcommand returned object on completion

## ◆ co_guild_command_delete() [1/2]

async< confirmation_callback_t > co_guild_command_delete | ( | snowflake | id,
|  | snowflake | guild_id )

nodiscard

Delete a slash command local to a guild.

See also
  dpp::cluster::guild_command_delete
  https://discord.com/developers/docs/interactions/application-commands#delete-guild-application-command

Parameters

  id | Slash command to delete
  guild_id | Guild ID to delete the slash command in

Returns
  confirmation returned object on completion

## ◆ co_guild_command_delete() [2/2]

async< confirmation_callback_t > co_guild_command_delete | ( | snowflake | id,
|  | snowflake | guild_id )

nodiscard

Delete a slash command local to a guild.

See also
  dpp::cluster::guild_command_delete
  https://discord.com/developers/docs/interactions/application-commands#delete-guild-application-command

Parameters

  id | Slash command to delete
  guild_id | Guild ID to delete the slash command in

Returns
  confirmation returned object on completion

## ◆ co_guild_command_edit() [1/2]

async< confirmation_callback_t > co_guild_command_edit | ( | const slashcommand & | s,
|  | snowflake | guild_id )

nodiscard

Edit a slash command local to a guild.

See also
  dpp::cluster::guild_command_edit
  https://discord.com/developers/docs/interactions/application-commands#edit-guild-application-command

Parameters

  s | Slash command to edit
  guild_id | Guild ID to edit the slash command in

Returns
  confirmation returned object on completion

## ◆ co_guild_command_edit() [2/2]

async< confirmation_callback_t > co_guild_command_edit | ( | const slashcommand & | s,
|  | snowflake | guild_id )

nodiscard

Edit a slash command local to a guild.

See also
  dpp::cluster::guild_command_edit
  https://discord.com/developers/docs/interactions/application-commands#edit-guild-application-command

Parameters

  s | Slash command to edit
  guild_id | Guild ID to edit the slash command in

Returns
  confirmation returned object on completion

## ◆ co_guild_command_edit_permissions() [1/2]

async< confirmation_callback_t > co_guild_command_edit_permissions | ( | const slashcommand & | s,
|  | snowflake | guild_id )

nodiscard

Edit slash command permissions of a guild.

See also
  dpp::cluster::guild_command_edit_permissions
  https://discord.com/developers/docs/interactions/application-commands#edit-application-command-permissions

Note
  You can only add up to 10 permission overwrites for a command

Parameters

  s | Slash command to edit the permissions for
  guild_id | Guild ID to edit the slash command in

Returns
  confirmation returned object on completion

## ◆ co_guild_command_edit_permissions() [2/2]

async< confirmation_callback_t > co_guild_command_edit_permissions | ( | const slashcommand & | s,
|  | snowflake | guild_id )

nodiscard

Edit slash command permissions of a guild.

See also
  dpp::cluster::guild_command_edit_permissions
  https://discord.com/developers/docs/interactions/application-commands#edit-application-command-permissions

Note
  You can only add up to 10 permission overwrites for a command

Parameters

  s | Slash command to edit the permissions for
  guild_id | Guild ID to edit the slash command in

Returns
  confirmation returned object on completion

## ◆ co_guild_command_get() [1/2]

async< confirmation_callback_t > co_guild_command_get | ( | snowflake | id,
|  | snowflake | guild_id )

nodiscard

Get a slash command of a guild.

See also
  dpp::cluster::guild_command_get
  https://discord.com/developers/docs/interactions/application-commands#get-guild-application-command

Note
  The returned slash commands will not have permissions set, you need to use a permissions getter e.g. dpp::guild_commands_get_permissions to get the guild command permissions

Parameters

  id | The ID of the slash command
  guild_id | Guild ID to get the slash command from

Returns
  slashcommand returned object on completion

## ◆ co_guild_command_get() [2/2]

async< confirmation_callback_t > co_guild_command_get | ( | snowflake | id,
|  | snowflake | guild_id )

nodiscard

Get a slash command of a guild.

See also
  dpp::cluster::guild_command_get
  https://discord.com/developers/docs/interactions/application-commands#get-guild-application-command

Note
  The returned slash commands will not have permissions set, you need to use a permissions getter e.g. dpp::guild_commands_get_permissions to get the guild command permissions

Parameters

  id | The ID of the slash command
  guild_id | Guild ID to get the slash command from

Returns
  slashcommand returned object on completion

## ◆ co_guild_command_get_permissions() [1/2]

async< confirmation_callback_t > co_guild_command_get_permissions | ( | snowflake | id,
|  | snowflake | guild_id )

nodiscard

Get the permissions for a slash command of a guild.

See also
  dpp::cluster::guild_command_get_permissions
  https://discord.com/developers/docs/interactions/application-commands#get-application-command-permissions

Parameters

  id | The ID of the slash command to get the permissions for
  guild_id | Guild ID to get the permissions of

Returns
  guild_command_permissions returned object on completion

## ◆ co_guild_command_get_permissions() [2/2]

async< confirmation_callback_t > co_guild_command_get_permissions | ( | snowflake | id,
|  | snowflake | guild_id )

nodiscard

Get the permissions for a slash command of a guild.

See also
  dpp::cluster::guild_command_get_permissions
  https://discord.com/developers/docs/interactions/application-commands#get-application-command-permissions

Parameters

  id | The ID of the slash command to get the permissions for
  guild_id | Guild ID to get the permissions of

Returns
  guild_command_permissions returned object on completion

## ◆ co_guild_commands_get() [1/2]

async< confirmation_callback_t > co_guild_commands_get | ( | snowflake | guild_id | ) |

nodiscard

Get the application's slash commands for a guild.

See also
  dpp::cluster::guild_commands_get
  https://discord.com/developers/docs/interactions/application-commands#get-guild-application-commands

Note
  The returned slash commands will not have permissions set, you need to use a permissions getter e.g. dpp::guild_commands_get_permissions to get the guild command permissions

Parameters

  guild_id | Guild ID to get the slash commands for

Returns
  slashcommand_map returned object on completion

## ◆ co_guild_commands_get() [2/2]

async< confirmation_callback_t > co_guild_commands_get | ( | snowflake | guild_id | ) |

nodiscard

Get the application's slash commands for a guild.

See also
  dpp::cluster::guild_commands_get
  https://discord.com/developers/docs/interactions/application-commands#get-guild-application-commands

Note
  The returned slash commands will not have permissions set, you need to use a permissions getter e.g. dpp::guild_commands_get_permissions to get the guild command permissions

Parameters

  guild_id | Guild ID to get the slash commands for

Returns
  slashcommand_map returned object on completion

## ◆ co_guild_commands_get_permissions() [1/2]

async< confirmation_callback_t > co_guild_commands_get_permissions | ( | snowflake | guild_id | ) |

nodiscard

Get all slash command permissions of a guild.

See also
  dpp::cluster::guild_commands_get_permissions
  https://discord.com/developers/docs/interactions/application-commands#get-application-command-permissions

Parameters

  guild_id | Guild ID to get the slash commands permissions for

Returns
  guild_command_permissions_map returned object on completion

## ◆ co_guild_commands_get_permissions() [2/2]

async< confirmation_callback_t > co_guild_commands_get_permissions | ( | snowflake | guild_id | ) |

nodiscard

Get all slash command permissions of a guild.

See also
  dpp::cluster::guild_commands_get_permissions
  https://discord.com/developers/docs/interactions/application-commands#get-application-command-permissions

Parameters

  guild_id | Guild ID to get the slash commands permissions for

Returns
  guild_command_permissions_map returned object on completion

## ◆ co_guild_create() [1/2]

async< confirmation_callback_t > co_guild_create | ( | const class guild & | g | ) |

nodiscard

Create a guild.

Create a new guild. Returns a guild object on success. Fires a Guild Create Gateway event.

When using the roles parameter, the first member of the array is used to change properties of the guild's everyone role. If you are trying to bootstrap a guild with additional roles, keep this in mind. The required id field within each role object is an integer placeholder, and will be replaced by the API upon consumption. Its purpose is to allow you to overwrite a role's permissions in a channel when also passing in channels with the channels array. When using the channels parameter, the position field is ignored, and none of the default channels are created. The id field within each channel object may be set to an integer placeholder, and will be replaced by the API upon consumption. Its purpose is to allow you to create GUILD_CATEGORY channels by setting the parent_id field on any children to the category's id field. Category channels must be listed before any children.

See also
  dpp::cluster::guild_create
  https://discord.com/developers/docs/resources/guild#create-guild

Note
  The region field is deprecated and is replaced by channel.rtc_region. This endpoint can be used only by bots in less than 10 guilds.

Parameters

  g | Guild to create

Returns
  guild returned object on completion

## ◆ co_guild_create() [2/2]

async< confirmation_callback_t > co_guild_create | ( | const class guild & | g | ) |

nodiscard

Create a guild.

Create a new guild. Returns a guild object on success. Fires a Guild Create Gateway event.

When using the roles parameter, the first member of the array is used to change properties of the guild's everyone role. If you are trying to bootstrap a guild with additional roles, keep this in mind. The required id field within each role object is an integer placeholder, and will be replaced by the API upon consumption. Its purpose is to allow you to overwrite a role's permissions in a channel when also passing in channels with the channels array. When using the channels parameter, the position field is ignored, and none of the default channels are created. The id field within each channel object may be set to an integer placeholder, and will be replaced by the API upon consumption. Its purpose is to allow you to create GUILD_CATEGORY channels by setting the parent_id field on any children to the category's id field. Category channels must be listed before any children.

See also
  dpp::cluster::guild_create
  https://discord.com/developers/docs/resources/guild#create-guild

Note
  The region field is deprecated and is replaced by channel.rtc_region. This endpoint can be used only by bots in less than 10 guilds.

Parameters

  g | Guild to create

Returns
  guild returned object on completion

## ◆ co_guild_create_from_template() [1/2]

async< confirmation_callback_t > co_guild_create_from_template | ( | const std::string & | code,
|  | const std::string & | name )

nodiscard

Create a new guild based on a template.

Note
  This endpoint can be used only by bots in less than 10 guilds.

See also
  dpp::cluster::guild_create_from_template
  https://discord.com/developers/docs/resources/guild-template#create-guild-from-guild-template

Parameters

  code | Template code to create guild from
  name | Guild name to create

Returns
  guild returned object on completion

## ◆ co_guild_create_from_template() [2/2]

async< confirmation_callback_t > co_guild_create_from_template | ( | const std::string & | code,
|  | const std::string & | name )

nodiscard

Create a new guild based on a template.

Note
  This endpoint can be used only by bots in less than 10 guilds.

See also
  dpp::cluster::guild_create_from_template
  https://discord.com/developers/docs/resources/guild-template#create-guild-from-guild-template

Parameters

  code | Template code to create guild from
  name | Guild name to create

Returns
  guild returned object on completion

## ◆ co_guild_current_member_edit() [1/2]

async< confirmation_callback_t > co_guild_current_member_edit | ( | snowflake | guild_id,
|  | const std::string & | nickname,
|  | const std::string & | banner_blob,
|  | const image_type | banner_type,
|  | const std::string & | avatar_blob,
|  | const image_type | avatar_type,
|  | const std::string & | bio )

nodiscard

Modify current member.

Modifies the current member in a guild. Fires a Guild Member Update Gateway event.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  dpp::cluster::guild_current_member_edit
  https://discord.com/developers/docs/resources/guild#modify-current-member

Parameters

  guild_id | Guild ID to change on
  nickname | New nickname, or empty string to clear nickname.
  banner_blob | New banner, or empty string to clear banner.
  banner_type | Type of image for new banner.
  avatar_blob | New avatar, or empty string to clear avatar.
  avatar_type | Type of image for new avatar.
  bio | New bio, or empty string to clear bio

Returns
  confirmation returned object on completion

## ◆ co_guild_current_member_edit() [2/2]

async< confirmation_callback_t > co_guild_current_member_edit | ( | snowflake | guild_id,
|  | const std::string & | nickname,
|  | const std::string & | banner_blob,
|  | const image_type | banner_type,
|  | const std::string & | avatar_blob,
|  | const image_type | avatar_type,
|  | const std::string & | bio )

nodiscard

Modify current member.

Modifies the current member in a guild. Fires a Guild Member Update Gateway event.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  dpp::cluster::guild_current_member_edit
  https://discord.com/developers/docs/resources/guild#modify-current-member

Parameters

  guild_id | Guild ID to change on
  nickname | New nickname, or empty string to clear nickname.
  banner_blob | New banner, or empty string to clear banner.
  banner_type | Type of image for new banner.
  avatar_blob | New avatar, or empty string to clear avatar.
  avatar_type | Type of image for new avatar.
  bio | New bio, or empty string to clear bio

Returns
  confirmation returned object on completion

## ◆ co_guild_delete() [1/2]

async< confirmation_callback_t > co_guild_delete | ( | snowflake | guild_id | ) |

nodiscard

Delete a guild.

Delete a guild permanently. User must be owner. Fires a Guild Delete Gateway event.

See also
  dpp::cluster::guild_delete
  https://discord.com/developers/docs/resources/guild#delete-guild

Parameters

  guild_id | Guild ID to delete

Returns
  confirmation returned object on completion

## ◆ co_guild_delete() [2/2]

async< confirmation_callback_t > co_guild_delete | ( | snowflake | guild_id | ) |

nodiscard

Delete a guild.

Delete a guild permanently. User must be owner. Fires a Guild Delete Gateway event.

See also
  dpp::cluster::guild_delete
  https://discord.com/developers/docs/resources/guild#delete-guild

Parameters

  guild_id | Guild ID to delete

Returns
  confirmation returned object on completion

## ◆ co_guild_delete_integration() [1/2]

async< confirmation_callback_t > co_guild_delete_integration | ( | snowflake | guild_id,
|  | snowflake | integration_id )

nodiscard

Delete guild integration.

Delete the attached integration object for the guild. Deletes any associated webhooks and kicks the associated bot if there is one. Requires the MANAGE_GUILD permission. Fires a Guild Integrations Update Gateway event.

See also
  dpp::cluster::guild_delete_integration
  https://discord.com/developers/docs/resources/guild#delete-guild-integration

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  guild_id | Guild ID to delete integration for
  integration_id | Integration ID to delete

Returns
  confirmation returned object on completion

## ◆ co_guild_delete_integration() [2/2]

async< confirmation_callback_t > co_guild_delete_integration | ( | snowflake | guild_id,
|  | snowflake | integration_id )

nodiscard

Delete guild integration.

Delete the attached integration object for the guild. Deletes any associated webhooks and kicks the associated bot if there is one. Requires the MANAGE_GUILD permission. Fires a Guild Integrations Update Gateway event.

See also
  dpp::cluster::guild_delete_integration
  https://discord.com/developers/docs/resources/guild#delete-guild-integration

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  guild_id | Guild ID to delete integration for
  integration_id | Integration ID to delete

Returns
  confirmation returned object on completion

## ◆ co_guild_edit() [1/2]

async< confirmation_callback_t > co_guild_edit | ( | const class guild & | g | ) |

nodiscard

Edit a guild.

Modify a guild's settings. Requires the MANAGE_GUILD permission. Returns the updated guild object on success. Fires a Guild Update Gateway event.

See also
  dpp::cluster::guild_edit
  https://discord.com/developers/docs/resources/guild#modify-guild

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  g | Guild to edit

Returns
  guild returned object on completion

## ◆ co_guild_edit() [2/2]

async< confirmation_callback_t > co_guild_edit | ( | const class guild & | g | ) |

nodiscard

Edit a guild.

Modify a guild's settings. Requires the MANAGE_GUILD permission. Returns the updated guild object on success. Fires a Guild Update Gateway event.

See also
  dpp::cluster::guild_edit
  https://discord.com/developers/docs/resources/guild#modify-guild

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  g | Guild to edit

Returns
  guild returned object on completion

## ◆ co_guild_edit_member() [1/2]

async< confirmation_callback_t > co_guild_edit_member | ( | const guild_member & | gm | ) |

nodiscard

Edit the properties of an existing guild member.

Modify attributes of a guild member. Returns the guild_member. Fires a Guild Member Update Gateway event. To remove a timeout, set the communication_disabled_until to a non-zero time in the past, e.g. 1. When moving members to channels, the API user must have permissions to both connect to the channel and have the MOVE_MEMBERS permission. For moving and disconnecting users from voice, use dpp::cluster::guild_member_move.

See also
  dpp::cluster::guild_edit_member
  https://discord.com/developers/docs/resources/guild#modify-guild-member

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  gm | Guild member to edit

Returns
  guild_member returned object on completion

## ◆ co_guild_edit_member() [2/2]

async< confirmation_callback_t > co_guild_edit_member | ( | const guild_member & | gm | ) |

nodiscard

Edit the properties of an existing guild member.

Modify attributes of a guild member. Returns the guild_member. Fires a Guild Member Update Gateway event. To remove a timeout, set the communication_disabled_until to a non-zero time in the past, e.g. 1. When moving members to channels, the API user must have permissions to both connect to the channel and have the MOVE_MEMBERS permission. For moving and disconnecting users from voice, use dpp::cluster::guild_member_move.

See also
  dpp::cluster::guild_edit_member
  https://discord.com/developers/docs/resources/guild#modify-guild-member

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  gm | Guild member to edit

Returns
  guild_member returned object on completion

## ◆ co_guild_edit_onboarding() [1/2]

async< confirmation_callback_t > co_guild_edit_onboarding | ( | const struct onboarding & | o | ) |

nodiscard

Edit the guild's onboarding configuration.

Requires the MANAGE_GUILD and MANAGE_ROLES permissions.

Note
  Onboarding enforces constraints when enabled. These constraints are that there must be at least 7 Default Channels and at least 5 of them must allow sending messages to the @everyone role. The onboarding::mode field modifies what is considered when enforcing these constraints.

See also
  dpp::cluster::guild_edit_onboarding
  https://discord.com/developers/docs/resources/guild#modify-guild-onboarding

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  o | The onboarding object

Returns
  onboarding returned object on completion

## ◆ co_guild_edit_onboarding() [2/2]

async< confirmation_callback_t > co_guild_edit_onboarding | ( | const struct onboarding & | o | ) |

nodiscard

Edit the guild's onboarding configuration.

Requires the MANAGE_GUILD and MANAGE_ROLES permissions.

Note
  Onboarding enforces constraints when enabled. These constraints are that there must be at least 7 Default Channels and at least 5 of them must allow sending messages to the @everyone role. The onboarding::mode field modifies what is considered when enforcing these constraints.

See also
  dpp::cluster::guild_edit_onboarding
  https://discord.com/developers/docs/resources/guild#modify-guild-onboarding

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  o | The onboarding object

Returns
  onboarding returned object on completion

## ◆ co_guild_edit_welcome_screen() [1/2]

async< confirmation_callback_t > co_guild_edit_welcome_screen | ( | snowflake | guild_id,
|  | const struct welcome_screen & | welcome_screen,
|  | bool | enabled )

nodiscard

Edit the guild's welcome screen.

Requires the MANAGE_GUILD permission. May fire a Guild Update Gateway event.

See also
  dpp::cluster::guild_edit_welcome_screen
  https://discord.com/developers/docs/resources/guild#modify-guild-welcome-screen

Parameters

  guild_id | The guild ID to edit the welcome screen for
  welcome_screen | The welcome screen
  enabled | Whether the welcome screen should be enabled or disabled

Returns
  dpp::welcome_screen returned object on completion

## ◆ co_guild_edit_welcome_screen() [2/2]

async< confirmation_callback_t > co_guild_edit_welcome_screen | ( | snowflake | guild_id,
|  | const struct welcome_screen & | welcome_screen,
|  | bool | enabled )

nodiscard

Edit the guild's welcome screen.

Requires the MANAGE_GUILD permission. May fire a Guild Update Gateway event.

See also
  dpp::cluster::guild_edit_welcome_screen
  https://discord.com/developers/docs/resources/guild#modify-guild-welcome-screen

Parameters

  guild_id | The guild ID to edit the welcome screen for
  welcome_screen | The welcome screen
  enabled | Whether the welcome screen should be enabled or disabled

Returns
  dpp::welcome_screen returned object on completion

## ◆ co_guild_edit_widget() [1/2]

async< confirmation_callback_t > co_guild_edit_widget | ( | snowflake | guild_id,
|  | const class guild_widget & | gw )

nodiscard

Edit guild widget.

Requires the MANAGE_GUILD permission.

See also
  dpp::cluster::guild_edit_widget
  https://discord.com/developers/docs/resources/guild#modify-guild-widget

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  guild_id | Guild ID to edit widget for
  gw | New guild widget information

Returns
  guild_widget returned object on completion

## ◆ co_guild_edit_widget() [2/2]

async< confirmation_callback_t > co_guild_edit_widget | ( | snowflake | guild_id,
|  | const class guild_widget & | gw )

nodiscard

Edit guild widget.

Requires the MANAGE_GUILD permission.

See also
  dpp::cluster::guild_edit_widget
  https://discord.com/developers/docs/resources/guild#modify-guild-widget

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  guild_id | Guild ID to edit widget for
  gw | New guild widget information

Returns
  guild_widget returned object on completion

## ◆ co_guild_emoji_create() [1/2]

async< confirmation_callback_t > co_guild_emoji_create | ( | snowflake | guild_id,
|  | const class emoji & | newemoji )

nodiscard

Create single emoji. You must ensure that the emoji passed contained image data using the emoji::load_image() method.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  dpp::cluster::guild_emoji_create
  https://discord.com/developers/docs/resources/emoji#create-guild-emoji

Parameters

  guild_id | Guild ID to create emoji om
  newemoji | Emoji to create

Returns
  emoji returned object on completion

## ◆ co_guild_emoji_create() [2/2]

async< confirmation_callback_t > co_guild_emoji_create | ( | snowflake | guild_id,
|  | const class emoji & | newemoji )

nodiscard

Create single emoji. You must ensure that the emoji passed contained image data using the emoji::load_image() method.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  dpp::cluster::guild_emoji_create
  https://discord.com/developers/docs/resources/emoji#create-guild-emoji

Parameters

  guild_id | Guild ID to create emoji om
  newemoji | Emoji to create

Returns
  emoji returned object on completion

## ◆ co_guild_emoji_delete() [1/2]

async< confirmation_callback_t > co_guild_emoji_delete | ( | snowflake | guild_id,
|  | snowflake | emoji_id )

nodiscard

Delete a guild emoji.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  dpp::cluster::guild_emoji_delete
  https://discord.com/developers/docs/resources/emoji#delete-guild-emoji

Parameters

  guild_id | Guild ID to delete emoji on
  emoji_id | Emoji ID to delete

Returns
  confirmation returned object on completion

## ◆ co_guild_emoji_delete() [2/2]

async< confirmation_callback_t > co_guild_emoji_delete | ( | snowflake | guild_id,
|  | snowflake | emoji_id )

nodiscard

Delete a guild emoji.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  dpp::cluster::guild_emoji_delete
  https://discord.com/developers/docs/resources/emoji#delete-guild-emoji

Parameters

  guild_id | Guild ID to delete emoji on
  emoji_id | Emoji ID to delete

Returns
  confirmation returned object on completion

## ◆ co_guild_emoji_edit() [1/2]

async< confirmation_callback_t > co_guild_emoji_edit | ( | snowflake | guild_id,
|  | const class emoji & | newemoji )

nodiscard

Edit a single emoji.

You must ensure that the emoji passed contained image data using the emoji::load_image() method.

See also
  dpp::cluster::guild_emoji_edit
  https://discord.com/developers/docs/resources/emoji#modify-guild-emoji

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  guild_id | Guild ID to edit emoji on
  newemoji | Emoji to edit

Returns
  emoji returned object on completion

## ◆ co_guild_emoji_edit() [2/2]

async< confirmation_callback_t > co_guild_emoji_edit | ( | snowflake | guild_id,
|  | const class emoji & | newemoji )

nodiscard

Edit a single emoji.

You must ensure that the emoji passed contained image data using the emoji::load_image() method.

See also
  dpp::cluster::guild_emoji_edit
  https://discord.com/developers/docs/resources/emoji#modify-guild-emoji

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  guild_id | Guild ID to edit emoji on
  newemoji | Emoji to edit

Returns
  emoji returned object on completion

## ◆ co_guild_emoji_get() [1/2]

async< confirmation_callback_t > co_guild_emoji_get | ( | snowflake | guild_id,
|  | snowflake | emoji_id )

nodiscard

Get a single emoji.

See also
  dpp::cluster::guild_emoji_get
  https://discord.com/developers/docs/resources/emoji#get-guild-emoji

Parameters

  guild_id | Guild ID to get emoji for
  emoji_id | Emoji ID to get

Returns
  emoji returned object on completion

## ◆ co_guild_emoji_get() [2/2]

async< confirmation_callback_t > co_guild_emoji_get | ( | snowflake | guild_id,
|  | snowflake | emoji_id )

nodiscard

Get a single emoji.

See also
  dpp::cluster::guild_emoji_get
  https://discord.com/developers/docs/resources/emoji#get-guild-emoji

Parameters

  guild_id | Guild ID to get emoji for
  emoji_id | Emoji ID to get

Returns
  emoji returned object on completion

## ◆ co_guild_emojis_get() [1/2]

async< confirmation_callback_t > co_guild_emojis_get | ( | snowflake | guild_id | ) |

nodiscard

Get all emojis for a guild.

See also
  dpp::cluster::guild_emojis_get
  https://discord.com/developers/docs/resources/emoji#list-guild-emojis

Parameters

  guild_id | Guild ID to get emojis for

Returns
  emoji_map returned object on completion

## ◆ co_guild_emojis_get() [2/2]

async< confirmation_callback_t > co_guild_emojis_get | ( | snowflake | guild_id | ) |

nodiscard

Get all emojis for a guild.

See also
  dpp::cluster::guild_emojis_get
  https://discord.com/developers/docs/resources/emoji#list-guild-emojis

Parameters

  guild_id | Guild ID to get emojis for

Returns
  emoji_map returned object on completion

## ◆ co_guild_event_create() [1/2]

async< confirmation_callback_t > co_guild_event_create | ( | const scheduled_event & | event | ) |

nodiscard

Create a scheduled event on a guild.

See also
  dpp::cluster::guild_event_create
  https://discord.com/developers/docs/resources/guild-scheduled-event#create-guild-scheduled-event

Parameters

  event | Event to create (guild ID must be populated)

Returns
  scheduled_event returned object on completion

## ◆ co_guild_event_create() [2/2]

async< confirmation_callback_t > co_guild_event_create | ( | const scheduled_event & | event | ) |

nodiscard

Create a scheduled event on a guild.

See also
  dpp::cluster::guild_event_create
  https://discord.com/developers/docs/resources/guild-scheduled-event#create-guild-scheduled-event

Parameters

  event | Event to create (guild ID must be populated)

Returns
  scheduled_event returned object on completion

## ◆ co_guild_event_delete() [1/2]

async< confirmation_callback_t > co_guild_event_delete | ( | snowflake | event_id,
|  | snowflake | guild_id )

nodiscard

Delete a scheduled event from a guild.

See also
  dpp::cluster::guild_event_delete
  https://discord.com/developers/docs/resources/guild-scheduled-event#delete-guild-scheduled-event

Parameters

  event_id | Event ID to delete
  guild_id | Guild ID of event to delete

Returns
  confirmation returned object on completion

## ◆ co_guild_event_delete() [2/2]

async< confirmation_callback_t > co_guild_event_delete | ( | snowflake | event_id,
|  | snowflake | guild_id )

nodiscard

Delete a scheduled event from a guild.

See also
  dpp::cluster::guild_event_delete
  https://discord.com/developers/docs/resources/guild-scheduled-event#delete-guild-scheduled-event

Parameters

  event_id | Event ID to delete
  guild_id | Guild ID of event to delete

Returns
  confirmation returned object on completion

## ◆ co_guild_event_edit() [1/2]

async< confirmation_callback_t > co_guild_event_edit | ( | const scheduled_event & | event | ) |

nodiscard

Edit/modify a scheduled event on a guild.

See also
  dpp::cluster::guild_event_edit
  https://discord.com/developers/docs/resources/guild-scheduled-event#modify-guild-scheduled-event

Parameters

  event | Event to create (event ID and guild ID must be populated)

Returns
  scheduled_event returned object on completion

## ◆ co_guild_event_edit() [2/2]

async< confirmation_callback_t > co_guild_event_edit | ( | const scheduled_event & | event | ) |

nodiscard

Edit/modify a scheduled event on a guild.

See also
  dpp::cluster::guild_event_edit
  https://discord.com/developers/docs/resources/guild-scheduled-event#modify-guild-scheduled-event

Parameters

  event | Event to create (event ID and guild ID must be populated)

Returns
  scheduled_event returned object on completion

## ◆ co_guild_event_get() [1/2]

async< confirmation_callback_t > co_guild_event_get | ( | snowflake | guild_id,
|  | snowflake | event_id )

nodiscard

Get a scheduled event for a guild.

See also
  dpp::cluster::guild_event_get
  https://discord.com/developers/docs/resources/guild-scheduled-event#get-guild-scheduled-event

Parameters

  guild_id | Guild to get event for
  event_id | Event ID to get

Returns
  scheduled_event returned object on completion

## ◆ co_guild_event_get() [2/2]

async< confirmation_callback_t > co_guild_event_get | ( | snowflake | guild_id,
|  | snowflake | event_id )

nodiscard

Get a scheduled event for a guild.

See also
  dpp::cluster::guild_event_get
  https://discord.com/developers/docs/resources/guild-scheduled-event#get-guild-scheduled-event

Parameters

  guild_id | Guild to get event for
  event_id | Event ID to get

Returns
  scheduled_event returned object on completion

## ◆ co_guild_events_get() [1/2]

async< confirmation_callback_t > co_guild_events_get | ( | snowflake | guild_id | ) |

nodiscard

Get all scheduled events for a guild.

See also
  dpp::cluster::guild_events_get
  https://discord.com/developers/docs/resources/guild-scheduled-event#list-scheduled-events-for-guild

Parameters

  guild_id | Guild to get events for

Returns
  scheduled_event_map returned object on completion

## ◆ co_guild_events_get() [2/2]

async< confirmation_callback_t > co_guild_events_get | ( | snowflake | guild_id | ) |

nodiscard

Get all scheduled events for a guild.

See also
  dpp::cluster::guild_events_get
  https://discord.com/developers/docs/resources/guild-scheduled-event#list-scheduled-events-for-guild

Parameters

  guild_id | Guild to get events for

Returns
  scheduled_event_map returned object on completion

## ◆ co_guild_get()

async< confirmation_callback_t > dpp::cluster::co_guild_get | ( | snowflake | guild_id | ) |

nodiscard

## ◆ co_guild_get_ban() [1/2]

async< confirmation_callback_t > co_guild_get_ban | ( | snowflake | guild_id,
|  | snowflake | user_id )

nodiscard

Get single guild ban.

Requires the BAN_MEMBERS permission.

See also
  dpp::cluster::guild_get_ban
  https://discord.com/developers/docs/resources/guild#get-guild-ban

Parameters

  guild_id | Guild ID to get ban for
  user_id | User ID of ban to retrieve

Returns
  ban returned object on completion

## ◆ co_guild_get_ban() [2/2]

async< confirmation_callback_t > co_guild_get_ban | ( | snowflake | guild_id,
|  | snowflake | user_id )

nodiscard

Get single guild ban.

Requires the BAN_MEMBERS permission.

See also
  dpp::cluster::guild_get_ban
  https://discord.com/developers/docs/resources/guild#get-guild-ban

Parameters

  guild_id | Guild ID to get ban for
  user_id | User ID of ban to retrieve

Returns
  ban returned object on completion

## ◆ co_guild_get_bans() [1/2]

async< confirmation_callback_t > co_guild_get_bans | ( | snowflake | guild_id,
|  | snowflake | before,
|  | snowflake | after,
|  | snowflake | limit )

nodiscard

Get guild ban list.

Requires the BAN_MEMBERS permission.

See also
  dpp::cluster::guild_get_bans
  https://discord.com/developers/docs/resources/guild#get-guild-bans

Note
  Provide a user ID to before and after for pagination. Users will always be returned in ascending order by the user ID. If both before and after are provided, only before is respected.

Parameters

  guild_id | Guild ID to get bans for
  before | If non-zero, all bans for user ids before this user id will be returned up to the limit
  after | if non-zero, all bans for user ids after this user id will be returned up to the limit
  limit | the maximum number of bans to retrieve in this call up to a maximum of 1000

Returns
  ban_map returned object on completion

## ◆ co_guild_get_bans() [2/2]

async< confirmation_callback_t > co_guild_get_bans | ( | snowflake | guild_id,
|  | snowflake | before,
|  | snowflake | after,
|  | snowflake | limit )

nodiscard

Get guild ban list.

Requires the BAN_MEMBERS permission.

See also
  dpp::cluster::guild_get_bans
  https://discord.com/developers/docs/resources/guild#get-guild-bans

Note
  Provide a user ID to before and after for pagination. Users will always be returned in ascending order by the user ID. If both before and after are provided, only before is respected.

Parameters

  guild_id | Guild ID to get bans for
  before | If non-zero, all bans for user ids before this user id will be returned up to the limit
  after | if non-zero, all bans for user ids after this user id will be returned up to the limit
  limit | the maximum number of bans to retrieve in this call up to a maximum of 1000

Returns
  ban_map returned object on completion

## ◆ co_guild_get_integrations() [1/2]

async< confirmation_callback_t > co_guild_get_integrations | ( | snowflake | guild_id | ) |

nodiscard

Get guild integrations.

Requires the MANAGE_GUILD permission.

See also
  dpp::cluster::guild_get_integrations
  https://discord.com/developers/docs/resources/guild#get-guild-integrations

Parameters

  guild_id | Guild ID to get integrations for

Returns
  integration_map returned object on completion

Note
  This endpoint returns a maximum of 50 integrations. If a guild has more integrations, they cannot be accessed.

## ◆ co_guild_get_integrations() [2/2]

async< confirmation_callback_t > co_guild_get_integrations | ( | snowflake | guild_id | ) |

nodiscard

Get guild integrations.

Requires the MANAGE_GUILD permission.

See also
  dpp::cluster::guild_get_integrations
  https://discord.com/developers/docs/resources/guild#get-guild-integrations

Parameters

  guild_id | Guild ID to get integrations for

Returns
  integration_map returned object on completion

Note
  This endpoint returns a maximum of 50 integrations. If a guild has more integrations, they cannot be accessed.

## ◆ co_guild_get_invites() [1/2]

async< confirmation_callback_t > co_guild_get_invites | ( | snowflake | guild_id | ) |

nodiscard

Get guild invites.

Returns a list of invite objects (with invite metadata) for the guild. Requires the MANAGE_GUILD permission.

See also
  dpp::cluster::guild_get_invites
  https://discord.com/developers/docs/resources/guild#get-guild-invites

Parameters

  guild_id | Guild ID to get invites for

Returns
  invite_map returned object on completion

## ◆ co_guild_get_invites() [2/2]

async< confirmation_callback_t > co_guild_get_invites | ( | snowflake | guild_id | ) |

nodiscard

Get guild invites.

Returns a list of invite objects (with invite metadata) for the guild. Requires the MANAGE_GUILD permission.

See also
  dpp::cluster::guild_get_invites
  https://discord.com/developers/docs/resources/guild#get-guild-invites

Parameters

  guild_id | Guild ID to get invites for

Returns
  invite_map returned object on completion

## ◆ co_guild_get_member() [1/2]

async< confirmation_callback_t > co_guild_get_member | ( | snowflake | guild_id,
|  | snowflake | user_id )

nodiscard

Get a guild member.

See also
  dpp::cluster::guild_get_member
  https://discord.com/developers/docs/resources/guild#get-guild-member

Parameters

  guild_id | Guild ID to get member for
  user_id | User ID of member to get

Returns
  guild_member returned object on completion

## ◆ co_guild_get_member() [2/2]

async< confirmation_callback_t > co_guild_get_member | ( | snowflake | guild_id,
|  | snowflake | user_id )

nodiscard

Get a guild member.

See also
  dpp::cluster::guild_get_member
  https://discord.com/developers/docs/resources/guild#get-guild-member

Parameters

  guild_id | Guild ID to get member for
  user_id | User ID of member to get

Returns
  guild_member returned object on completion

## ◆ co_guild_get_members() [1/2]

async< confirmation_callback_t > co_guild_get_members | ( | snowflake | guild_id,
|  | uint16_t | limit,
|  | snowflake | after )

nodiscard

Get all guild members.

Note
  This endpoint is restricted according to whether the GUILD_MEMBERS Privileged Intent is enabled for your application.

See also
  dpp::cluster::guild_get_members
  https://discord.com/developers/docs/resources/guild#get-guild-members

Parameters

  guild_id | Guild ID to get all members for
  limit | max number of members to return (1-1000)
  after | the highest user id in the previous page

Returns
  guild_member_map returned object on completion

## ◆ co_guild_get_members() [2/2]

async< confirmation_callback_t > co_guild_get_members | ( | snowflake | guild_id,
|  | uint16_t | limit,
|  | snowflake | after )

nodiscard

Get all guild members.

Note
  This endpoint is restricted according to whether the GUILD_MEMBERS Privileged Intent is enabled for your application.

See also
  dpp::cluster::guild_get_members
  https://discord.com/developers/docs/resources/guild#get-guild-members

Parameters

  guild_id | Guild ID to get all members for
  limit | max number of members to return (1-1000)
  after | the highest user id in the previous page

Returns
  guild_member_map returned object on completion

## ◆ co_guild_get_onboarding() [1/2]

async< confirmation_callback_t > co_guild_get_onboarding | ( | snowflake | guild_id | ) |

nodiscard

Get the guild's onboarding configuration.

See also
  dpp::cluster::guild_get_onboarding
  https://discord.com/developers/docs/resources/guild#get-guild-onboarding

Parameters

  guild_id | The guild to pull the onboarding configuration from.

Returns
  onboarding returned object on completion

## ◆ co_guild_get_onboarding() [2/2]

async< confirmation_callback_t > co_guild_get_onboarding | ( | snowflake | guild_id | ) |

nodiscard

Get the guild's onboarding configuration.

See also
  dpp::cluster::guild_get_onboarding
  https://discord.com/developers/docs/resources/guild#get-guild-onboarding

Parameters

  guild_id | The guild to pull the onboarding configuration from.

Returns
  onboarding returned object on completion

## ◆ co_guild_get_preview()

async< confirmation_callback_t > dpp::cluster::co_guild_get_preview | ( | snowflake | guild_id | ) |

nodiscard

## ◆ co_guild_get_prune_counts() [1/2]

async< confirmation_callback_t > co_guild_get_prune_counts | ( | snowflake | guild_id,
|  | const struct prune & | pruneinfo )

nodiscard

Get prune counts.

Returns a prune object indicating the number of members that would be removed in a prune operation. Requires the KICK_MEMBERS permission. By default, prune will not remove users with roles. You can optionally include specific roles in your prune by providing the include_roles parameter. Any inactive user that has a subset of the provided role(s) will be counted in the prune and users with additional roles will not.

See also
  dpp::cluster::guild_get_prune_counts
  https://discord.com/developers/docs/resources/guild#get-guild-prune-count

Parameters

  guild_id | Guild ID to count for pruning
  pruneinfo | Pruning info

Returns
  prune returned object on completion

## ◆ co_guild_get_prune_counts() [2/2]

async< confirmation_callback_t > co_guild_get_prune_counts | ( | snowflake | guild_id,
|  | const struct prune & | pruneinfo )

nodiscard

Get prune counts.

Returns a prune object indicating the number of members that would be removed in a prune operation. Requires the KICK_MEMBERS permission. By default, prune will not remove users with roles. You can optionally include specific roles in your prune by providing the include_roles parameter. Any inactive user that has a subset of the provided role(s) will be counted in the prune and users with additional roles will not.

See also
  dpp::cluster::guild_get_prune_counts
  https://discord.com/developers/docs/resources/guild#get-guild-prune-count

Parameters

  guild_id | Guild ID to count for pruning
  pruneinfo | Pruning info

Returns
  prune returned object on completion

## ◆ co_guild_get_vanity() [1/2]

async< confirmation_callback_t > co_guild_get_vanity | ( | snowflake | guild_id | ) |

nodiscard

Get guild vanity url, if enabled.

Returns a partial dpp::invite object for guilds with that feature enabled. Requires the MANAGE_GUILD permission. code will be null if a vanity url for the guild is not set.

See also
  dpp::cluster::guild_get_vanity
  https://discord.com/developers/docs/resources/guild#get-guild-vanity-url

Parameters

  guild_id | Guild to get vanity URL for

Returns
  invite returned object on completion

## ◆ co_guild_get_vanity() [2/2]

async< confirmation_callback_t > co_guild_get_vanity | ( | snowflake | guild_id | ) |

nodiscard

Get guild vanity url, if enabled.

Returns a partial dpp::invite object for guilds with that feature enabled. Requires the MANAGE_GUILD permission. code will be null if a vanity url for the guild is not set.

See also
  dpp::cluster::guild_get_vanity
  https://discord.com/developers/docs/resources/guild#get-guild-vanity-url

Parameters

  guild_id | Guild to get vanity URL for

Returns
  invite returned object on completion

## ◆ co_guild_get_voice_regions() [1/2]

async< confirmation_callback_t > co_guild_get_voice_regions | ( | snowflake | guild_id | ) |

nodiscard

Get guild voice regions.

Voice regions per guild are somewhat deprecated in preference of per-channel voice regions. Returns a list of voice region objects for the guild. Unlike the similar /voice route, this returns VIP servers when the guild is VIP-enabled.

See also
  dpp::cluster::guild_get_voice_regions
  https://discord.com/developers/docs/resources/guild#get-guild-voice-regions

Parameters

  guild_id | Guild ID to get voice regions for

Returns
  voiceregion_map returned object on completion

## ◆ co_guild_get_voice_regions() [2/2]

async< confirmation_callback_t > co_guild_get_voice_regions | ( | snowflake | guild_id | ) |

nodiscard

Get guild voice regions.

Voice regions per guild are somewhat deprecated in preference of per-channel voice regions. Returns a list of voice region objects for the guild. Unlike the similar /voice route, this returns VIP servers when the guild is VIP-enabled.

See also
  dpp::cluster::guild_get_voice_regions
  https://discord.com/developers/docs/resources/guild#get-guild-voice-regions

Parameters

  guild_id | Guild ID to get voice regions for

Returns
  voiceregion_map returned object on completion

## ◆ co_guild_get_welcome_screen() [1/2]

async< confirmation_callback_t > co_guild_get_welcome_screen | ( | snowflake | guild_id | ) |

nodiscard

Get the guild's welcome screen.

If the welcome screen is not enabled, the MANAGE_GUILD permission is required.

See also
  dpp::cluster::guild_get_welcome_screen
  https://discord.com/developers/docs/resources/guild#get-guild-welcome-screen

Parameters

  guild_id | The guild ID to get the welcome screen from

Returns
  dpp::welcome_screen returned object on completion

## ◆ co_guild_get_welcome_screen() [2/2]

async< confirmation_callback_t > co_guild_get_welcome_screen | ( | snowflake | guild_id | ) |

nodiscard

Get the guild's welcome screen.

If the welcome screen is not enabled, the MANAGE_GUILD permission is required.

See also
  dpp::cluster::guild_get_welcome_screen
  https://discord.com/developers/docs/resources/guild#get-guild-welcome-screen

Parameters

  guild_id | The guild ID to get the welcome screen from

Returns
  dpp::welcome_screen returned object on completion

## ◆ co_guild_get_widget() [1/2]

async< confirmation_callback_t > co_guild_get_widget | ( | snowflake | guild_id | ) |

nodiscard

Get guild widget.

Requires the MANAGE_GUILD permission.

See also
  dpp::cluster::guild_get_widget
  https://discord.com/developers/docs/resources/guild#get-guild-widget

Parameters

  guild_id | Guild ID to get widget for

Returns
  guild_widget returned object on completion

## ◆ co_guild_get_widget() [2/2]

async< confirmation_callback_t > co_guild_get_widget | ( | snowflake | guild_id | ) |

nodiscard

Get guild widget.

Requires the MANAGE_GUILD permission.

See also
  dpp::cluster::guild_get_widget
  https://discord.com/developers/docs/resources/guild#get-guild-widget

Parameters

  guild_id | Guild ID to get widget for

Returns
  guild_widget returned object on completion

## ◆ co_guild_member_add_role() [1/2]

async< confirmation_callback_t > co_guild_member_add_role | ( | snowflake | guild_id,
|  | snowflake | user_id,
|  | snowflake | role_id )

nodiscard

Add role to guild member.

Adds a role to a guild member. Requires the MANAGE_ROLES permission. Fires a Guild Member Update Gateway event.

See also
  dpp::cluster::guild_member_add_role
  https://discord.com/developers/docs/resources/guild#add-guild-member-role

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  guild_id | Guild ID to add a role to
  user_id | User ID to add role to
  role_id | Role ID to add to the user

Returns
  confirmation returned object on completion

## ◆ co_guild_member_add_role() [2/2]

async< confirmation_callback_t > co_guild_member_add_role | ( | snowflake | guild_id,
|  | snowflake | user_id,
|  | snowflake | role_id )

nodiscard

Add role to guild member.

Adds a role to a guild member. Requires the MANAGE_ROLES permission. Fires a Guild Member Update Gateway event.

See also
  dpp::cluster::guild_member_add_role
  https://discord.com/developers/docs/resources/guild#add-guild-member-role

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  guild_id | Guild ID to add a role to
  user_id | User ID to add role to
  role_id | Role ID to add to the user

Returns
  confirmation returned object on completion

## ◆ co_guild_member_delete() [1/2]

async< confirmation_callback_t > co_guild_member_delete | ( | snowflake | guild_id,
|  | snowflake | user_id )

nodiscard

Remove (kick) a guild member.

Remove a member from a guild. Requires KICK_MEMBERS permission. Fires a Guild Member Remove Gateway event.

See also
  dpp::cluster::guild_member_delete
  https://discord.com/developers/docs/resources/guild#remove-guild-member

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Deprecated
  Replaced by dpp::cluster::guild_member_kick

Parameters

  guild_id | Guild ID to kick member from
  user_id | User ID to kick

Returns
  confirmation returned object on completion

## ◆ co_guild_member_delete() [2/2]

async< confirmation_callback_t > co_guild_member_delete | ( | snowflake | guild_id,
|  | snowflake | user_id )

nodiscard

Remove (kick) a guild member.

Remove a member from a guild. Requires KICK_MEMBERS permission. Fires a Guild Member Remove Gateway event.

See also
  dpp::cluster::guild_member_delete
  https://discord.com/developers/docs/resources/guild#remove-guild-member

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Deprecated
  Replaced by dpp::cluster::guild_member_kick

Parameters

  guild_id | Guild ID to kick member from
  user_id | User ID to kick

Returns
  confirmation returned object on completion

## ◆ co_guild_member_delete_role() [1/2]

async< confirmation_callback_t > co_guild_member_delete_role | ( | snowflake | guild_id,
|  | snowflake | user_id,
|  | snowflake | role_id )

nodiscard

Remove role from guild member.

Removes a role from a guild member. Requires the MANAGE_ROLES permission. Fires a Guild Member Update Gateway event.

See also
  dpp::cluster::guild_member_delete_role
  https://discord.com/developers/docs/resources/guild#remove-guild-member-role

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  guild_id | Guild ID to remove role from user on
  user_id | User ID to remove role from
  role_id | Role to remove

Returns
  confirmation returned object on completion

Deprecated
  Use dpp::cluster::guild_member_remove_role instead

## ◆ co_guild_member_delete_role() [2/2]

async< confirmation_callback_t > co_guild_member_delete_role | ( | snowflake | guild_id,
|  | snowflake | user_id,
|  | snowflake | role_id )

nodiscard

Remove role from guild member.

Removes a role from a guild member. Requires the MANAGE_ROLES permission. Fires a Guild Member Update Gateway event.

See also
  dpp::cluster::guild_member_delete_role
  https://discord.com/developers/docs/resources/guild#remove-guild-member-role

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  guild_id | Guild ID to remove role from user on
  user_id | User ID to remove role from
  role_id | Role to remove

Returns
  confirmation returned object on completion

Deprecated
  Use dpp::cluster::guild_member_remove_role instead

## ◆ co_guild_member_kick() [1/2]

async< confirmation_callback_t > co_guild_member_kick | ( | snowflake | guild_id,
|  | snowflake | user_id )

nodiscard

Remove (kick) a guild member.

Remove a member from a guild. Requires KICK_MEMBERS permission. Fires a Guild Member Remove Gateway event.

See also
  dpp::cluster::guild_member_kick
  https://discord.com/developers/docs/resources/guild#remove-guild-member

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  guild_id | Guild ID to kick member from
  user_id | User ID to kick

Returns
  confirmation returned object on completion

## ◆ co_guild_member_kick() [2/2]

async< confirmation_callback_t > co_guild_member_kick | ( | snowflake | guild_id,
|  | snowflake | user_id )

nodiscard

Remove (kick) a guild member.

Remove a member from a guild. Requires KICK_MEMBERS permission. Fires a Guild Member Remove Gateway event.

See also
  dpp::cluster::guild_member_kick
  https://discord.com/developers/docs/resources/guild#remove-guild-member

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  guild_id | Guild ID to kick member from
  user_id | User ID to kick

Returns
  confirmation returned object on completion

## ◆ co_guild_member_move() [1/2]

async< confirmation_callback_t > co_guild_member_move | ( | const snowflake | channel_id,
|  | const snowflake | guild_id,
|  | const snowflake | user_id )

nodiscard

Moves the guild member to a other voice channel, if member is connected to one. Set the channel_id to 0 to disconnect the user.

Fires a Guild Member Update Gateway event.

Note
  When moving members to channels, the API user must have permissions to both connect to the channel and have the MOVE_MEMBERS permission.
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  dpp::cluster::guild_member_move
  https://discord.com/developers/docs/resources/guild#modify-guild-member

Parameters

  channel_id | Id of the channel to which the user is used. Set to 0 to disconnect the user
  guild_id | Guild id to which the user is connected
  user_id | User id, who should be moved

Returns
  guild_member returned object on completion

## ◆ co_guild_member_move() [2/2]

async< confirmation_callback_t > co_guild_member_move | ( | const snowflake | channel_id,
|  | const snowflake | guild_id,
|  | const snowflake | user_id )

nodiscard

Moves the guild member to a other voice channel, if member is connected to one. Set the channel_id to 0 to disconnect the user.

Fires a Guild Member Update Gateway event.

Note
  When moving members to channels, the API user must have permissions to both connect to the channel and have the MOVE_MEMBERS permission.
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  dpp::cluster::guild_member_move
  https://discord.com/developers/docs/resources/guild#modify-guild-member

Parameters

  channel_id | Id of the channel to which the user is used. Set to 0 to disconnect the user
  guild_id | Guild id to which the user is connected
  user_id | User id, who should be moved

Returns
  guild_member returned object on completion

## ◆ co_guild_member_remove_role() [1/2]

async< confirmation_callback_t > co_guild_member_remove_role | ( | snowflake | guild_id,
|  | snowflake | user_id,
|  | snowflake | role_id )

nodiscard

Remove role from guild member.

Removes a role from a guild member. Requires the MANAGE_ROLES permission. Fires a Guild Member Update Gateway event.

See also
  dpp::cluster::guild_member_remove_role
  https://discord.com/developers/docs/resources/guild#remove-guild-member-role

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  guild_id | Guild ID to remove role from user on
  user_id | User ID to remove role from
  role_id | Role to remove

Returns
  confirmation returned object on completion

## ◆ co_guild_member_remove_role() [2/2]

async< confirmation_callback_t > co_guild_member_remove_role | ( | snowflake | guild_id,
|  | snowflake | user_id,
|  | snowflake | role_id )

nodiscard

Remove role from guild member.

Removes a role from a guild member. Requires the MANAGE_ROLES permission. Fires a Guild Member Update Gateway event.

See also
  dpp::cluster::guild_member_remove_role
  https://discord.com/developers/docs/resources/guild#remove-guild-member-role

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  guild_id | Guild ID to remove role from user on
  user_id | User ID to remove role from
  role_id | Role to remove

Returns
  confirmation returned object on completion

## ◆ co_guild_member_timeout() [1/2]

async< confirmation_callback_t > co_guild_member_timeout | ( | snowflake | guild_id,
|  | snowflake | user_id,
|  | time_t | communication_disabled_until )

nodiscard

Set the timeout of a guild member.

Fires a Guild Member Update Gateway event.

See also
  dpp::cluster::guild_member_timeout
  https://discord.com/developers/docs/resources/guild#modify-guild-member

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  guild_id | Guild ID to timeout the member in
  user_id | User ID to set the timeout for
  communication_disabled_until | The timestamp when the user's timeout will expire (up to 28 days in the future). Set to 0 to remove the timeout

Returns
  confirmation returned object on completion

## ◆ co_guild_member_timeout() [2/2]

async< confirmation_callback_t > co_guild_member_timeout | ( | snowflake | guild_id,
|  | snowflake | user_id,
|  | time_t | communication_disabled_until )

nodiscard

Set the timeout of a guild member.

Fires a Guild Member Update Gateway event.

See also
  dpp::cluster::guild_member_timeout
  https://discord.com/developers/docs/resources/guild#modify-guild-member

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  guild_id | Guild ID to timeout the member in
  user_id | User ID to set the timeout for
  communication_disabled_until | The timestamp when the user's timeout will expire (up to 28 days in the future). Set to 0 to remove the timeout

Returns
  confirmation returned object on completion

## ◆ co_guild_member_timeout_remove() [1/2]

async< confirmation_callback_t > co_guild_member_timeout_remove | ( | snowflake | guild_id,
|  | snowflake | user_id )

nodiscard

Remove the timeout of a guild member. A shortcut for guild_member_timeout(guild_id, user_id, 0, callback) Fires a Guild Member Update Gateway event.

See also
  dpp::cluster::guild_member_timeout_remove
  https://discord.com/developers/docs/resources/guild#modify-guild-member

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  guild_id | Guild ID to remove the member timeout from
  user_id | User ID to remove the timeout for

Returns
  confirmation returned object on completion

## ◆ co_guild_member_timeout_remove() [2/2]

async< confirmation_callback_t > co_guild_member_timeout_remove | ( | snowflake | guild_id,
|  | snowflake | user_id )

nodiscard

Remove the timeout of a guild member. A shortcut for guild_member_timeout(guild_id, user_id, 0, callback) Fires a Guild Member Update Gateway event.

See also
  dpp::cluster::guild_member_timeout_remove
  https://discord.com/developers/docs/resources/guild#modify-guild-member

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  guild_id | Guild ID to remove the member timeout from
  user_id | User ID to remove the timeout for

Returns
  confirmation returned object on completion

## ◆ co_guild_messages_search() [1/2]

async< confirmation_callback_t > co_guild_messages_search | ( | snowflake | guild_id,
|  | const message_search_params & | params )

nodiscard

Search for messages in a guild.

See also
  dpp::cluster::guild_messages_search
  https://discord.com/developers/docs/resources/message#search-guild-messages

Parameters

  guild_id | Guild ID to search in
  params | Search parameters

Returns
  message_search_result returned object on completion

## ◆ co_guild_messages_search() [2/2]

async< confirmation_callback_t > co_guild_messages_search | ( | snowflake | guild_id,
|  | const message_search_params & | params )

nodiscard

Search for messages in a guild.

See also
  dpp::cluster::guild_messages_search
  https://discord.com/developers/docs/resources/message#search-guild-messages

Parameters

  guild_id | Guild ID to search in
  params | Search parameters

Returns
  message_search_result returned object on completion

## ◆ co_guild_modify_integration() [1/2]

async< confirmation_callback_t > co_guild_modify_integration | ( | snowflake | guild_id,
|  | const class integration & | i )

nodiscard

Modify guild integration.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  dpp::cluster::guild_modify_integration
  https://discord.com/developers/docs/resources/guild#modify-guild-integration

Parameters

  guild_id | Guild ID to modify integration for
  i | Integration to modify

Returns
  confirmation returned object on completion

## ◆ co_guild_modify_integration() [2/2]

async< confirmation_callback_t > co_guild_modify_integration | ( | snowflake | guild_id,
|  | const class integration & | i )

nodiscard

Modify guild integration.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  dpp::cluster::guild_modify_integration
  https://discord.com/developers/docs/resources/guild#modify-guild-integration

Parameters

  guild_id | Guild ID to modify integration for
  i | Integration to modify

Returns
  confirmation returned object on completion

## ◆ co_guild_search_members() [1/2]

async< confirmation_callback_t > co_guild_search_members | ( | snowflake | guild_id,
|  | const std::string & | query,
|  | uint16_t | limit )

nodiscard

Search for guild members based on whether their username or nickname starts with the given string.

Note
  This endpoint is restricted according to whether the GUILD_MEMBERS Privileged Intent is enabled for your application.

See also
  dpp::cluster::guild_search_members
  https://discord.com/developers/docs/resources/guild#search-guild-members

Parameters

  guild_id | Guild ID to search in
  query | Query string to match username(s) and nickname(s) against
  limit | max number of members to return (1-1000)

Returns
  guild_member_map returned object on completion

## ◆ co_guild_search_members() [2/2]

async< confirmation_callback_t > co_guild_search_members | ( | snowflake | guild_id,
|  | const std::string & | query,
|  | uint16_t | limit )

nodiscard

Search for guild members based on whether their username or nickname starts with the given string.

Note
  This endpoint is restricted according to whether the GUILD_MEMBERS Privileged Intent is enabled for your application.

See also
  dpp::cluster::guild_search_members
  https://discord.com/developers/docs/resources/guild#search-guild-members

Parameters

  guild_id | Guild ID to search in
  query | Query string to match username(s) and nickname(s) against
  limit | max number of members to return (1-1000)

Returns
  guild_member_map returned object on completion

## ◆ co_guild_set_nickname() [1/2]

async< confirmation_callback_t > co_guild_set_nickname | ( | snowflake | guild_id,
|  | const std::string & | nickname )

nodiscard

Change current user nickname.

Modifies the nickname of the current user in a guild. Fires a Guild Member Update Gateway event.

Deprecated
  Deprecated in favor of Modify Current Member. Will be replaced by dpp::cluster::guild_current_member_edit

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  dpp::cluster::guild_set_nickname
  https://discord.com/developers/docs/resources/guild#modify-current-user-nick

Parameters

  guild_id | Guild ID to change nickname on
  nickname | New nickname, or empty string to clear nickname

Returns
  confirmation returned object on completion

## ◆ co_guild_set_nickname() [2/2]

async< confirmation_callback_t > co_guild_set_nickname | ( | snowflake | guild_id,
|  | const std::string & | nickname )

nodiscard

Change current user nickname.

Modifies the nickname of the current user in a guild. Fires a Guild Member Update Gateway event.

Deprecated
  Deprecated in favor of Modify Current Member. Will be replaced by dpp::cluster::guild_current_member_edit

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  dpp::cluster::guild_set_nickname
  https://discord.com/developers/docs/resources/guild#modify-current-user-nick

Parameters

  guild_id | Guild ID to change nickname on
  nickname | New nickname, or empty string to clear nickname

Returns
  confirmation returned object on completion

## ◆ co_guild_sticker_create() [1/2]

async< confirmation_callback_t > co_guild_sticker_create | ( | const sticker & | s | ) |

nodiscard

Create a sticker in a guild.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  dpp::cluster::guild_sticker_create
  https://discord.com/developers/docs/resources/sticker#create-guild-sticker

Parameters

  s | Sticker to create. Must have its guild ID set.

Returns
  sticker returned object on completion

## ◆ co_guild_sticker_create() [2/2]

async< confirmation_callback_t > co_guild_sticker_create | ( | const sticker & | s | ) |

nodiscard

Create a sticker in a guild.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  dpp::cluster::guild_sticker_create
  https://discord.com/developers/docs/resources/sticker#create-guild-sticker

Parameters

  s | Sticker to create. Must have its guild ID set.

Returns
  sticker returned object on completion

## ◆ co_guild_sticker_delete() [1/2]

async< confirmation_callback_t > co_guild_sticker_delete | ( | snowflake | sticker_id,
|  | snowflake | guild_id )

nodiscard

Delete a sticker from a guild.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  dpp::cluster::guild_sticker_delete
  https://discord.com/developers/docs/resources/sticker#delete-guild-sticker

Parameters

  sticker_id | sticker ID to delete
  guild_id | guild ID to delete from

Returns
  confirmation returned object on completion

## ◆ co_guild_sticker_delete() [2/2]

async< confirmation_callback_t > co_guild_sticker_delete | ( | snowflake | sticker_id,
|  | snowflake | guild_id )

nodiscard

Delete a sticker from a guild.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  dpp::cluster::guild_sticker_delete
  https://discord.com/developers/docs/resources/sticker#delete-guild-sticker

Parameters

  sticker_id | sticker ID to delete
  guild_id | guild ID to delete from

Returns
  confirmation returned object on completion

## ◆ co_guild_sticker_get() [1/2]

async< confirmation_callback_t > co_guild_sticker_get | ( | snowflake | id,
|  | snowflake | guild_id )

nodiscard

Get a guild sticker.

See also
  dpp::cluster::guild_sticker_get
  https://discord.com/developers/docs/resources/sticker#get-guild-sticker

Parameters

  id | Id of sticker to get.
  guild_id | Guild ID of the guild where the sticker is

Returns
  sticker returned object on completion

## ◆ co_guild_sticker_get() [2/2]

async< confirmation_callback_t > co_guild_sticker_get | ( | snowflake | id,
|  | snowflake | guild_id )

nodiscard

Get a guild sticker.

See also
  dpp::cluster::guild_sticker_get
  https://discord.com/developers/docs/resources/sticker#get-guild-sticker

Parameters

  id | Id of sticker to get.
  guild_id | Guild ID of the guild where the sticker is

Returns
  sticker returned object on completion

## ◆ co_guild_sticker_modify() [1/2]

async< confirmation_callback_t > co_guild_sticker_modify | ( | const sticker & | s | ) |

nodiscard

Modify a sticker in a guild.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  dpp::cluster::guild_sticker_modify
  https://discord.com/developers/docs/resources/sticker#modify-guild-sticker

Parameters

  s | Sticker to modify. Must have its guild ID and sticker ID set.

Returns
  sticker returned object on completion

## ◆ co_guild_sticker_modify() [2/2]

async< confirmation_callback_t > co_guild_sticker_modify | ( | const sticker & | s | ) |

nodiscard

Modify a sticker in a guild.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  dpp::cluster::guild_sticker_modify
  https://discord.com/developers/docs/resources/sticker#modify-guild-sticker

Parameters

  s | Sticker to modify. Must have its guild ID and sticker ID set.

Returns
  sticker returned object on completion

## ◆ co_guild_stickers_get() [1/2]

async< confirmation_callback_t > co_guild_stickers_get | ( | snowflake | guild_id | ) |

nodiscard

Get all guild stickers.

See also
  dpp::cluster::guild_stickers_get
  https://discord.com/developers/docs/resources/sticker#list-guild-stickers

Parameters

  guild_id | Guild ID of the guild where the sticker is

Returns
  sticker_map returned object on completion

## ◆ co_guild_stickers_get() [2/2]

async< confirmation_callback_t > co_guild_stickers_get | ( | snowflake | guild_id | ) |

nodiscard

Get all guild stickers.

See also
  dpp::cluster::guild_stickers_get
  https://discord.com/developers/docs/resources/sticker#list-guild-stickers

Parameters

  guild_id | Guild ID of the guild where the sticker is

Returns
  sticker_map returned object on completion

## ◆ co_guild_sync_integration() [1/2]

async< confirmation_callback_t > co_guild_sync_integration | ( | snowflake | guild_id,
|  | snowflake | integration_id )

nodiscard

Sync guild integration.

See also
  dpp::cluster::guild_sync_integration
  https://discord.com/developers/docs/resources/guild#sync-guild-integration

Parameters

  guild_id | Guild ID to sync integration on
  integration_id | Integration ID to synchronise

Returns
  confirmation returned object on completion

## ◆ co_guild_sync_integration() [2/2]

async< confirmation_callback_t > co_guild_sync_integration | ( | snowflake | guild_id,
|  | snowflake | integration_id )

nodiscard

Sync guild integration.

See also
  dpp::cluster::guild_sync_integration
  https://discord.com/developers/docs/resources/guild#sync-guild-integration

Parameters

  guild_id | Guild ID to sync integration on
  integration_id | Integration ID to synchronise

Returns
  confirmation returned object on completion

## ◆ co_guild_template_create() [1/2]

async< confirmation_callback_t > co_guild_template_create | ( | snowflake | guild_id,
|  | const std::string & | name,
|  | const std::string & | description )

nodiscard

Creates a template for the guild.

See also
  dpp::cluster::guild_template_create
  https://discord.com/developers/docs/resources/guild-template#create-guild-template

Parameters

  guild_id | Guild to create template from
  name | Template name to create
  description | Description of template to create

Returns
  dtemplate returned object on completion

## ◆ co_guild_template_create() [2/2]

async< confirmation_callback_t > co_guild_template_create | ( | snowflake | guild_id,
|  | const std::string & | name,
|  | const std::string & | description )

nodiscard

Creates a template for the guild.

See also
  dpp::cluster::guild_template_create
  https://discord.com/developers/docs/resources/guild-template#create-guild-template

Parameters

  guild_id | Guild to create template from
  name | Template name to create
  description | Description of template to create

Returns
  dtemplate returned object on completion

## ◆ co_guild_template_delete() [1/2]

async< confirmation_callback_t > co_guild_template_delete | ( | snowflake | guild_id,
|  | const std::string & | code )

nodiscard

Deletes the template.

See also
  dpp::cluster::guild_template_delete
  https://discord.com/developers/docs/resources/guild-template#delete-guild-template

Parameters

  guild_id | Guild ID of template to delete
  code | Template code to delete

Returns
  confirmation returned object on completion

## ◆ co_guild_template_delete() [2/2]

async< confirmation_callback_t > co_guild_template_delete | ( | snowflake | guild_id,
|  | const std::string & | code )

nodiscard

Deletes the template.

See also
  dpp::cluster::guild_template_delete
  https://discord.com/developers/docs/resources/guild-template#delete-guild-template

Parameters

  guild_id | Guild ID of template to delete
  code | Template code to delete

Returns
  confirmation returned object on completion

## ◆ co_guild_template_modify() [1/2]

async< confirmation_callback_t > co_guild_template_modify | ( | snowflake | guild_id,
|  | const std::string & | code,
|  | const std::string & | name,
|  | const std::string & | description )

nodiscard

Modifies the template's metadata.

See also
  dpp::cluster::guild_template_modify
  https://discord.com/developers/docs/resources/guild-template#modify-guild-template

Parameters

  guild_id | Guild ID of template to modify
  code | Template code to modify
  name | New name of template
  description | New description of template

Returns
  dtemplate returned object on completion

## ◆ co_guild_template_modify() [2/2]

async< confirmation_callback_t > co_guild_template_modify | ( | snowflake | guild_id,
|  | const std::string & | code,
|  | const std::string & | name,
|  | const std::string & | description )

nodiscard

Modifies the template's metadata.

See also
  dpp::cluster::guild_template_modify
  https://discord.com/developers/docs/resources/guild-template#modify-guild-template

Parameters

  guild_id | Guild ID of template to modify
  code | Template code to modify
  name | New name of template
  description | New description of template

Returns
  dtemplate returned object on completion

## ◆ co_guild_template_sync() [1/2]

async< confirmation_callback_t > co_guild_template_sync | ( | snowflake | guild_id,
|  | const std::string & | code )

nodiscard

Syncs the template to the guild's current state.

See also
  dpp::cluster::guild_template_sync
  https://discord.com/developers/docs/resources/guild-template#sync-guild-template

Parameters

  guild_id | Guild to synchronise template for
  code | Code of template to synchronise

Returns
  dtemplate returned object on completion

## ◆ co_guild_template_sync() [2/2]

async< confirmation_callback_t > co_guild_template_sync | ( | snowflake | guild_id,
|  | const std::string & | code )

nodiscard

Syncs the template to the guild's current state.

See also
  dpp::cluster::guild_template_sync
  https://discord.com/developers/docs/resources/guild-template#sync-guild-template

Parameters

  guild_id | Guild to synchronise template for
  code | Code of template to synchronise

Returns
  dtemplate returned object on completion

## ◆ co_guild_templates_get() [1/2]

async< confirmation_callback_t > co_guild_templates_get | ( | snowflake | guild_id | ) |

nodiscard

Get guild templates.

See also
  dpp::cluster::guild_templates_get
  https://discord.com/developers/docs/resources/guild-template#get-guild-templates

Parameters

  guild_id | Guild ID to get templates for

Returns
  dtemplate_map returned object on completion

## ◆ co_guild_templates_get() [2/2]

async< confirmation_callback_t > co_guild_templates_get | ( | snowflake | guild_id | ) |

nodiscard

Get guild templates.

See also
  dpp::cluster::guild_templates_get
  https://discord.com/developers/docs/resources/guild-template#get-guild-templates

Parameters

  guild_id | Guild ID to get templates for

Returns
  dtemplate_map returned object on completion

## ◆ co_interaction_followup_create() [1/2]

async< confirmation_callback_t > co_interaction_followup_create | ( | const std::string & | token,
|  | const message & | m )

nodiscard

Create a followup message for an interaction.

See also
  dpp::cluster::interaction_followup_create
  https://discord.com/developers/docs/interactions/receiving-and-responding#create-interaction-response

Parameters

  token | Token for the interaction webhook
  m | followup message to create

Returns
  confirmation returned object on completion

## ◆ co_interaction_followup_create() [2/2]

async< confirmation_callback_t > co_interaction_followup_create | ( | const std::string & | token,
|  | const message & | m )

nodiscard

Create a followup message for an interaction.

See also
  dpp::cluster::interaction_followup_create
  https://discord.com/developers/docs/interactions/receiving-and-responding#create-interaction-response

Parameters

  token | Token for the interaction webhook
  m | followup message to create

Returns
  confirmation returned object on completion

## ◆ co_interaction_followup_delete() [1/2]

async< confirmation_callback_t > co_interaction_followup_delete | ( | const std::string & | token | ) |

nodiscard

Delete the initial interaction response.

See also
  dpp::cluster::interaction_followup_delete
  https://discord.com/developers/docs/interactions/receiving-and-responding#delete-original-interaction-response

Parameters

  token | Token for the interaction webhook

Returns
  confirmation returned object on completion

## ◆ co_interaction_followup_delete() [2/2]

async< confirmation_callback_t > co_interaction_followup_delete | ( | const std::string & | token | ) |

nodiscard

Delete the initial interaction response.

See also
  dpp::cluster::interaction_followup_delete
  https://discord.com/developers/docs/interactions/receiving-and-responding#delete-original-interaction-response

Parameters

  token | Token for the interaction webhook

Returns
  confirmation returned object on completion

## ◆ co_interaction_followup_edit() [1/2]

async< confirmation_callback_t > co_interaction_followup_edit | ( | const std::string & | token,
|  | const message & | m )

nodiscard

Edit followup message for an interaction The message ID in the message you pass should be correctly set to that of a followup message you previously sent.

See also
  dpp::cluster::interaction_followup_edit
  https://discord.com/developers/docs/interactions/receiving-and-responding#edit-followup-message

Parameters

  token | Token for the interaction webhook
  m | message to edit, the ID should be set

Returns
  confirmation returned object on completion

## ◆ co_interaction_followup_edit() [2/2]

async< confirmation_callback_t > co_interaction_followup_edit | ( | const std::string & | token,
|  | const message & | m )

nodiscard

Edit followup message for an interaction The message ID in the message you pass should be correctly set to that of a followup message you previously sent.

See also
  dpp::cluster::interaction_followup_edit
  https://discord.com/developers/docs/interactions/receiving-and-responding#edit-followup-message

Parameters

  token | Token for the interaction webhook
  m | message to edit, the ID should be set

Returns
  confirmation returned object on completion

## ◆ co_interaction_followup_edit_original() [1/2]

async< confirmation_callback_t > co_interaction_followup_edit_original | ( | const std::string & | token,
|  | const message & | m )

nodiscard

Edit original followup message for an interaction This is an alias for cluster::interaction_response_edit.

See also
  dpp::cluster::interaction_followup_edit_original
  cluster::interaction_response_edit

Parameters

  token | Token for the interaction webhook
  m | message to edit, the ID should be set

Returns
  confirmation returned object on completion

## ◆ co_interaction_followup_edit_original() [2/2]

async< confirmation_callback_t > co_interaction_followup_edit_original | ( | const std::string & | token,
|  | const message & | m )

nodiscard

Edit original followup message for an interaction This is an alias for cluster::interaction_response_edit.

See also
  dpp::cluster::interaction_followup_edit_original
  cluster::interaction_response_edit

Parameters

  token | Token for the interaction webhook
  m | message to edit, the ID should be set

Returns
  confirmation returned object on completion

## ◆ co_interaction_followup_get() [1/2]

async< confirmation_callback_t > co_interaction_followup_get | ( | const std::string & | token,
|  | snowflake | message_id )

nodiscard

Get the followup message for an interaction.

See also
  dpp::cluster::interaction_followup_get
  https://discord.com/developers/docs/interactions/receiving-and-responding#get-followup-message

Parameters

  token | Token for the interaction webhook
  message_id | message to retrieve

Returns
  message returned object on completion

## ◆ co_interaction_followup_get() [2/2]

async< confirmation_callback_t > co_interaction_followup_get | ( | const std::string & | token,
|  | snowflake | message_id )

nodiscard

Get the followup message for an interaction.

See also
  dpp::cluster::interaction_followup_get
  https://discord.com/developers/docs/interactions/receiving-and-responding#get-followup-message

Parameters

  token | Token for the interaction webhook
  message_id | message to retrieve

Returns
  message returned object on completion

## ◆ co_interaction_followup_get_original() [1/2]

async< confirmation_callback_t > co_interaction_followup_get_original | ( | const std::string & | token | ) |

nodiscard

Get the original followup message for an interaction This is an alias for cluster::interaction_response_get_original.

See also
  dpp::cluster::interaction_followup_get_original
  cluster::interaction_response_get_original

Parameters

  token | Token for the interaction webhook

Returns
  message returned object on completion

## ◆ co_interaction_followup_get_original() [2/2]

async< confirmation_callback_t > co_interaction_followup_get_original | ( | const std::string & | token | ) |

nodiscard

Get the original followup message for an interaction This is an alias for cluster::interaction_response_get_original.

See also
  dpp::cluster::interaction_followup_get_original
  cluster::interaction_response_get_original

Parameters

  token | Token for the interaction webhook

Returns
  message returned object on completion

## ◆ co_interaction_response_create() [1/2]

async< confirmation_callback_t > co_interaction_response_create | ( | snowflake | interaction_id,
|  | const std::string & | token,
|  | const interaction_response & | r )

nodiscard

Respond to a slash command.

See also
  dpp::cluster::interaction_response_create
  https://discord.com/developers/docs/interactions/receiving-and-responding#create-interaction-response

Parameters

  interaction_id | Interaction id to respond to
  token | Token for the interaction webhook
  r | Response to send

Returns
  confirmation returned object on completion

## ◆ co_interaction_response_create() [2/2]

async< confirmation_callback_t > co_interaction_response_create | ( | snowflake | interaction_id,
|  | const std::string & | token,
|  | const interaction_response & | r )

nodiscard

Respond to a slash command.

See also
  dpp::cluster::interaction_response_create
  https://discord.com/developers/docs/interactions/receiving-and-responding#create-interaction-response

Parameters

  interaction_id | Interaction id to respond to
  token | Token for the interaction webhook
  r | Response to send

Returns
  confirmation returned object on completion

## ◆ co_interaction_response_edit() [1/2]

async< confirmation_callback_t > co_interaction_response_edit | ( | const std::string & | token,
|  | const message & | m )

nodiscard

Edit response to a slash command.

See also
  dpp::cluster::interaction_response_edit
  https://discord.com/developers/docs/interactions/receiving-and-responding#edit-original-interaction-response

Parameters

  token | Token for the interaction webhook
  m | Message to send

Returns
  confirmation returned object on completion

## ◆ co_interaction_response_edit() [2/2]

async< confirmation_callback_t > co_interaction_response_edit | ( | const std::string & | token,
|  | const message & | m )

nodiscard

Edit response to a slash command.

See also
  dpp::cluster::interaction_response_edit
  https://discord.com/developers/docs/interactions/receiving-and-responding#edit-original-interaction-response

Parameters

  token | Token for the interaction webhook
  m | Message to send

Returns
  confirmation returned object on completion

## ◆ co_interaction_response_get_original() [1/2]

async< confirmation_callback_t > co_interaction_response_get_original | ( | const std::string & | token | ) |

nodiscard

Get the original response to a slash command.

See also
  dpp::cluster::interaction_response_get_original
  https://discord.com/developers/docs/interactions/receiving-and-responding#get-original-interaction-response

Parameters

  token | Token for the interaction webhook

Returns
  message returned object on completion

## ◆ co_interaction_response_get_original() [2/2]

async< confirmation_callback_t > co_interaction_response_get_original | ( | const std::string & | token | ) |

nodiscard

Get the original response to a slash command.

See also
  dpp::cluster::interaction_response_get_original
  https://discord.com/developers/docs/interactions/receiving-and-responding#get-original-interaction-response

Parameters

  token | Token for the interaction webhook

Returns
  message returned object on completion

## ◆ co_invite_delete()

async< confirmation_callback_t > dpp::cluster::co_invite_delete | ( | const std::string & | invitecode | ) |

nodiscard

## ◆ co_invite_get() [1/2]

async< confirmation_callback_t > co_invite_get | ( | const std::string & | invite_code | ) |

nodiscard

Get details about an invite.

See also
  dpp::cluster::invite_get
  https://discord.com/developers/docs/resources/invite#get-invite

Parameters

  invite_code | Invite code to get information on

Returns
  invite returned object on completion

## ◆ co_invite_get() [2/2]

async< confirmation_callback_t > co_invite_get | ( | const std::string & | invite_code | ) |

nodiscard

Get details about an invite.

See also
  dpp::cluster::invite_get
  https://discord.com/developers/docs/resources/invite#get-invite

Parameters

  invite_code | Invite code to get information on

Returns
  invite returned object on completion

## ◆ co_message_add_reaction() [1/4]

async< confirmation_callback_t > co_message_add_reaction | ( | const struct message & | m,
|  | const std::string & | reaction )

nodiscard

Add a reaction to a message. The reaction string must be either an emojiname:id or a unicode character.

See also
  dpp::cluster::message_add_reaction
  https://discord.com/developers/docs/resources/channel#create-reaction

Parameters

  m | Message to add a reaction to
  reaction | Reaction to add. Emojis should be in the form emojiname:id

Returns
  confirmation returned object on completion

## ◆ co_message_add_reaction() [2/4]

async< confirmation_callback_t > co_message_add_reaction | ( | const struct message & | m,
|  | const std::string & | reaction )

nodiscard

Add a reaction to a message. The reaction string must be either an emojiname:id or a unicode character.

See also
  dpp::cluster::message_add_reaction
  https://discord.com/developers/docs/resources/channel#create-reaction

Parameters

  m | Message to add a reaction to
  reaction | Reaction to add. Emojis should be in the form emojiname:id

Returns
  confirmation returned object on completion

## ◆ co_message_add_reaction() [3/4]

async< confirmation_callback_t > co_message_add_reaction | ( | snowflake | message_id,
|  | snowflake | channel_id,
|  | const std::string & | reaction )

nodiscard

Add a reaction to a message by id. The reaction string must be either an emojiname:id or a unicode character.

See also
  dpp::cluster::message_add_reaction
  https://discord.com/developers/docs/topics/gateway#message-reaction-add

Parameters

  message_id | Message to add reactions to
  channel_id | Channel to add reactions to
  reaction | Reaction to add. Emojis should be in the form emojiname:id

Returns
  confirmation returned object on completion

## ◆ co_message_add_reaction() [4/4]

async< confirmation_callback_t > co_message_add_reaction | ( | snowflake | message_id,
|  | snowflake | channel_id,
|  | const std::string & | reaction )

nodiscard

Add a reaction to a message by id. The reaction string must be either an emojiname:id or a unicode character.

See also
  dpp::cluster::message_add_reaction
  https://discord.com/developers/docs/topics/gateway#message-reaction-add

Parameters

  message_id | Message to add reactions to
  channel_id | Channel to add reactions to
  reaction | Reaction to add. Emojis should be in the form emojiname:id

Returns
  confirmation returned object on completion

## ◆ co_message_create() [1/2]

async< confirmation_callback_t > co_message_create | ( | const struct message & | m | ) |

nodiscard

Send a message to a channel. The callback function is called when the message has been sent.

See also
  dpp::cluster::message_create
  https://discord.com/developers/docs/resources/channel#create-message

Parameters

  m | Message to send

Returns
  message returned object on completion

## ◆ co_message_create() [2/2]

async< confirmation_callback_t > co_message_create | ( | const struct message & | m | ) |

nodiscard

Send a message to a channel. The callback function is called when the message has been sent.

See also
  dpp::cluster::message_create
  https://discord.com/developers/docs/resources/channel#create-message

Parameters

  m | Message to send

Returns
  message returned object on completion

## ◆ co_message_crosspost() [1/2]

async< confirmation_callback_t > co_message_crosspost | ( | snowflake | message_id,
|  | snowflake | channel_id )

nodiscard

Crosspost a message. The callback function is called when the message has been sent.

See also
  dpp::cluster::message_crosspost
  https://discord.com/developers/docs/resources/channel#crosspost-message

Parameters

  message_id | Message to crosspost
  channel_id | Channel ID to crosspost from

Returns
  message returned object on completion

## ◆ co_message_crosspost() [2/2]

async< confirmation_callback_t > co_message_crosspost | ( | snowflake | message_id,
|  | snowflake | channel_id )

nodiscard

Crosspost a message. The callback function is called when the message has been sent.

See also
  dpp::cluster::message_crosspost
  https://discord.com/developers/docs/resources/channel#crosspost-message

Parameters

  message_id | Message to crosspost
  channel_id | Channel ID to crosspost from

Returns
  message returned object on completion

## ◆ co_message_delete() [1/2]

async< confirmation_callback_t > co_message_delete | ( | snowflake | message_id,
|  | snowflake | channel_id )

nodiscard

Delete a message from a channel. The callback function is called when the message has been edited.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  dpp::cluster::message_delete
  https://discord.com/developers/docs/resources/channel#delete-message

Parameters

  message_id | Message ID to delete
  channel_id | Channel to delete from

Returns
  confirmation returned object on completion

## ◆ co_message_delete() [2/2]

async< confirmation_callback_t > co_message_delete | ( | snowflake | message_id,
|  | snowflake | channel_id )

nodiscard

Delete a message from a channel. The callback function is called when the message has been edited.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  dpp::cluster::message_delete
  https://discord.com/developers/docs/resources/channel#delete-message

Parameters

  message_id | Message ID to delete
  channel_id | Channel to delete from

Returns
  confirmation returned object on completion

## ◆ co_message_delete_all_reactions() [1/4]

async< confirmation_callback_t > co_message_delete_all_reactions | ( | const struct message & | m | ) |

nodiscard

Delete all reactions on a message.

See also
  dpp::cluster::message_delete_all_reactions
  https://discord.com/developers/docs/resources/channel#delete-all-reactions

Parameters

  m | Message to delete reactions from

Returns
  confirmation returned object on completion

## ◆ co_message_delete_all_reactions() [2/4]

async< confirmation_callback_t > co_message_delete_all_reactions | ( | const struct message & | m | ) |

nodiscard

Delete all reactions on a message.

See also
  dpp::cluster::message_delete_all_reactions
  https://discord.com/developers/docs/resources/channel#delete-all-reactions

Parameters

  m | Message to delete reactions from

Returns
  confirmation returned object on completion

## ◆ co_message_delete_all_reactions() [3/4]

async< confirmation_callback_t > co_message_delete_all_reactions | ( | snowflake | message_id,
|  | snowflake | channel_id )

nodiscard

Delete all reactions on a message by id.

See also
  dpp::cluster::message_delete_all_reactions
  https://discord.com/developers/docs/resources/channel#delete-all-reactions

Parameters

  message_id | Message to delete reactions from
  channel_id | Channel to delete reactions from

Returns
  confirmation returned object on completion

## ◆ co_message_delete_all_reactions() [4/4]

async< confirmation_callback_t > co_message_delete_all_reactions | ( | snowflake | message_id,
|  | snowflake | channel_id )

nodiscard

Delete all reactions on a message by id.

See also
  dpp::cluster::message_delete_all_reactions
  https://discord.com/developers/docs/resources/channel#delete-all-reactions

Parameters

  message_id | Message to delete reactions from
  channel_id | Channel to delete reactions from

Returns
  confirmation returned object on completion

## ◆ co_message_delete_bulk() [1/2]

async< confirmation_callback_t > co_message_delete_bulk | ( | const std::vector< snowflake > & | message_ids,
|  | snowflake | channel_id )

nodiscard

Bulk delete messages from a channel. The callback function is called when the message has been edited.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.
  If any message provided older than 2 weeks or any duplicate message ID, it will fail.

See also
  dpp::cluster::message_delete_bulk
  https://discord.com/developers/docs/resources/channel#bulk-delete-messages

Parameters

  message_ids | List of message IDs to delete (at least 2 and at most 100 message IDs)
  channel_id | Channel to delete from

Returns
  confirmation returned object on completion

## ◆ co_message_delete_bulk() [2/2]

async< confirmation_callback_t > co_message_delete_bulk | ( | const std::vector< snowflake > & | message_ids,
|  | snowflake | channel_id )

nodiscard

Bulk delete messages from a channel. The callback function is called when the message has been edited.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.
  If any message provided older than 2 weeks or any duplicate message ID, it will fail.

See also
  dpp::cluster::message_delete_bulk
  https://discord.com/developers/docs/resources/channel#bulk-delete-messages

Parameters

  message_ids | List of message IDs to delete (at least 2 and at most 100 message IDs)
  channel_id | Channel to delete from

Returns
  confirmation returned object on completion

## ◆ co_message_delete_own_reaction() [1/4]

async< confirmation_callback_t > co_message_delete_own_reaction | ( | const struct message & | m,
|  | const std::string & | reaction )

nodiscard

Delete own reaction from a message. The reaction string must be either an emojiname:id or a unicode character.

See also
  dpp::cluster::message_delete_own_reaction
  https://discord.com/developers/docs/resources/channel#delete-own-reaction

Parameters

  m | Message to delete own reaction from
  reaction | Reaction to delete. The reaction should be in the form emojiname:id

Returns
  confirmation returned object on completion

## ◆ co_message_delete_own_reaction() [2/4]

async< confirmation_callback_t > co_message_delete_own_reaction | ( | const struct message & | m,
|  | const std::string & | reaction )

nodiscard

Delete own reaction from a message. The reaction string must be either an emojiname:id or a unicode character.

See also
  dpp::cluster::message_delete_own_reaction
  https://discord.com/developers/docs/resources/channel#delete-own-reaction

Parameters

  m | Message to delete own reaction from
  reaction | Reaction to delete. The reaction should be in the form emojiname:id

Returns
  confirmation returned object on completion

## ◆ co_message_delete_own_reaction() [3/4]

async< confirmation_callback_t > co_message_delete_own_reaction | ( | snowflake | message_id,
|  | snowflake | channel_id,
|  | const std::string & | reaction )

nodiscard

Delete own reaction from a message by id. The reaction string must be either an emojiname:id or a unicode character.

See also
  dpp::cluster::message_delete_own_reaction
  https://discord.com/developers/docs/resources/channel#delete-own-reaction

Parameters

  message_id | Message to delete reactions from
  channel_id | Channel to delete reactions from
  reaction | Reaction to delete. The reaction should be in the form emojiname:id

Returns
  confirmation returned object on completion

## ◆ co_message_delete_own_reaction() [4/4]

async< confirmation_callback_t > co_message_delete_own_reaction | ( | snowflake | message_id,
|  | snowflake | channel_id,
|  | const std::string & | reaction )

nodiscard

Delete own reaction from a message by id. The reaction string must be either an emojiname:id or a unicode character.

See also
  dpp::cluster::message_delete_own_reaction
  https://discord.com/developers/docs/resources/channel#delete-own-reaction

Parameters

  message_id | Message to delete reactions from
  channel_id | Channel to delete reactions from
  reaction | Reaction to delete. The reaction should be in the form emojiname:id

Returns
  confirmation returned object on completion

## ◆ co_message_delete_reaction() [1/4]

async< confirmation_callback_t > co_message_delete_reaction | ( | const struct message & | m,
|  | snowflake | user_id,
|  | const std::string & | reaction )

nodiscard

Delete a user's reaction from a message. The reaction string must be either an emojiname:id or a unicode character.

See also
  dpp::cluster::message_delete_reaction
  https://discord.com/developers/docs/resources/channel#delete-user-reaction

Parameters

  m | Message to delete a user's reaction from
  user_id | User ID who's reaction you want to remove
  reaction | Reaction to remove. Reactions should be in the form emojiname:id

Returns
  confirmation returned object on completion

## ◆ co_message_delete_reaction() [2/4]

async< confirmation_callback_t > co_message_delete_reaction | ( | const struct message & | m,
|  | snowflake | user_id,
|  | const std::string & | reaction )

nodiscard

Delete a user's reaction from a message. The reaction string must be either an emojiname:id or a unicode character.

See also
  dpp::cluster::message_delete_reaction
  https://discord.com/developers/docs/resources/channel#delete-user-reaction

Parameters

  m | Message to delete a user's reaction from
  user_id | User ID who's reaction you want to remove
  reaction | Reaction to remove. Reactions should be in the form emojiname:id

Returns
  confirmation returned object on completion

## ◆ co_message_delete_reaction() [3/4]

async< confirmation_callback_t > co_message_delete_reaction | ( | snowflake | message_id,
|  | snowflake | channel_id,
|  | snowflake | user_id,
|  | const std::string & | reaction )

nodiscard

Delete a user's reaction from a message by id. The reaction string must be either an emojiname:id or a unicode character.

See also
  dpp::cluster::message_delete_reaction
  https://discord.com/developers/docs/resources/channel#delete-user-reaction

Parameters

  message_id | Message to delete reactions from
  channel_id | Channel to delete reactions from
  user_id | User ID who's reaction you want to remove
  reaction | Reaction to remove. Reactions should be in the form emojiname:id

Returns
  confirmation returned object on completion

## ◆ co_message_delete_reaction() [4/4]

async< confirmation_callback_t > co_message_delete_reaction | ( | snowflake | message_id,
|  | snowflake | channel_id,
|  | snowflake | user_id,
|  | const std::string & | reaction )

nodiscard

Delete a user's reaction from a message by id. The reaction string must be either an emojiname:id or a unicode character.

See also
  dpp::cluster::message_delete_reaction
  https://discord.com/developers/docs/resources/channel#delete-user-reaction

Parameters

  message_id | Message to delete reactions from
  channel_id | Channel to delete reactions from
  user_id | User ID who's reaction you want to remove
  reaction | Reaction to remove. Reactions should be in the form emojiname:id

Returns
  confirmation returned object on completion

## ◆ co_message_delete_reaction_emoji() [1/4]

async< confirmation_callback_t > co_message_delete_reaction_emoji | ( | const struct message & | m,
|  | const std::string & | reaction )

nodiscard

Delete all reactions on a message using a particular emoji. The reaction string must be either an emojiname:id or a unicode character.

See also
  dpp::cluster::message_delete_reaction_emoji
  https://discord.com/developers/docs/resources/channel#delete-all-reactions-for-emoji

Parameters

  m | Message to delete reactions from
  reaction | Reaction to delete, in the form emojiname:id or a unicode character

Returns
  confirmation returned object on completion

## ◆ co_message_delete_reaction_emoji() [2/4]

async< confirmation_callback_t > co_message_delete_reaction_emoji | ( | const struct message & | m,
|  | const std::string & | reaction )

nodiscard

Delete all reactions on a message using a particular emoji. The reaction string must be either an emojiname:id or a unicode character.

See also
  dpp::cluster::message_delete_reaction_emoji
  https://discord.com/developers/docs/resources/channel#delete-all-reactions-for-emoji

Parameters

  m | Message to delete reactions from
  reaction | Reaction to delete, in the form emojiname:id or a unicode character

Returns
  confirmation returned object on completion

## ◆ co_message_delete_reaction_emoji() [3/4]

async< confirmation_callback_t > co_message_delete_reaction_emoji | ( | snowflake | message_id,
|  | snowflake | channel_id,
|  | const std::string & | reaction )

nodiscard

Delete all reactions on a message using a particular emoji by id. The reaction string must be either an emojiname:id or a unicode character.

See also
  dpp::cluster::message_delete_reaction_emoji
  https://discord.com/developers/docs/resources/channel#delete-all-reactions-for-emoji

Parameters

  message_id | Message to delete reactions from
  channel_id | Channel to delete reactions from
  reaction | Reaction to delete, in the form emojiname:id or a unicode character

Returns
  confirmation returned object on completion

## ◆ co_message_delete_reaction_emoji() [4/4]

async< confirmation_callback_t > co_message_delete_reaction_emoji | ( | snowflake | message_id,
|  | snowflake | channel_id,
|  | const std::string & | reaction )

nodiscard

Delete all reactions on a message using a particular emoji by id. The reaction string must be either an emojiname:id or a unicode character.

See also
  dpp::cluster::message_delete_reaction_emoji
  https://discord.com/developers/docs/resources/channel#delete-all-reactions-for-emoji

Parameters

  message_id | Message to delete reactions from
  channel_id | Channel to delete reactions from
  reaction | Reaction to delete, in the form emojiname:id or a unicode character

Returns
  confirmation returned object on completion

## ◆ co_message_edit() [1/2]

async< confirmation_callback_t > co_message_edit | ( | const struct message & | m | ) |

nodiscard

Edit a message on a channel. The callback function is called when the message has been edited.

See also
  dpp::cluster::message_edit
  https://discord.com/developers/docs/resources/channel#edit-message

Parameters

  m | Message to edit

Returns
  message returned object on completion

## ◆ co_message_edit() [2/2]

async< confirmation_callback_t > co_message_edit | ( | const struct message & | m | ) |

nodiscard

Edit a message on a channel. The callback function is called when the message has been edited.

See also
  dpp::cluster::message_edit
  https://discord.com/developers/docs/resources/channel#edit-message

Parameters

  m | Message to edit

Returns
  message returned object on completion

## ◆ co_message_edit_flags() [1/2]

async< confirmation_callback_t > co_message_edit_flags | ( | const struct message & | m | ) |

nodiscard

Edit the flags of a message on a channel. The callback function is called when the message has been edited.

Parameters

  m | Message to edit the flags of

Returns
  message returned object on completion

## ◆ co_message_edit_flags() [2/2]

async< confirmation_callback_t > co_message_edit_flags | ( | const struct message & | m | ) |

nodiscard

Edit the flags of a message on a channel. The callback function is called when the message has been edited.

Parameters

  m | Message to edit the flags of

Returns
  message returned object on completion

## ◆ co_message_get() [1/2]

async< confirmation_callback_t > co_message_get | ( | snowflake | message_id,
|  | snowflake | channel_id )

nodiscard

Get a message.

See also
  dpp::cluster::message_get
  https://discord.com/developers/docs/resources/channel#get-channel-message

Parameters

  message_id | Message ID
  channel_id | Channel ID

Returns
  message returned object on completion

## ◆ co_message_get() [2/2]

async< confirmation_callback_t > co_message_get | ( | snowflake | message_id,
|  | snowflake | channel_id )

nodiscard

Get a message.

See also
  dpp::cluster::message_get
  https://discord.com/developers/docs/resources/channel#get-channel-message

Parameters

  message_id | Message ID
  channel_id | Channel ID

Returns
  message returned object on completion

## ◆ co_message_get_reactions() [1/4]

async< confirmation_callback_t > co_message_get_reactions | ( | const struct message & | m,
|  | const std::string & | reaction,
|  | snowflake | before,
|  | snowflake | after,
|  | snowflake | limit )

nodiscard

Get reactions on a message for a particular emoji. The reaction string must be either an emojiname:id or a unicode character.

See also
  dpp::cluster::message_get_reactions
  https://discord.com/developers/docs/resources/channel#get-reactions

Parameters

  m | Message to get reactions for
  reaction | Reaction should be in the form emojiname:id or a unicode character
  before | Reactions before this ID should be retrieved if this is set to non-zero
  after | Reactions before this ID should be retrieved if this is set to non-zero
  limit | This number of reactions maximum should be returned

Returns
  user_map returned object on completion

## ◆ co_message_get_reactions() [2/4]

async< confirmation_callback_t > co_message_get_reactions | ( | const struct message & | m,
|  | const std::string & | reaction,
|  | snowflake | before,
|  | snowflake | after,
|  | snowflake | limit )

nodiscard

Get reactions on a message for a particular emoji. The reaction string must be either an emojiname:id or a unicode character.

See also
  dpp::cluster::message_get_reactions
  https://discord.com/developers/docs/resources/channel#get-reactions

Parameters

  m | Message to get reactions for
  reaction | Reaction should be in the form emojiname:id or a unicode character
  before | Reactions before this ID should be retrieved if this is set to non-zero
  after | Reactions before this ID should be retrieved if this is set to non-zero
  limit | This number of reactions maximum should be returned

Returns
  user_map returned object on completion

## ◆ co_message_get_reactions() [3/4]

async< confirmation_callback_t > co_message_get_reactions | ( | snowflake | message_id,
|  | snowflake | channel_id,
|  | const std::string & | reaction,
|  | snowflake | before,
|  | snowflake | after,
|  | snowflake | limit )

nodiscard

Get reactions on a message for a particular emoji by id. The reaction string must be either an emojiname:id or a unicode character.

See also
  dpp::cluster::message_get_reactions
  https://discord.com/developers/docs/resources/channel#get-reactions

Parameters

  message_id | Message to get reactions for
  channel_id | Channel to get reactions for
  reaction | Reaction should be in the form emojiname:id or a unicode character
  before | Reactions before this ID should be retrieved if this is set to non-zero
  after | Reactions before this ID should be retrieved if this is set to non-zero
  limit | This number of reactions maximum should be returned

Returns
  emoji_map returned object on completion

## ◆ co_message_get_reactions() [4/4]

async< confirmation_callback_t > co_message_get_reactions | ( | snowflake | message_id,
|  | snowflake | channel_id,
|  | const std::string & | reaction,
|  | snowflake | before,
|  | snowflake | after,
|  | snowflake | limit )

nodiscard

Get reactions on a message for a particular emoji by id. The reaction string must be either an emojiname:id or a unicode character.

See also
  dpp::cluster::message_get_reactions
  https://discord.com/developers/docs/resources/channel#get-reactions

Parameters

  message_id | Message to get reactions for
  channel_id | Channel to get reactions for
  reaction | Reaction should be in the form emojiname:id or a unicode character
  before | Reactions before this ID should be retrieved if this is set to non-zero
  after | Reactions before this ID should be retrieved if this is set to non-zero
  limit | This number of reactions maximum should be returned

Returns
  emoji_map returned object on completion

## ◆ co_message_pin() [1/2]

async< confirmation_callback_t > co_message_pin | ( | snowflake | channel_id,
|  | snowflake | message_id )

nodiscard

Pin a message.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  dpp::cluster::message_pin
  https://discord.com/developers/docs/resources/channel#pin-message

Parameters

  channel_id | Channel id to pin message on
  message_id | Message id to pin message on

Returns
  confirmation returned object on completion

## ◆ co_message_pin() [2/2]

async< confirmation_callback_t > co_message_pin | ( | snowflake | channel_id,
|  | snowflake | message_id )

nodiscard

Pin a message.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  dpp::cluster::message_pin
  https://discord.com/developers/docs/resources/channel#pin-message

Parameters

  channel_id | Channel id to pin message on
  message_id | Message id to pin message on

Returns
  confirmation returned object on completion

## ◆ co_message_unpin() [1/2]

async< confirmation_callback_t > co_message_unpin | ( | snowflake | channel_id,
|  | snowflake | message_id )

nodiscard

Unpin a message.

See also
  dpp::cluster::message_unpin
  https://discord.com/developers/docs/resources/channel#unpin-message

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  channel_id | Channel id to unpin message on
  message_id | Message id to unpin message on

Returns
  confirmation returned object on completion

## ◆ co_message_unpin() [2/2]

async< confirmation_callback_t > co_message_unpin | ( | snowflake | channel_id,
|  | snowflake | message_id )

nodiscard

Unpin a message.

See also
  dpp::cluster::message_unpin
  https://discord.com/developers/docs/resources/channel#unpin-message

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  channel_id | Channel id to unpin message on
  message_id | Message id to unpin message on

Returns
  confirmation returned object on completion

## ◆ co_messages_get() [1/2]

async< confirmation_callback_t > co_messages_get | ( | snowflake | channel_id,
|  | snowflake | around,
|  | snowflake | before,
|  | snowflake | after,
|  | uint64_t | limit )

nodiscard

Get multiple messages.

This function will attempt to fetch as many messages as possible using multiple API calls if needed.

See also
  dpp::cluster::messages_get
  https://discord.com/developers/docs/resources/channel#get-channel-messages

Parameters

  channel_id | Channel ID to retrieve messages for
  around | Messages should be retrieved around this ID if this is set to non-zero
  before | Messages before this ID should be retrieved if this is set to non-zero
  after | Messages after this ID should be retrieved if this is set to non-zero
  limit | This number of messages maximum should be returned, up to a maximum of 100.

Returns
  message_map returned object on completion

## ◆ co_messages_get() [2/2]

async< confirmation_callback_t > co_messages_get | ( | snowflake | channel_id,
|  | snowflake | around,
|  | snowflake | before,
|  | snowflake | after,
|  | uint64_t | limit )

nodiscard

Get multiple messages.

This function will attempt to fetch as many messages as possible using multiple API calls if needed.

See also
  dpp::cluster::messages_get
  https://discord.com/developers/docs/resources/channel#get-channel-messages

Parameters

  channel_id | Channel ID to retrieve messages for
  around | Messages should be retrieved around this ID if this is set to non-zero
  before | Messages before this ID should be retrieved if this is set to non-zero
  after | Messages after this ID should be retrieved if this is set to non-zero
  limit | This number of messages maximum should be returned, up to a maximum of 100.

Returns
  message_map returned object on completion

## ◆ co_nitro_sticker_get() [1/2]

async< confirmation_callback_t > co_nitro_sticker_get | ( | snowflake | id | ) |

nodiscard

Get a nitro sticker.

See also
  dpp::cluster::nitro_sticker_get
  https://discord.com/developers/docs/resources/sticker#get-sticker

Parameters

  id | Id of sticker to get.

Returns
  sticker returned object on completion

## ◆ co_nitro_sticker_get() [2/2]

async< confirmation_callback_t > co_nitro_sticker_get | ( | snowflake | id | ) |

nodiscard

Get a nitro sticker.

See also
  dpp::cluster::nitro_sticker_get
  https://discord.com/developers/docs/resources/sticker#get-sticker

Parameters

  id | Id of sticker to get.

Returns
  sticker returned object on completion

## ◆ co_poll_end() [1/4]

async< confirmation_callback_t > co_poll_end | ( | const message & | m | ) |

nodiscard

Immediately end a poll.

Parameters

  m | Message that contains the poll

Returns
  message returned object on completion

See also
  dpp::cluster::poll_end
  https://discord.com/developers/docs/resources/poll#end-poll

## ◆ co_poll_end() [2/4]

async< confirmation_callback_t > co_poll_end | ( | const message & | m | ) |

nodiscard

Immediately end a poll.

Parameters

  m | Message that contains the poll

Returns
  message returned object on completion

See also
  dpp::cluster::poll_end
  https://discord.com/developers/docs/resources/poll#end-poll

## ◆ co_poll_end() [3/4]

async< confirmation_callback_t > co_poll_end | ( | snowflake | message_id,
|  | snowflake | channel_id )

nodiscard

Immediately end a poll.

Parameters

  message_id | ID of the message with the poll to end
  channel_id | ID of the channel with the poll to end

Returns
  message returned object on completion

See also
  dpp::cluster::poll_end
  https://discord.com/developers/docs/resources/poll#end-poll

## ◆ co_poll_end() [4/4]

async< confirmation_callback_t > co_poll_end | ( | snowflake | message_id,
|  | snowflake | channel_id )

nodiscard

Immediately end a poll.

Parameters

  message_id | ID of the message with the poll to end
  channel_id | ID of the channel with the poll to end

Returns
  message returned object on completion

See also
  dpp::cluster::poll_end
  https://discord.com/developers/docs/resources/poll#end-poll

## ◆ co_poll_get_answer_voters() [1/4]

async< confirmation_callback_t > co_poll_get_answer_voters | ( | const message & | m,
|  | uint32_t | answer_id,
|  | snowflake | after,
|  | uint64_t | limit )

nodiscard

Get a list of users that voted for this specific answer.

Parameters

  m | Message that contains the poll to retrieve the answers from
  answer_id | ID of the answer to retrieve votes from (see poll_answer::answer_id)
  after | Users after this ID should be retrieved if this is set to non-zero
  limit | This number of users maximum should be returned, up to 100

Returns
  user_map returned object on completion

See also
  dpp::cluster::poll_get_answer_voters
  https://discord.com/developers/docs/resources/poll#get-answer-voters

## ◆ co_poll_get_answer_voters() [2/4]

async< confirmation_callback_t > co_poll_get_answer_voters | ( | const message & | m,
|  | uint32_t | answer_id,
|  | snowflake | after,
|  | uint64_t | limit )

nodiscard

Get a list of users that voted for this specific answer.

Parameters

  m | Message that contains the poll to retrieve the answers from
  answer_id | ID of the answer to retrieve votes from (see poll_answer::answer_id)
  after | Users after this ID should be retrieved if this is set to non-zero
  limit | This number of users maximum should be returned, up to 100

Returns
  user_map returned object on completion

See also
  dpp::cluster::poll_get_answer_voters
  https://discord.com/developers/docs/resources/poll#get-answer-voters

## ◆ co_poll_get_answer_voters() [3/4]

async< confirmation_callback_t > co_poll_get_answer_voters | ( | snowflake | message_id,
|  | snowflake | channel_id,
|  | uint32_t | answer_id,
|  | snowflake | after,
|  | uint64_t | limit )

nodiscard

Get a list of users that voted for this specific answer.

Parameters

  message_id | ID of the message with the poll to retrieve the answers from
  channel_id | ID of the channel with the poll to retrieve the answers from
  answer_id | ID of the answer to retrieve votes from (see poll_answer::answer_id)
  after | Users after this ID should be retrieved if this is set to non-zero
  limit | This number of users maximum should be returned, up to 100

Returns
  user_map returned object on completion

See also
  dpp::cluster::poll_get_answer_voters
  https://discord.com/developers/docs/resources/poll#get-answer-voters

## ◆ co_poll_get_answer_voters() [4/4]

async< confirmation_callback_t > co_poll_get_answer_voters | ( | snowflake | message_id,
|  | snowflake | channel_id,
|  | uint32_t | answer_id,
|  | snowflake | after,
|  | uint64_t | limit )

nodiscard

Get a list of users that voted for this specific answer.

Parameters

  message_id | ID of the message with the poll to retrieve the answers from
  channel_id | ID of the channel with the poll to retrieve the answers from
  answer_id | ID of the answer to retrieve votes from (see poll_answer::answer_id)
  after | Users after this ID should be retrieved if this is set to non-zero
  limit | This number of users maximum should be returned, up to 100

Returns
  user_map returned object on completion

See also
  dpp::cluster::poll_get_answer_voters
  https://discord.com/developers/docs/resources/poll#get-answer-voters

## ◆ co_request()

async< http_request_completion_t > dpp::cluster::co_request | ( | const std::string & | url,
|  | http_method | method,
|  | const std::string & | postdata = "",
|  | const std::string & | mimetype = "text/plain",
|  | const std::multimap< std::string, std::string > & | headers = {},
|  | const std::string & | protocol = "1.1" )

nodiscard

## ◆ co_role_create() [1/2]

async< confirmation_callback_t > co_role_create | ( | const class role & | r | ) |

nodiscard

Create a role on a guild.

Create a new role for the guild. Requires the MANAGE_ROLES permission. Returns the new role object on success. Fires a Guild Role Create Gateway event.

See also
  dpp::cluster::role_create
  https://discord.com/developers/docs/resources/guild#create-guild-role

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  r | Role to create (guild ID is encapsulated in the role object)

Returns
  role returned object on completion

## ◆ co_role_create() [2/2]

async< confirmation_callback_t > co_role_create | ( | const class role & | r | ) |

nodiscard

Create a role on a guild.

Create a new role for the guild. Requires the MANAGE_ROLES permission. Returns the new role object on success. Fires a Guild Role Create Gateway event.

See also
  dpp::cluster::role_create
  https://discord.com/developers/docs/resources/guild#create-guild-role

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  r | Role to create (guild ID is encapsulated in the role object)

Returns
  role returned object on completion

## ◆ co_role_delete() [1/2]

async< confirmation_callback_t > co_role_delete | ( | snowflake | guild_id,
|  | snowflake | role_id )

nodiscard

Delete a role.

Requires the MANAGE_ROLES permission. Fires a Guild Role Delete Gateway event.

See also
  dpp::cluster::role_delete
  https://discord.com/developers/docs/resources/guild#delete-guild-role

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  guild_id | Guild ID to delete the role on
  role_id | Role ID to delete

Returns
  confirmation returned object on completion

## ◆ co_role_delete() [2/2]

async< confirmation_callback_t > co_role_delete | ( | snowflake | guild_id,
|  | snowflake | role_id )

nodiscard

Delete a role.

Requires the MANAGE_ROLES permission. Fires a Guild Role Delete Gateway event.

See also
  dpp::cluster::role_delete
  https://discord.com/developers/docs/resources/guild#delete-guild-role

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  guild_id | Guild ID to delete the role on
  role_id | Role ID to delete

Returns
  confirmation returned object on completion

## ◆ co_role_edit() [1/2]

async< confirmation_callback_t > co_role_edit | ( | const class role & | r | ) |

nodiscard

Edit a role on a guild.

Requires the MANAGE_ROLES permission. Returns the updated role on success. Fires a Guild Role Update Gateway event.

See also
  dpp::cluster::role_edit
  https://discord.com/developers/docs/resources/guild#modify-guild-role

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  r | Role to edit

Returns
  role returned object on completion

## ◆ co_role_edit() [2/2]

async< confirmation_callback_t > co_role_edit | ( | const class role & | r | ) |

nodiscard

Edit a role on a guild.

Requires the MANAGE_ROLES permission. Returns the updated role on success. Fires a Guild Role Update Gateway event.

See also
  dpp::cluster::role_edit
  https://discord.com/developers/docs/resources/guild#modify-guild-role

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  r | Role to edit

Returns
  role returned object on completion

## ◆ co_roles_edit_position() [1/2]

async< confirmation_callback_t > co_roles_edit_position | ( | snowflake | guild_id,
|  | const std::vector< role > & | roles )

nodiscard

Edit multiple role's position in a guild. Returns a list of all roles of the guild on success.

Modify the positions of a set of role objects for the guild. Requires the MANAGE_ROLES permission. Fires multiple Guild Role Update Gateway events.

See also
  dpp::cluster::roles_edit_position
  https://discord.com/developers/docs/resources/guild#modify-guild-role-positions

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  guild_id | Guild ID to change the roles position on
  roles | Vector of roles to change the positions of

Returns
  role_map returned object on completion

## ◆ co_roles_edit_position() [2/2]

async< confirmation_callback_t > co_roles_edit_position | ( | snowflake | guild_id,
|  | const std::vector< role > & | roles )

nodiscard

Edit multiple role's position in a guild. Returns a list of all roles of the guild on success.

Modify the positions of a set of role objects for the guild. Requires the MANAGE_ROLES permission. Fires multiple Guild Role Update Gateway events.

See also
  dpp::cluster::roles_edit_position
  https://discord.com/developers/docs/resources/guild#modify-guild-role-positions

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  guild_id | Guild ID to change the roles position on
  roles | Vector of roles to change the positions of

Returns
  role_map returned object on completion

## ◆ co_roles_get() [1/2]

async< confirmation_callback_t > co_roles_get | ( | snowflake | guild_id | ) |

nodiscard

Get a role for a guild.

See also
  dpp::cluster::roles_get
  https://discord.com/developers/docs/resources/guild#get-guild-roles

Parameters

  guild_id | Guild ID to get role for

Returns
  role_map returned object on completion

## ◆ co_roles_get() [2/2]

async< confirmation_callback_t > co_roles_get | ( | snowflake | guild_id | ) |

nodiscard

Get a role for a guild.

See also
  dpp::cluster::roles_get
  https://discord.com/developers/docs/resources/guild#get-guild-roles

Parameters

  guild_id | Guild ID to get role for

Returns
  role_map returned object on completion

## ◆ co_skus_get() [1/2]

async< confirmation_callback_t > co_skus_get | ( |  | ) |

nodiscard

Returns all SKUs for a given application.

Note
  Because of how Discord's SKU and subscription systems work, you will see two SKUs for your premium offering. For integration and testing entitlements, you should use the SKU with type: 5.

See also
  dpp::cluster::skus_get
  https://discord.com/developers/docs/monetization/skus#list-skus

Returns
  sku_map returned object on completion

## ◆ co_skus_get() [2/2]

async< confirmation_callback_t > co_skus_get | ( |  | ) |

nodiscard

Returns all SKUs for a given application.

Note
  Because of how Discord's SKU and subscription systems work, you will see two SKUs for your premium offering. For integration and testing entitlements, you should use the SKU with type: 5.

See also
  dpp::cluster::skus_get
  https://discord.com/developers/docs/monetization/skus#list-skus

Returns
  sku_map returned object on completion

## ◆ co_sleep()

async< timer > dpp::cluster::co_sleep | ( | uint64_t | seconds | ) |

nodiscard

Get an awaitable to wait a certain amount of seconds. Use the co_await keyword on its return value to suspend the coroutine until the timer ends.

Parameters

  seconds | How long to wait for

Returns
  async<timer> Object that can be co_await-ed to suspend the function for a certain time

## ◆ co_stage_instance_create()

async< confirmation_callback_t > dpp::cluster::co_stage_instance_create | ( | const stage_instance & | si | ) |

nodiscard

## ◆ co_stage_instance_delete() [1/2]

async< confirmation_callback_t > co_stage_instance_delete | ( | const snowflake | channel_id | ) |

nodiscard

Delete a stage instance.

See also
  dpp::cluster::stage_instance_delete
  https://discord.com/developers/docs/resources/stage-instance#delete-stage-instance

Parameters

  channel_id | ID of the associated channel

Returns
  confirmation returned object on completion

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

## ◆ co_stage_instance_delete() [2/2]

async< confirmation_callback_t > co_stage_instance_delete | ( | const snowflake | channel_id | ) |

nodiscard

Delete a stage instance.

See also
  dpp::cluster::stage_instance_delete
  https://discord.com/developers/docs/resources/stage-instance#delete-stage-instance

Parameters

  channel_id | ID of the associated channel

Returns
  confirmation returned object on completion

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

## ◆ co_stage_instance_edit()

async< confirmation_callback_t > dpp::cluster::co_stage_instance_edit | ( | const stage_instance & | si | ) |

nodiscard

## ◆ co_stage_instance_get() [1/2]

async< confirmation_callback_t > co_stage_instance_get | ( | const snowflake | channel_id | ) |

nodiscard

Get the stage instance associated with the channel id, if it exists.

See also
  dpp::cluster::stage_instance_get
  https://discord.com/developers/docs/resources/stage-instance#get-stage-instance

Parameters

  channel_id | ID of the associated channel

Returns
  stage_instance returned object on completion

## ◆ co_stage_instance_get() [2/2]

async< confirmation_callback_t > co_stage_instance_get | ( | const snowflake | channel_id | ) |

nodiscard

Get the stage instance associated with the channel id, if it exists.

See also
  dpp::cluster::stage_instance_get
  https://discord.com/developers/docs/resources/stage-instance#get-stage-instance

Parameters

  channel_id | ID of the associated channel

Returns
  stage_instance returned object on completion

## ◆ co_sticker_packs_get() [1/2]

async< confirmation_callback_t > co_sticker_packs_get | ( |  | ) |

nodiscard

Get a list of available sticker packs.

See also
  dpp::cluster::sticker_packs_get
  https://discord.com/developers/docs/resources/sticker#list-sticker-packs

Returns
  sticker_pack_map returned object on completion

## ◆ co_sticker_packs_get() [2/2]

async< confirmation_callback_t > co_sticker_packs_get | ( |  | ) |

nodiscard

Get a list of available sticker packs.

See also
  dpp::cluster::sticker_packs_get
  https://discord.com/developers/docs/resources/sticker#list-sticker-packs

Returns
  sticker_pack_map returned object on completion

## ◆ co_template_get() [1/2]

async< confirmation_callback_t > co_template_get | ( | const std::string & | code | ) |

nodiscard

Get a template.

See also
  dpp::cluster::template_get
  https://discord.com/developers/docs/resources/guild-template#get-guild-template

Parameters

  code | Template code

Returns
  dtemplate returned object on completion

## ◆ co_template_get() [2/2]

async< confirmation_callback_t > co_template_get | ( | const std::string & | code | ) |

nodiscard

Get a template.

See also
  dpp::cluster::template_get
  https://discord.com/developers/docs/resources/guild-template#get-guild-template

Parameters

  code | Template code

Returns
  dtemplate returned object on completion

## ◆ co_thread_create() [1/2]

async< confirmation_callback_t > co_thread_create | ( | const std::string & | thread_name,
|  | snowflake | channel_id,
|  | uint16_t | auto_archive_duration,
|  | channel_type | thread_type,
|  | bool | invitable,
|  | uint16_t | rate_limit_per_user )

nodiscard

Create a thread.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  dpp::cluster::thread_create
  https://discord.com/developers/docs/resources/channel#start-thread-without-message

Parameters

  thread_name | Name of the thread
  channel_id | Channel in which thread to create
  auto_archive_duration | Duration after which thread auto-archives. Can be set to - 60, 1440 (for boosted guilds can also be: 4320, 10080)
  thread_type | Type of thread - CHANNEL_PUBLIC_THREAD, CHANNEL_ANNOUNCEMENT_THREAD, CHANNEL_PRIVATE_THREAD
  invitable | whether non-moderators can add other non-moderators to a thread; only available when creating a private thread
  rate_limit_per_user | amount of seconds a user has to wait before sending another message (0-21600); bots, as well as users with the permission manage_messages, manage_thread, or manage_channel, are unaffected

Returns
  thread returned object on completion

## ◆ co_thread_create() [2/2]

async< confirmation_callback_t > co_thread_create | ( | const std::string & | thread_name,
|  | snowflake | channel_id,
|  | uint16_t | auto_archive_duration,
|  | channel_type | thread_type,
|  | bool | invitable,
|  | uint16_t | rate_limit_per_user )

nodiscard

Create a thread.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  dpp::cluster::thread_create
  https://discord.com/developers/docs/resources/channel#start-thread-without-message

Parameters

  thread_name | Name of the thread
  channel_id | Channel in which thread to create
  auto_archive_duration | Duration after which thread auto-archives. Can be set to - 60, 1440 (for boosted guilds can also be: 4320, 10080)
  thread_type | Type of thread - CHANNEL_PUBLIC_THREAD, CHANNEL_ANNOUNCEMENT_THREAD, CHANNEL_PRIVATE_THREAD
  invitable | whether non-moderators can add other non-moderators to a thread; only available when creating a private thread
  rate_limit_per_user | amount of seconds a user has to wait before sending another message (0-21600); bots, as well as users with the permission manage_messages, manage_thread, or manage_channel, are unaffected

Returns
  thread returned object on completion

## ◆ co_thread_create_in_forum() [1/2]

async< confirmation_callback_t > co_thread_create_in_forum | ( | const std::string & | thread_name,
|  | snowflake | channel_id,
|  | const message & | msg,
|  | auto_archive_duration_t | auto_archive_duration,
|  | uint16_t | rate_limit_per_user,
|  | std::vector< snowflake > | applied_tags = {} )

nodiscard

Create a thread in a forum or media channel.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  dpp::cluster::thread_create_in_forum
  https://discord.com/developers/docs/resources/channel#start-thread-in-forum-channel

Parameters

  thread_name | Name of the forum thread
  channel_id | Forum channel in which thread to create
  msg | The message to start the thread with
  auto_archive_duration | Duration to automatically archive the thread after recent activity
  rate_limit_per_user | amount of seconds a user has to wait before sending another message (0-21600); bots, as well as users with the permission manage_messages, manage_thread, or manage_channel, are unaffected
  applied_tags | List of IDs of forum tags (dpp::forum_tag) to apply to this thread

Returns
  thread returned object on completion

## ◆ co_thread_create_in_forum() [2/2]

async< confirmation_callback_t > co_thread_create_in_forum | ( | const std::string & | thread_name,
|  | snowflake | channel_id,
|  | const message & | msg,
|  | auto_archive_duration_t | auto_archive_duration,
|  | uint16_t | rate_limit_per_user,
|  | std::vector< snowflake > | applied_tags = {} )

nodiscard

Create a thread in a forum or media channel.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  dpp::cluster::thread_create_in_forum
  https://discord.com/developers/docs/resources/channel#start-thread-in-forum-channel

Parameters

  thread_name | Name of the forum thread
  channel_id | Forum channel in which thread to create
  msg | The message to start the thread with
  auto_archive_duration | Duration to automatically archive the thread after recent activity
  rate_limit_per_user | amount of seconds a user has to wait before sending another message (0-21600); bots, as well as users with the permission manage_messages, manage_thread, or manage_channel, are unaffected
  applied_tags | List of IDs of forum tags (dpp::forum_tag) to apply to this thread

Returns
  thread returned object on completion

## ◆ co_thread_create_with_message() [1/2]

async< confirmation_callback_t > co_thread_create_with_message | ( | const std::string & | thread_name,
|  | snowflake | channel_id,
|  | snowflake | message_id,
|  | uint16_t | auto_archive_duration,
|  | uint16_t | rate_limit_per_user )

nodiscard

Create a thread with a message (Discord: ID of a thread is same as message ID).

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  dpp::cluster::thread_create_with_message
  https://discord.com/developers/docs/resources/channel#start-thread-from-message

Parameters

  thread_name | Name of the thread
  channel_id | Channel in which thread to create
  message_id | message to start thread with
  auto_archive_duration | Duration after which thread auto-archives. Can be set to - 60, 1440 (for boosted guilds can also be: 4320, 10080)
  rate_limit_per_user | amount of seconds a user has to wait before sending another message (0-21600); bots, as well as users with the permission manage_messages, manage_thread, or manage_channel, are unaffected

Returns
  thread returned object on completion

## ◆ co_thread_create_with_message() [2/2]

async< confirmation_callback_t > co_thread_create_with_message | ( | const std::string & | thread_name,
|  | snowflake | channel_id,
|  | snowflake | message_id,
|  | uint16_t | auto_archive_duration,
|  | uint16_t | rate_limit_per_user )

nodiscard

Create a thread with a message (Discord: ID of a thread is same as message ID).

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  dpp::cluster::thread_create_with_message
  https://discord.com/developers/docs/resources/channel#start-thread-from-message

Parameters

  thread_name | Name of the thread
  channel_id | Channel in which thread to create
  message_id | message to start thread with
  auto_archive_duration | Duration after which thread auto-archives. Can be set to - 60, 1440 (for boosted guilds can also be: 4320, 10080)
  rate_limit_per_user | amount of seconds a user has to wait before sending another message (0-21600); bots, as well as users with the permission manage_messages, manage_thread, or manage_channel, are unaffected

Returns
  thread returned object on completion

## ◆ co_thread_edit() [1/2]

async< confirmation_callback_t > co_thread_edit | ( | const thread & | t | ) |

nodiscard

Edit a thread.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  dpp::cluster::thread_edit
  https://discord.com/developers/docs/topics/threads#editing-deleting-threads

Parameters

  t | Thread to edit

Returns
  thread returned object on completion

## ◆ co_thread_edit() [2/2]

async< confirmation_callback_t > co_thread_edit | ( | const thread & | t | ) |

nodiscard

Edit a thread.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  dpp::cluster::thread_edit
  https://discord.com/developers/docs/topics/threads#editing-deleting-threads

Parameters

  t | Thread to edit

Returns
  thread returned object on completion

## ◆ co_thread_get() [1/2]

async< confirmation_callback_t > co_thread_get | ( | snowflake | thread_id | ) |

nodiscard

Get the thread specified by thread_id. This uses the same call as dpp::cluster::channel_get but returns a thread object.

See also
  dpp::cluster::thread_get
  https://discord.com/developers/docs/resources/channel#get-channel

Parameters

  thread_id | The id of the thread to obtain.

Returns
  thread returned object on completion

## ◆ co_thread_get() [2/2]

async< confirmation_callback_t > co_thread_get | ( | snowflake | thread_id | ) |

nodiscard

Get the thread specified by thread_id. This uses the same call as dpp::cluster::channel_get but returns a thread object.

See also
  dpp::cluster::thread_get
  https://discord.com/developers/docs/resources/channel#get-channel

Parameters

  thread_id | The id of the thread to obtain.

Returns
  thread returned object on completion

## ◆ co_thread_member_add() [1/2]

async< confirmation_callback_t > co_thread_member_add | ( | snowflake | thread_id,
|  | snowflake | user_id )

nodiscard

Add a member to a thread.

See also
  dpp::cluster::thread_member_add
  https://discord.com/developers/docs/resources/channel#add-thread-member

Parameters

  thread_id | Thread ID to add to
  user_id | Member ID to add

Returns
  confirmation returned object on completion

## ◆ co_thread_member_add() [2/2]

async< confirmation_callback_t > co_thread_member_add | ( | snowflake | thread_id,
|  | snowflake | user_id )

nodiscard

Add a member to a thread.

See also
  dpp::cluster::thread_member_add
  https://discord.com/developers/docs/resources/channel#add-thread-member

Parameters

  thread_id | Thread ID to add to
  user_id | Member ID to add

Returns
  confirmation returned object on completion

## ◆ co_thread_member_get() [1/2]

async< confirmation_callback_t > co_thread_member_get | ( | const snowflake | thread_id,
|  | const snowflake | user_id )

nodiscard

Get a thread member.

See also
  dpp::cluster::thread_member_get
  https://discord.com/developers/docs/resources/channel#get-thread-member

Parameters

  thread_id | Thread to get member for
  user_id | ID of the user to get

Returns
  thread_member returned object on completion

## ◆ co_thread_member_get() [2/2]

async< confirmation_callback_t > co_thread_member_get | ( | const snowflake | thread_id,
|  | const snowflake | user_id )

nodiscard

Get a thread member.

See also
  dpp::cluster::thread_member_get
  https://discord.com/developers/docs/resources/channel#get-thread-member

Parameters

  thread_id | Thread to get member for
  user_id | ID of the user to get

Returns
  thread_member returned object on completion

## ◆ co_thread_member_remove() [1/2]

async< confirmation_callback_t > co_thread_member_remove | ( | snowflake | thread_id,
|  | snowflake | user_id )

nodiscard

Remove a member from a thread.

See also
  dpp::cluster::thread_member_remove
  https://discord.com/developers/docs/resources/channel#remove-thread-member

Parameters

  thread_id | Thread ID to remove from
  user_id | Member ID to remove

Returns
  confirmation returned object on completion

## ◆ co_thread_member_remove() [2/2]

async< confirmation_callback_t > co_thread_member_remove | ( | snowflake | thread_id,
|  | snowflake | user_id )

nodiscard

Remove a member from a thread.

See also
  dpp::cluster::thread_member_remove
  https://discord.com/developers/docs/resources/channel#remove-thread-member

Parameters

  thread_id | Thread ID to remove from
  user_id | Member ID to remove

Returns
  confirmation returned object on completion

## ◆ co_thread_members_get() [1/2]

async< confirmation_callback_t > co_thread_members_get | ( | snowflake | thread_id | ) |

nodiscard

Get members of a thread.

See also
  dpp::cluster::thread_members_get
  https://discord.com/developers/docs/resources/channel#list-thread-members

Parameters

  thread_id | Thread to get members for

Returns
  thread_member_map returned object on completion

## ◆ co_thread_members_get() [2/2]

async< confirmation_callback_t > co_thread_members_get | ( | snowflake | thread_id | ) |

nodiscard

Get members of a thread.

See also
  dpp::cluster::thread_members_get
  https://discord.com/developers/docs/resources/channel#list-thread-members

Parameters

  thread_id | Thread to get members for

Returns
  thread_member_map returned object on completion

## ◆ co_threads_get_active() [1/2]

async< confirmation_callback_t > co_threads_get_active | ( | snowflake | guild_id | ) |

nodiscard

Get all active threads in the guild, including public and private threads. Threads are ordered by their id, in descending order.

See also
  dpp::cluster::threads_get_active
  https://discord.com/developers/docs/resources/guild#list-active-guild-threads

Parameters

  guild_id | Guild to get active threads for

Returns
  active_threads returned object on completion

## ◆ co_threads_get_active() [2/2]

async< confirmation_callback_t > co_threads_get_active | ( | snowflake | guild_id | ) |

nodiscard

Get all active threads in the guild, including public and private threads. Threads are ordered by their id, in descending order.

See also
  dpp::cluster::threads_get_active
  https://discord.com/developers/docs/resources/guild#list-active-guild-threads

Parameters

  guild_id | Guild to get active threads for

Returns
  active_threads returned object on completion

## ◆ co_threads_get_joined_private_archived() [1/2]

async< confirmation_callback_t > co_threads_get_joined_private_archived | ( | snowflake | channel_id,
|  | snowflake | before_id,
|  | uint16_t | limit )

nodiscard

Get private archived threads in a channel which current user has joined (Sorted by ID in descending order).

See also
  dpp::cluster::threads_get_joined_private_archived
  https://discord.com/developers/docs/resources/channel#list-joined-private-archived-threads

Parameters

  channel_id | Channel to get public archived threads for
  before_id | Get threads before this id
  limit | Number of threads to get

Returns
  thread_map returned object on completion

## ◆ co_threads_get_joined_private_archived() [2/2]

async< confirmation_callback_t > co_threads_get_joined_private_archived | ( | snowflake | channel_id,
|  | snowflake | before_id,
|  | uint16_t | limit )

nodiscard

Get private archived threads in a channel which current user has joined (Sorted by ID in descending order).

See also
  dpp::cluster::threads_get_joined_private_archived
  https://discord.com/developers/docs/resources/channel#list-joined-private-archived-threads

Parameters

  channel_id | Channel to get public archived threads for
  before_id | Get threads before this id
  limit | Number of threads to get

Returns
  thread_map returned object on completion

## ◆ co_threads_get_private_archived() [1/2]

async< confirmation_callback_t > co_threads_get_private_archived | ( | snowflake | channel_id,
|  | time_t | before_timestamp,
|  | uint16_t | limit )

nodiscard

Get private archived threads in a channel (Sorted by archive_timestamp in descending order).

See also
  dpp::cluster::threads_get_private_archived
  https://discord.com/developers/docs/resources/channel#list-private-archived-threads

Parameters

  channel_id | Channel to get public archived threads for
  before_timestamp | Get threads archived before this timestamp
  limit | Number of threads to get

Returns
  thread_map returned object on completion

## ◆ co_threads_get_private_archived() [2/2]

async< confirmation_callback_t > co_threads_get_private_archived | ( | snowflake | channel_id,
|  | time_t | before_timestamp,
|  | uint16_t | limit )

nodiscard

Get private archived threads in a channel (Sorted by archive_timestamp in descending order).

See also
  dpp::cluster::threads_get_private_archived
  https://discord.com/developers/docs/resources/channel#list-private-archived-threads

Parameters

  channel_id | Channel to get public archived threads for
  before_timestamp | Get threads archived before this timestamp
  limit | Number of threads to get

Returns
  thread_map returned object on completion

## ◆ co_threads_get_public_archived() [1/2]

async< confirmation_callback_t > co_threads_get_public_archived | ( | snowflake | channel_id,
|  | time_t | before_timestamp,
|  | uint16_t | limit )

nodiscard

Get public archived threads in a channel (Sorted by archive_timestamp in descending order).

See also
  dpp::cluster::threads_get_public_archived
  https://discord.com/developers/docs/resources/channel#list-public-archived-threads

Parameters

  channel_id | Channel to get public archived threads for
  before_timestamp | Get threads archived before this timestamp
  limit | Number of threads to get

Returns
  thread_map returned object on completion

## ◆ co_threads_get_public_archived() [2/2]

async< confirmation_callback_t > co_threads_get_public_archived | ( | snowflake | channel_id,
|  | time_t | before_timestamp,
|  | uint16_t | limit )

nodiscard

Get public archived threads in a channel (Sorted by archive_timestamp in descending order).

See also
  dpp::cluster::threads_get_public_archived
  https://discord.com/developers/docs/resources/channel#list-public-archived-threads

Parameters

  channel_id | Channel to get public archived threads for
  before_timestamp | Get threads archived before this timestamp
  limit | Number of threads to get

Returns
  thread_map returned object on completion

## ◆ co_user_application_role_connection_get() [1/2]

async< confirmation_callback_t > co_user_application_role_connection_get | ( | snowflake | application_id | ) |

nodiscard

Get user application role connection.

See also
  dpp::cluster::user_application_role_connection_get
  https://discord.com/developers/docs/resources/user#get-user-application-role-connection

Parameters

  application_id | The application ID

Returns
  application_role_connection returned object on completion

## ◆ co_user_application_role_connection_get() [2/2]

async< confirmation_callback_t > co_user_application_role_connection_get | ( | snowflake | application_id | ) |

nodiscard

Get user application role connection.

See also
  dpp::cluster::user_application_role_connection_get
  https://discord.com/developers/docs/resources/user#get-user-application-role-connection

Parameters

  application_id | The application ID

Returns
  application_role_connection returned object on completion

## ◆ co_user_application_role_connection_update() [1/2]

async< confirmation_callback_t > co_user_application_role_connection_update | ( | snowflake | application_id,
|  | const application_role_connection & | connection )

nodiscard

Update user application role connection.

See also
  dpp::cluster::user_application_role_connection_update
  https://discord.com/developers/docs/resources/user#update-user-application-role-connection

Parameters

  application_id | The application ID
  connection | The application role connection to update

Returns
  application_role_connection returned object on completion

## ◆ co_user_application_role_connection_update() [2/2]

async< confirmation_callback_t > co_user_application_role_connection_update | ( | snowflake | application_id,
|  | const application_role_connection & | connection )

nodiscard

Update user application role connection.

See also
  dpp::cluster::user_application_role_connection_update
  https://discord.com/developers/docs/resources/user#update-user-application-role-connection

Parameters

  application_id | The application ID
  connection | The application role connection to update

Returns
  application_role_connection returned object on completion

## ◆ co_user_get() [1/2]

async< confirmation_callback_t > co_user_get | ( | snowflake | user_id | ) |

nodiscard

Get a user by id, without using the cache.

See also
  dpp::cluster::user_get
  https://discord.com/developers/docs/resources/user#get-user

Parameters

  user_id | User ID to retrieve

Returns
  user_identified returned object on completion

Note
  The user_identified object is a subclass of dpp::user which contains further details if you have the oauth2 identify or email scopes. If you do not have these scopes, these fields are empty. You can safely convert a user_identified to user with dynamic_cast.
  unless you want something special from dpp::user_identified or you've turned off caching, you have no need to call this. Call dpp::find_user instead that looks up the user in the cache rather than a REST call.

## ◆ co_user_get() [2/2]

async< confirmation_callback_t > co_user_get | ( | snowflake | user_id | ) |

nodiscard

Get a user by id, without using the cache.

See also
  dpp::cluster::user_get
  https://discord.com/developers/docs/resources/user#get-user

Parameters

  user_id | User ID to retrieve

Returns
  user_identified returned object on completion

Note
  The user_identified object is a subclass of dpp::user which contains further details if you have the oauth2 identify or email scopes. If you do not have these scopes, these fields are empty. You can safely convert a user_identified to user with dynamic_cast.
  unless you want something special from dpp::user_identified or you've turned off caching, you have no need to call this. Call dpp::find_user instead that looks up the user in the cache rather than a REST call.

## ◆ co_user_get_cached() [1/2]

async< confirmation_callback_t > co_user_get_cached | ( | snowflake | user_id | ) |

nodiscard

Get a user by id, checking in the cache first.

See also
  dpp::cluster::user_get_cached
  https://discord.com/developers/docs/resources/user#get-user

Parameters

  user_id | User ID to retrieve

Returns
  user_identified returned object on completion

Note
  The user_identified object is a subclass of dpp::user which contains further details if you have the oauth2 identify or email scopes. If you do not have these scopes, these fields are empty. You can safely convert a user_identified to user with dynamic_cast.
  If the user is found in the cache, special values set in dpp::user_identified will be undefined. This call should be used where you want to for example resolve a user who may no longer be in the bot's guilds, for something like a ban log message.

## ◆ co_user_get_cached() [2/2]

async< confirmation_callback_t > co_user_get_cached | ( | snowflake | user_id | ) |

nodiscard

Get a user by id, checking in the cache first.

See also
  dpp::cluster::user_get_cached
  https://discord.com/developers/docs/resources/user#get-user

Parameters

  user_id | User ID to retrieve

Returns
  user_identified returned object on completion

Note
  The user_identified object is a subclass of dpp::user which contains further details if you have the oauth2 identify or email scopes. If you do not have these scopes, these fields are empty. You can safely convert a user_identified to user with dynamic_cast.
  If the user is found in the cache, special values set in dpp::user_identified will be undefined. This call should be used where you want to for example resolve a user who may no longer be in the bot's guilds, for something like a ban log message.

## ◆ co_user_get_voice_state() [1/2]

async< confirmation_callback_t > co_user_get_voice_state | ( | snowflake | guild_id,
|  | snowflake | user_id )

nodiscard

Get a user's voice state in a guild without a Gateway connection.

See also
  dpp::cluster::user_get_voice_state
  https://discord.com/developers/docs/resources/voice#get-user-voice-state

Parameters

  guild_id | Guild to get the voice state for
  user_id | The user to get the voice state of

Returns
  voicestate returned object on completion

## ◆ co_user_get_voice_state() [2/2]

async< confirmation_callback_t > co_user_get_voice_state | ( | snowflake | guild_id,
|  | snowflake | user_id )

nodiscard

Get a user's voice state in a guild without a Gateway connection.

See also
  dpp::cluster::user_get_voice_state
  https://discord.com/developers/docs/resources/voice#get-user-voice-state

Parameters

  guild_id | Guild to get the voice state for
  user_id | The user to get the voice state of

Returns
  voicestate returned object on completion

## ◆ co_user_set_voice_state() [1/2]

async< confirmation_callback_t > co_user_set_voice_state | ( | snowflake | user_id,
|  | snowflake | guild_id,
|  | snowflake | channel_id,
|  | bool | suppress = false )

nodiscard

Set a user's voice state on a stage channel.

Caveats

There are currently several caveats for this endpoint:

- channel_id must currently point to a stage channel.
- User must already have joined channel_id.
- You must have the MUTE_MEMBERS permission. (Since suppression is the only thing that is available currently)
- When unsuppressed, non-bot users will have their request_to_speak_timestamp set to the current time. Bot users will not.
- When suppressed, the user will have their request_to_speak_timestamp removed.

See also
  dpp::cluster::user_set_voice_state
  https://discord.com/developers/docs/resources/guild#modify-user-voice-state

Parameters

  user_id | The user to set the voice state of
  guild_id | Guild to set voice state on
  channel_id | Stage channel to set voice state on

Returns
  confirmation returned object on completion

Parameters

  suppress | True if the user's audio should be suppressed, false if it should not

## ◆ co_user_set_voice_state() [2/2]

async< confirmation_callback_t > co_user_set_voice_state | ( | snowflake | user_id,
|  | snowflake | guild_id,
|  | snowflake | channel_id,
|  | bool | suppress = false )

nodiscard

Set a user's voice state on a stage channel.

Caveats

There are currently several caveats for this endpoint:

- channel_id must currently point to a stage channel.
- User must already have joined channel_id.
- You must have the MUTE_MEMBERS permission. (Since suppression is the only thing that is available currently)
- When unsuppressed, non-bot users will have their request_to_speak_timestamp set to the current time. Bot users will not.
- When suppressed, the user will have their request_to_speak_timestamp removed.

See also
  dpp::cluster::user_set_voice_state
  https://discord.com/developers/docs/resources/guild#modify-user-voice-state

Parameters

  user_id | The user to set the voice state of
  guild_id | Guild to set voice state on
  channel_id | Stage channel to set voice state on

Returns
  confirmation returned object on completion

Parameters

  suppress | True if the user's audio should be suppressed, false if it should not

## ◆ create_dm_channel()

void dpp::cluster::create_dm_channel | ( | snowflake | user_id,
|  | command_completion_event_t | callback = utility::log_error() )

Create a dm channel.

See also
  https://discord.com/developers/docs/resources/user#create-dm

Parameters

  user_id | User ID to create DM channel with
  callback | Function to call when the API call completes. On success the callback will contain a dpp::channel object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ create_webhook()

void dpp::cluster::create_webhook | ( | const class webhook & | w,
|  | command_completion_event_t | callback = utility::log_error() )

Create a webhook.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  https://discord.com/developers/docs/resources/webhook#create-webhook

Parameters

  w | Webhook to create
  callback | Function to call when the API call completes. On success the callback will contain a dpp::webhook object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ current_application_get()

void dpp::cluster::current_application_get | ( | command_completion_event_t | callback | ) |

Get current (bot) application.

See also
  https://discord.com/developers/docs/topics/oauth2#get-current-bot-application-information

Parameters

  callback | Function to call when the API call completes. On success the callback will contain a dpp::application object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ current_user_connections_get()

void dpp::cluster::current_user_connections_get | ( | command_completion_event_t | callback | ) |

Get current user's connections (linked accounts, e.g. steam, xbox). This call requires the oauth2 connections scope and cannot be executed against a bot token.

See also
  https://discord.com/developers/docs/resources/user#get-user-connections

Parameters

  callback | Function to call when the API call completes. On success the callback will contain a dpp::connection_map object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ current_user_edit()

void dpp::cluster::current_user_edit | ( | const std::string & | nickname,
|  | const std::string & | avatar_blob = "",
|  | const image_type | avatar_type = i_png,
|  | const std::string & | banner_blob = "",
|  | const image_type | banner_type = i_png,
|  | command_completion_event_t | callback = utility::log_error() )

Edit current (bot) user.

Modify the requester's user account settings. Returns a dpp::user object on success. Fires a User Update Gateway event.

Note
  There appears to be no limit to the image size, however, if your image cannot be processed/uploaded in time, you will receive a malformed http request.

See also
  https://discord.com/developers/docs/resources/user#modify-current-user

Parameters

  nickname | Nickname to set
  avatar_blob | Avatar data to upload
  avatar_type | Type of image for avatar. It can be one of i_gif, i_jpg or i_png.
  banner_blob | Banner data to upload
  banner_type | Type of image for Banner. It can be one of i_gif, i_jpg or i_png.
  callback | Function to call when the API call completes. On success the callback will contain a dpp::user object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

Exceptions

  dpp::length_exception | Image data is larger than the maximum size of 256 kilobytes

## ◆ current_user_get()

void dpp::cluster::current_user_get | ( | command_completion_event_t | callback | ) |

Get current (bot) user.

See also
  https://discord.com/developers/docs/resources/user#get-current-user

Parameters

  callback | Function to call when the API call completes. On success the callback will contain a dpp::user_identified object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

Note
  The user_identified object is a subclass of dpp::user which contains further details if you have the oauth2 identify or email scopes. If you do not have these scopes, these fields are empty. You can safely convert a user_identified to user with dynamic_cast.

## ◆ current_user_get_dms()

void dpp::cluster::current_user_get_dms | ( | command_completion_event_t | callback | ) |

Get current user DM channels.

Parameters

  callback | Function to call when the API call completes. On success the callback will contain a dpp::channel_map object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ current_user_get_guilds()

void dpp::cluster::current_user_get_guilds | ( | command_completion_event_t | callback | ) |

Get current (bot) user guilds.

See also
  https://discord.com/developers/docs/resources/user#get-current-user-guilds

Parameters

  callback | Function to call when the API call completes. On success the callback will contain a dpp::guild_map object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ current_user_get_voice_state()

void dpp::cluster::current_user_get_voice_state | ( | snowflake | guild_id,
|  | command_completion_event_t | callback )

Get the bot's voice state in a guild without a Gateway connection.

See also
  https://discord.com/developers/docs/resources/voice#get-current-user-voice-state

Parameters

  guild_id | Guild to get the voice state for
  callback | Function to call when the API call completes. On success the callback will contain a dpp::voicestate object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ current_user_join_thread()

void dpp::cluster::current_user_join_thread | ( | snowflake | thread_id,
|  | command_completion_event_t | callback = utility::log_error() )

Join a thread.

See also
  https://discord.com/developers/docs/resources/channel#join-thread

Parameters

  thread_id | Thread ID to join
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ current_user_leave_guild()

void dpp::cluster::current_user_leave_guild | ( | snowflake | guild_id,
|  | command_completion_event_t | callback = utility::log_error() )

Leave a guild.

See also
  https://discord.com/developers/docs/resources/user#leave-guild

Parameters

  guild_id | Guild ID to leave
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ current_user_leave_thread()

void dpp::cluster::current_user_leave_thread | ( | snowflake | thread_id,
|  | command_completion_event_t | callback = utility::log_error() )

Leave a thread.

See also
  https://discord.com/developers/docs/resources/channel#leave-thread

Parameters

  thread_id | Thread ID to leave
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ current_user_set_voice_state()

void dpp::cluster::current_user_set_voice_state | ( | snowflake | guild_id,
|  | snowflake | channel_id,
|  | bool | suppress = false,
|  | time_t | request_to_speak_timestamp = 0,
|  | command_completion_event_t | callback = utility::log_error() )

Set the bot's voice state on a stage channel.

Caveats

There are currently several caveats for this endpoint:

- channel_id must currently point to a stage channel.
- current user must already have joined channel_id.
- You must have the MUTE_MEMBERS permission to unsuppress yourself. You can always suppress yourself.
- You must have the REQUEST_TO_SPEAK permission to request to speak. You can always clear your own request to speak.
- You are able to set request_to_speak_timestamp to any present or future time.

See also
  https://discord.com/developers/docs/resources/guild#modify-current-user-voice-state

Parameters

  guild_id | Guild to set voice state on
  channel_id | Stage channel to set voice state on
  callback | Function to call when the API call completes.
  suppress | True if the user's audio should be suppressed, false if it should not

  request_to_speak_timestamp

  The time at which we requested to speak, or 0 to clear the request. The time set here must be the current time or in the future. On success the callback will contain a dpp::scheduled_event object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

Exceptions

  std::logic_exception | You attempted to set a request_to_speak_timestamp in the past which is not the value of 0.

## ◆ delete_webhook()

void dpp::cluster::delete_webhook | ( | snowflake | webhook_id,
|  | command_completion_event_t | callback = utility::log_error() )

Delete a webhook.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  https://discord.com/developers/docs/resources/webhook#delete-webhook

Parameters

  webhook_id | Webhook ID to delete
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ delete_webhook_message()

void dpp::cluster::delete_webhook_message | ( | const class webhook & | wh,
|  | snowflake | message_id,
|  | snowflake | thread_id = 0,
|  | command_completion_event_t | callback = utility::log_error() )

Delete webhook message.

See also
  https://discord.com/developers/docs/resources/webhook#delete-webhook-message

Parameters

  wh | Webhook to delete message for
  message_id | Message ID to delete
  thread_id | ID of the thread the message is in
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ delete_webhook_with_token()

void dpp::cluster::delete_webhook_with_token | ( | snowflake | webhook_id,
|  | const std::string & | token,
|  | command_completion_event_t | callback = utility::log_error() )

Delete webhook with token.

See also
  https://discord.com/developers/docs/resources/webhook#delete-webhook-with-token

Parameters

  webhook_id | Webhook ID to delete
  token | Token of webhook to delete
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ direct_message_create()

void dpp::cluster::direct_message_create | ( | snowflake | user_id,
|  | const message & | m,
|  | command_completion_event_t | callback = utility::log_error() )

Create a direct message, also create the channel for the direct message if needed.

See also
  https://discord.com/developers/docs/resources/user#create-dm
  https://discord.com/developers/docs/resources/channel#create-message

Parameters

  user_id | User ID of user to send message to
  m | Message object
  callback | Function to call when the API call completes. On success the callback will contain a dpp::message object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ edit_webhook()

void dpp::cluster::edit_webhook | ( | const class webhook & | wh,
|  | command_completion_event_t | callback = utility::log_error() )

Edit webhook.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  https://discord.com/developers/docs/resources/webhook#modify-webhook

Parameters

  wh | Webhook to edit
  callback | Function to call when the API call completes. On success the callback will contain a dpp::webhook object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ edit_webhook_message()

void dpp::cluster::edit_webhook_message | ( | const class webhook & | wh,
|  | const struct message & | m,
|  | snowflake | thread_id = 0,
|  | command_completion_event_t | callback = utility::log_error() )

Edit webhook message.

When the content field is edited, the mentions array in the message object will be reconstructed from scratch based on the new content. The allowed_mentions field of the edit request controls how this happens. If there is no explicit allowed_mentions in the edit request, the content will be parsed with default allowances, that is, without regard to whether or not an allowed_mentions was present in the request that originally created the message.

See also
  https://discord.com/developers/docs/resources/webhook#edit-webhook-message

Note
  the attachments array must contain all attachments that should be present after edit, including retained and new attachments provided in the request body.

Parameters

  wh | Webhook to edit message for
  m | New message
  thread_id | ID of the thread the message is in
  callback | Function to call when the API call completes. On success the callback will contain a dpp::message object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ edit_webhook_with_token()

void dpp::cluster::edit_webhook_with_token | ( | const class webhook & | wh,
|  | command_completion_event_t | callback = utility::log_error() )

Edit webhook with token (token is encapsulated in the webhook object).

See also
  https://discord.com/developers/docs/resources/webhook#modify-webhook-with-token

Parameters

  wh | Webhook to edit (should include token)
  callback | Function to call when the API call completes. On success the callback will contain a dpp::webhook object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ enable_webhook_server()

cluster & dpp::cluster::enable_webhook_server | ( | const std::string & | discord_public_key,
|  | const std::string_view | address,
|  | uint16_t | port,
|  | const std::string & | ssl_private_key = "",
|  | const std::string & | ssl_public_key = "" )

Create a webhook server for receiving interactions.

Note
  This should be considered mutually exclusive with delivery of interaction events via shards.

Parameters

  discord_public_key | Public key for the application from the application dashboard page
  address | address to bind to, use "0.0.0.0" to bind to all local addresses
  port | port to bind to. You should generally use a port > 1024.
  ssl_private_key | Private key PEM file for HTTPS/SSL. If empty, a plaintext server is created
  ssl_public_key | Public key PEM file for HTTPS/SSL. If empty, a plaintext server is created

## ◆ entitlement_consume()

void dpp::cluster::entitlement_consume | ( | snowflake | entitlement_id,
|  | command_completion_event_t | callback = utility::log_error() )

For One-Time Purchase consumable SKUs, marks a given entitlement for the user as consumed.

See also
  https://discord.com/developers/docs/monetization/entitlements#consume-an-entitlement

Parameters

  entitlement_id | The entitlement to mark as consumed.
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ entitlement_test_create()

void dpp::cluster::entitlement_test_create | ( | const class entitlement & | new_entitlement,
|  | command_completion_event_t | callback = utility::log_error() )

Creates a test entitlement to a given SKU for a given guild or user. Discord will act as though that user or guild has entitlement to your premium offering.

See also
  https://discord.com/developers/docs/monetization/entitlements#create-test-entitlement

Parameters

  new_entitlement | The entitlement to create. Make sure your dpp::entitlement_type (inside your dpp::entitlement object) matches the type of the owner_id (if type is guild, owner_id is a guild id), otherwise it won't work!
  callback | Function to call when the API call completes. On success the callback will contain a dpp::entitlement object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ entitlement_test_delete()

void dpp::cluster::entitlement_test_delete | ( | snowflake | entitlement_id,
|  | command_completion_event_t | callback = utility::log_error() )

Deletes a currently-active test entitlement. Discord will act as though that user or guild no longer has entitlement to your premium offering.

See also
  https://discord.com/developers/docs/monetization/entitlements#delete-test-entitlement

Parameters

  entitlement_id | The test entitlement to delete.
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ entitlements_get()

void dpp::cluster::entitlements_get | ( | snowflake | user_id = 0,
|  | const std::vector< snowflake > & | sku_ids = {},
|  | snowflake | before_id = 0,
|  | snowflake | after_id = 0,
|  | uint8_t | limit = 100,
|  | snowflake | guild_id = 0,
|  | bool | exclude_ended = false,
|  | command_completion_event_t | callback = utility::log_error() )

Returns all entitlements for a given app, active and expired.

See also
  https://discord.com/developers/docs/monetization/entitlements#list-entitlements

Parameters

  user_id | User ID to look up entitlements for.
  sku_ids | List of SKU IDs to check entitlements for.
  before_id | Retrieve entitlements before this entitlement ID.
  after_id | Retrieve entitlements after this entitlement ID.
  limit | Number of entitlements to return, 1-100 (default 100).
  guild_id | Guild ID to look up entitlements for.
  exclude_ended | Whether ended entitlements should be excluded from the search.
  callback | Function to call when the API call completes. On success the callback will contain a dpp::emoji_map object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ execute_webhook()

void dpp::cluster::execute_webhook | ( | const class webhook & | wh,
|  | const struct message & | m,
|  | bool | wait = false,
|  | snowflake | thread_id = 0,
|  | const std::string & | thread_name = "",
|  | command_completion_event_t | callback = utility::log_error() )

Execute webhook.

See also
  https://discord.com/developers/docs/resources/webhook#execute-webhook

Parameters

  wh | Webhook to execute
  m | Message to send
  wait | waits for server confirmation of message send before response, and returns the created message body
  thread_id | Send a message to the specified thread within a webhook's channel. The thread will automatically be unarchived
  thread_name | Name of thread to create (requires the webhook channel to be a forum channel)
  callback | Function to call when the API call completes.

Note
  If the webhook channel is a forum channel, you must provide either thread_id or thread_name. If thread_id is provided, the message will send in that thread. If thread_name is provided, a thread with that name will be created in the forum channel. On success the callback will contain a dpp::message object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ gdm_add()

void dpp::cluster::gdm_add | ( | snowflake | channel_id,
|  | snowflake | user_id,
|  | const std::string & | access_token,
|  | const std::string & | nick,
|  | command_completion_event_t | callback = utility::log_error() )

Adds a recipient to a Group DM using their access token.

See also
  https://discord.com/developers/docs/resources/channel#group-dm-add-recipient

Parameters

  channel_id | Channel id to add group DM recipients to
  user_id | User ID to add
  access_token | Access token from OAuth2
  nick | Nickname of user to apply to the chat
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ gdm_remove()

void dpp::cluster::gdm_remove | ( | snowflake | channel_id,
|  | snowflake | user_id,
|  | command_completion_event_t | callback = utility::log_error() )

Removes a recipient from a Group DM.

See also
  https://discord.com/developers/docs/resources/channel#group-dm-remove-recipient

Parameters

  channel_id | Channel ID of group DM
  user_id | User ID to remove from group DM
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ get_audit_reason()

std::string dpp::cluster::get_audit_reason | ( |  | ) |

Get the audit reason set for the next REST call to be made on this thread. This is set per-thread, so you must ensure that if you call this method, your request that is associated with the reason happens on the same thread where you set the reason. Once the next call is made, the audit log reason is cleared for this thread automatically.

Note
  This method call clears the audit reason when it returns it.

Returns
  std::string The audit reason to be used.

## ◆ get_channel_webhooks()

void dpp::cluster::get_channel_webhooks | ( | snowflake | channel_id,
|  | command_completion_event_t | callback )

Get channel webhooks.

See also
  https://discord.com/developers/docs/resources/webhook#get-guild-webhooks

Parameters

  channel_id | Channel ID to get webhooks for
  callback | Function to call when the API call completes. On success the callback will contain a dpp::webhook_map object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ get_dm_channel()

snowflake dpp::cluster::get_dm_channel | ( | snowflake | user_id | ) |

Get the dm channel for a user id.

Parameters

  user_id | the user id to get the dm channel for

Returns
  Returns 0 on failure

## ◆ get_gateway_bot()

void dpp::cluster::get_gateway_bot | ( | command_completion_event_t | callback | ) |

Get the gateway information for the bot using the token.

See also
  https://discord.com/developers/docs/topics/gateway#get-gateway-bot

Parameters

  callback | Function to call when the API call completes. On success the callback will contain a dpp::gateway object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ get_guild_webhooks()

void dpp::cluster::get_guild_webhooks | ( | snowflake | guild_id,
|  | command_completion_event_t | callback )

Get guild webhooks.

See also
  https://discord.com/developers/docs/resources/webhook#get-guild-webhooks

Parameters

  guild_id | Guild ID to get webhooks for
  callback | Function to call when the API call completes. On success the callback will contain a dpp::webhook_map object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ get_raw_rest()

request_queue * dpp::cluster::get_raw_rest | ( |  | ) |

Get the raw rest_queue object which handles all HTTP(S) requests that are not directed at Discord.

Returns
  request_queue* pointer to request_queue object

## ◆ get_rest()

request_queue * dpp::cluster::get_rest | ( |  | ) |

Get the rest_queue object which handles HTTPS requests to Discord.

Returns
  request_queue* pointer to request_queue object

## ◆ get_shard()

discord_client * dpp::cluster::get_shard | ( | uint32_t | id | ) | const

Get a shard by id, returning the discord_client.

Parameters

  id | Shard ID

Returns
  discord_client* shard, or null

## ◆ get_shards()

shard_list dpp::cluster::get_shards | ( |  | ) | const

Get the list of shards.

Returns
  shard_list map of shards for this cluster

## ◆ get_voice_regions()

void dpp::cluster::get_voice_regions | ( | command_completion_event_t | callback | ) |

Get all voice regions.

See also
  https://discord.com/developers/docs/resources/voice#list-voice-regions

Parameters

  callback | Function to call when the API call completes. On success the callback will contain a dpp::voiceregion_map object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ get_webhook()

void dpp::cluster::get_webhook | ( | snowflake | webhook_id,
|  | command_completion_event_t | callback )

Get webhook.

See also
  https://discord.com/developers/docs/resources/webhook#get-webhook

Parameters

  webhook_id | Webhook ID to get
  callback | Function to call when the API call completes. On success the callback will contain a dpp::webhook object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ get_webhook_message()

void dpp::cluster::get_webhook_message | ( | const class webhook & | wh,
|  | snowflake | message_id,
|  | snowflake | thread_id = 0,
|  | command_completion_event_t | callback = utility::log_error() )

Get webhook message.

See also
  https://discord.com/developers/docs/resources/webhook#get-webhook-message

Parameters

  wh | Webhook to get the original message for
  message_id | The message ID
  thread_id | ID of the thread the message is in
  callback | Function to call when the API call completes. On success the callback will contain a dpp::message object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ get_webhook_with_token()

void dpp::cluster::get_webhook_with_token | ( | snowflake | webhook_id,
|  | const std::string & | token,
|  | command_completion_event_t | callback )

Get webhook using token.

See also
  https://discord.com/developers/docs/resources/webhook#get-webhook-with-token

Parameters

  webhook_id | Webhook ID to retrieve
  token | Token of webhook
  callback | Function to call when the API call completes. On success the callback will contain a dpp::webhook object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ global_bulk_command_create()

void dpp::cluster::global_bulk_command_create | ( | const std::vector< slashcommand > & | commands,
|  | command_completion_event_t | callback = utility::log_error() )

Create/overwrite global slash commands. Any existing global slash commands will be deleted and replaced with these.

See also
  https://discord.com/developers/docs/interactions/application-commands#bulk-overwrite-global-application-commands

Parameters

  commands | Vector of slash commands to create/update. overwriting existing commands that are registered globally for this application. Commands that do not already exist will count toward daily application command create limits.
  callback | Function to call when the API call completes. On success the callback will contain a dpp::slashcommand_map object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ global_bulk_command_delete()

void dpp::cluster::global_bulk_command_delete | ( | command_completion_event_t | callback = utility::log_error() | ) |

Delete all existing global slash commands.

See also
  https://discord.com/developers/docs/interactions/application-commands#bulk-overwrite-global-application-commands

Parameters

  callback | Function to call when the API call completes. On success the callback will contain a dpp::slashcommand_map object in confirmation_callback_t::value which will be empty, meaning there are no commands. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ global_command_create()

void dpp::cluster::global_command_create | ( | const slashcommand & | s,
|  | command_completion_event_t | callback = utility::log_error() )

Create a global slash command (a bot can have a maximum of 100 of these).

See also
  https://discord.com/developers/docs/interactions/application-commands#create-global-application-command

Parameters

  s | Slash command to create
  callback | Function to call when the API call completes. On success the callback will contain a dpp::slashcommand object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ global_command_delete()

void dpp::cluster::global_command_delete | ( | snowflake | id,
|  | command_completion_event_t | callback = utility::log_error() )

Delete a global slash command (a bot can have a maximum of 100 of these).

See also
  https://discord.com/developers/docs/interactions/application-commands#delete-global-application-command

Parameters

  id | Slash command to delete
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ global_command_edit()

void dpp::cluster::global_command_edit | ( | const slashcommand & | s,
|  | command_completion_event_t | callback = utility::log_error() )

Edit a global slash command (a bot can have a maximum of 100 of these).

See also
  https://discord.com/developers/docs/interactions/application-commands#edit-global-application-command

Parameters

  s | Slash command to change
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ global_command_get()

void dpp::cluster::global_command_get | ( | snowflake | id,
|  | command_completion_event_t | callback = utility::log_error() )

Get a global slash command.

See also
  https://discord.com/developers/docs/interactions/application-commands#get-global-application-command

Parameters

  id | The ID of the slash command
  callback | Function to call when the API call completes. On success the callback will contain a dpp::slashcommand object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ global_commands_get()

void dpp::cluster::global_commands_get | ( | command_completion_event_t | callback | ) |

Get the application's global slash commands.

See also
  https://discord.com/developers/docs/interactions/application-commands#get-global-application-commands

Parameters

  callback | Function to call when the API call completes. On success the callback will contain a dpp::slashcommand_map object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_add_member()

void dpp::cluster::guild_add_member | ( | const guild_member & | gm,
|  | const std::string & | access_token,
|  | command_completion_event_t | callback = utility::log_error() )

Add guild member. Needs a specific oauth2 scope, from which you get the access_token.

Adds a user to the guild, provided you have a valid oauth2 access token for the user with the guilds.join scope. Returns the guild_member, which is defaulted if the user is already a member of the guild. Fires a Guild Member Add Gateway event.

For guilds with Membership Screening enabled, this endpoint will default to adding new members as pending in the guild member object. Members that are pending will have to complete membership screening before they become full members that can talk.

Note
  All parameters to this endpoint except for access_token are optional. The bot must be a member of the guild with CREATE_INSTANT_INVITE permission.

See also
  https://discord.com/developers/docs/resources/guild#add-guild-member

Parameters

  gm | Guild member to add
  access_token | Access token from Oauth2 scope
  callback | Function to call when the API call completes. On success the callback will contain a dpp::guild_member object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_auditlog_get()

void dpp::cluster::guild_auditlog_get | ( | snowflake | guild_id,
|  | snowflake | user_id,
|  | uint32_t | action_type,
|  | snowflake | before,
|  | snowflake | after,
|  | uint32_t | limit,
|  | command_completion_event_t | callback )

Get the audit log for a guild.

See also
  https://discord.com/developers/docs/resources/audit-log#get-guild-audit-log

Parameters

  guild_id | Guild to get the audit log of
  user_id | Entries from a specific user ID. Set this to 0 will fetch any user
  action_type | Entries for a specific dpp::audit_type. Set this to 0 will fetch any type
  before | Entries with ID less than a specific audit log entry ID. Used for paginating
  after | Entries with ID greater than a specific audit log entry ID. Used for paginating
  limit | Maximum number of entries (between 1-100) to return
  callback | Function to call when the API call completes. On success the callback will contain a dpp::auditlog object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_ban_add()

void dpp::cluster::guild_ban_add | ( | snowflake | guild_id,
|  | snowflake | user_id,
|  | uint32_t | delete_message_seconds = 0,
|  | command_completion_event_t | callback = utility::log_error() )

Add guild ban.

Create a guild ban, and optionally delete previous messages sent by the banned user. Requires the BAN_MEMBERS permission. Fires a Guild Ban Add Gateway event.

See also
  https://discord.com/developers/docs/resources/guild#create-guild-ban

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  guild_id | Guild ID to add ban to
  user_id | User ID to ban
  delete_message_seconds | How many seconds to delete messages for, between 0 and 604800 (7 days). Defaults to 0
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_ban_delete()

void dpp::cluster::guild_ban_delete | ( | snowflake | guild_id,
|  | snowflake | user_id,
|  | command_completion_event_t | callback = utility::log_error() )

Delete guild ban.

Remove the ban for a user. Requires the BAN_MEMBERS permissions. Fires a Guild Ban Remove Gateway event.

See also
  https://discord.com/developers/docs/resources/guild#remove-guild-ban

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  guild_id | Guild to delete ban from
  user_id | User ID to delete ban for
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_begin_prune()

void dpp::cluster::guild_begin_prune | ( | snowflake | guild_id,
|  | const struct prune & | pruneinfo,
|  | command_completion_event_t | callback = utility::log_error() )

Begin guild prune.

Begin a prune operation. Requires the KICK_MEMBERS permission. Returns a prune object indicating the number of members that were removed in the prune operation. For large guilds it's recommended to set the compute_prune_count option to false, forcing 'pruned' to 0. Fires multiple Guild Member Remove Gateway events. By default, prune will not remove users with roles. You can optionally include specific roles in your prune by providing the include_roles parameter. Any inactive user that has a subset of the provided role(s) will be included in the prune and users with additional roles will not.

See also
  https://discord.com/developers/docs/resources/guild#begin-guild-prune

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  guild_id | Guild ID to prune
  pruneinfo | Pruning info
  callback | Function to call when the API call completes. On success the callback will contain a dpp::prune object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_bulk_command_create()

void dpp::cluster::guild_bulk_command_create | ( | const std::vector< slashcommand > & | commands,
|  | snowflake | guild_id,
|  | command_completion_event_t | callback = utility::log_error() )

Create/overwrite guild slash commands. Any existing guild slash commands on this guild will be deleted and replaced with these.

See also
  https://discord.com/developers/docs/interactions/application-commands#bulk-overwrite-guild-application-commands

Parameters

  commands | Vector of slash commands to create/update. New guild commands will be available in the guild immediately. If the command did not already exist, it will count toward daily application command create limits.
  guild_id | Guild ID to create/update the slash commands in
  callback | Function to call when the API call completes. On success the callback will contain a dpp::slashcommand_map object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_bulk_command_delete()

void dpp::cluster::guild_bulk_command_delete | ( | snowflake | guild_id,
|  | command_completion_event_t | callback = utility::log_error() )

Delete all existing guild slash commands.

See also
  https://discord.com/developers/docs/interactions/application-commands#bulk-overwrite-global-application-commands

Parameters

  guild_id | Guild ID to delete the slash commands in.
  callback | Function to call when the API call completes. On success the callback will contain a dpp::slashcommand_map object in confirmation_callback_t::value which will be empty, meaning there are no commands. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_bulk_command_edit_permissions()

void dpp::cluster::guild_bulk_command_edit_permissions | ( | const std::vector< slashcommand > & | commands,
|  | snowflake | guild_id,
|  | command_completion_event_t | callback = utility::log_error() )

Edit/Overwrite the permissions of all existing slash commands in a guild.

Note
  You can only add up to 10 permission overwrites for a command

See also
  https://discord.com/developers/docs/interactions/application-commands#batch-edit-application-command-permissions

Warning
  The endpoint will overwrite all existing permissions for all commands of the application in a guild, including slash commands, user commands, and message commands. Meaning that if you forgot to pass a slash command, the permissions of it might be removed.

Parameters

  commands | A vector of slash commands to edit/overwrite the permissions for
  guild_id | Guild ID to edit permissions of the slash commands in
  callback | Function to call when the API call completes. On success the callback will contain a dpp::guild_command_permissions_map object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

Deprecated
  This has been disabled with updates to Permissions v2. You can use guild_command_edit_permissions instead

## ◆ guild_command_create()

void dpp::cluster::guild_command_create | ( | const slashcommand & | s,
|  | snowflake | guild_id,
|  | command_completion_event_t | callback = utility::log_error() )

Create a slash command local to a guild.

See also
  https://discord.com/developers/docs/interactions/application-commands#create-guild-application-command

Note
  Creating a command with the same name as an existing command for your application will overwrite the old command.

Parameters

  s | Slash command to create
  guild_id | Guild ID to create the slash command in
  callback | Function to call when the API call completes. On success the callback will contain a dpp::slashcommand object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_command_delete()

void dpp::cluster::guild_command_delete | ( | snowflake | id,
|  | snowflake | guild_id,
|  | command_completion_event_t | callback = utility::log_error() )

Delete a slash command local to a guild.

See also
  https://discord.com/developers/docs/interactions/application-commands#delete-guild-application-command

Parameters

  id | Slash command to delete
  guild_id | Guild ID to delete the slash command in
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_command_edit()

void dpp::cluster::guild_command_edit | ( | const slashcommand & | s,
|  | snowflake | guild_id,
|  | command_completion_event_t | callback = utility::log_error() )

Edit a slash command local to a guild.

See also
  https://discord.com/developers/docs/interactions/application-commands#edit-guild-application-command

Parameters

  s | Slash command to edit
  guild_id | Guild ID to edit the slash command in
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_command_edit_permissions()

void dpp::cluster::guild_command_edit_permissions | ( | const slashcommand & | s,
|  | snowflake | guild_id,
|  | command_completion_event_t | callback = utility::log_error() )

Edit slash command permissions of a guild.

See also
  https://discord.com/developers/docs/interactions/application-commands#edit-application-command-permissions

Note
  You can only add up to 10 permission overwrites for a command

Parameters

  s | Slash command to edit the permissions for
  guild_id | Guild ID to edit the slash command in
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_command_get()

void dpp::cluster::guild_command_get | ( | snowflake | id,
|  | snowflake | guild_id,
|  | command_completion_event_t | callback = utility::log_error() )

Get a slash command of a guild.

See also
  https://discord.com/developers/docs/interactions/application-commands#get-guild-application-command

Note
  The returned slash commands will not have permissions set, you need to use a permissions getter e.g. dpp::guild_commands_get_permissions to get the guild command permissions

Parameters

  id | The ID of the slash command
  guild_id | Guild ID to get the slash command from
  callback | Function to call when the API call completes. On success the callback will contain a dpp::slashcommand object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_command_get_permissions()

void dpp::cluster::guild_command_get_permissions | ( | snowflake | id,
|  | snowflake | guild_id,
|  | command_completion_event_t | callback = utility::log_error() )

Get the permissions for a slash command of a guild.

See also
  https://discord.com/developers/docs/interactions/application-commands#get-application-command-permissions

Parameters

  id | The ID of the slash command to get the permissions for
  guild_id | Guild ID to get the permissions of
  callback | Function to call when the API call completes. On success the callback will contain a dpp::guild_command_permissions object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_commands_get()

void dpp::cluster::guild_commands_get | ( | snowflake | guild_id,
|  | command_completion_event_t | callback )

Get the application's slash commands for a guild.

See also
  https://discord.com/developers/docs/interactions/application-commands#get-guild-application-commands

Note
  The returned slash commands will not have permissions set, you need to use a permissions getter e.g. dpp::guild_commands_get_permissions to get the guild command permissions

Parameters

  guild_id | Guild ID to get the slash commands for
  callback | Function to call when the API call completes. On success the callback will contain a dpp::slashcommand_map object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_commands_get_permissions()

void dpp::cluster::guild_commands_get_permissions | ( | snowflake | guild_id,
|  | command_completion_event_t | callback )

Get all slash command permissions of a guild.

See also
  https://discord.com/developers/docs/interactions/application-commands#get-application-command-permissions

Parameters

  guild_id | Guild ID to get the slash commands permissions for
  callback | Function to call when the API call completes. On success the callback will contain a dpp::guild_command_permissions_map object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_create()

void dpp::cluster::guild_create | ( | const class guild & | g,
|  | command_completion_event_t | callback = utility::log_error() )

Create a guild.

Create a new guild. Returns a guild object on success. Fires a Guild Create Gateway event.

When using the roles parameter, the first member of the array is used to change properties of the guild's everyone role. If you are trying to bootstrap a guild with additional roles, keep this in mind. The required id field within each role object is an integer placeholder, and will be replaced by the API upon consumption. Its purpose is to allow you to overwrite a role's permissions in a channel when also passing in channels with the channels array. When using the channels parameter, the position field is ignored, and none of the default channels are created. The id field within each channel object may be set to an integer placeholder, and will be replaced by the API upon consumption. Its purpose is to allow you to create GUILD_CATEGORY channels by setting the parent_id field on any children to the category's id field. Category channels must be listed before any children.

See also
  https://discord.com/developers/docs/resources/guild#create-guild

Note
  The region field is deprecated and is replaced by channel.rtc_region. This endpoint can be used only by bots in less than 10 guilds.

Parameters

  g | Guild to create
  callback | Function to call when the API call completes. On success the callback will contain a dpp::guild object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_create_from_template()

void dpp::cluster::guild_create_from_template | ( | const std::string & | code,
|  | const std::string & | name,
|  | command_completion_event_t | callback = utility::log_error() )

Create a new guild based on a template.

Note
  This endpoint can be used only by bots in less than 10 guilds.

See also
  https://discord.com/developers/docs/resources/guild-template#create-guild-from-guild-template

Parameters

  code | Template code to create guild from
  name | Guild name to create
  callback | Function to call when the API call completes. On success the callback will contain a dpp::guild object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_current_member_edit()

void dpp::cluster::guild_current_member_edit | ( | snowflake | guild_id,
|  | const std::string & | nickname,
|  | const std::string & | banner_blob,
|  | const image_type | banner_type,
|  | const std::string & | avatar_blob,
|  | const image_type | avatar_type,
|  | const std::string & | bio,
|  | command_completion_event_t | callback = utility::log_error() )

Modify current member.

Modifies the current member in a guild. Fires a Guild Member Update Gateway event.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  https://discord.com/developers/docs/resources/guild#modify-current-member

Parameters

  guild_id | Guild ID to change on
  nickname | New nickname, or empty string to clear nickname.
  banner_blob | New banner, or empty string to clear banner.
  banner_type | Type of image for new banner.
  avatar_blob | New avatar, or empty string to clear avatar.
  avatar_type | Type of image for new avatar.
  bio | New bio, or empty string to clear bio
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_delete()

void dpp::cluster::guild_delete | ( | snowflake | guild_id,
|  | command_completion_event_t | callback = utility::log_error() )

Delete a guild.

Delete a guild permanently. User must be owner. Fires a Guild Delete Gateway event.

See also
  https://discord.com/developers/docs/resources/guild#delete-guild

Parameters

  guild_id | Guild ID to delete
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_delete_integration()

void dpp::cluster::guild_delete_integration | ( | snowflake | guild_id,
|  | snowflake | integration_id,
|  | command_completion_event_t | callback = utility::log_error() )

Delete guild integration.

Delete the attached integration object for the guild. Deletes any associated webhooks and kicks the associated bot if there is one. Requires the MANAGE_GUILD permission. Fires a Guild Integrations Update Gateway event.

See also
  https://discord.com/developers/docs/resources/guild#delete-guild-integration

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  guild_id | Guild ID to delete integration for
  integration_id | Integration ID to delete
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_edit()

void dpp::cluster::guild_edit | ( | const class guild & | g,
|  | command_completion_event_t | callback = utility::log_error() )

Edit a guild.

Modify a guild's settings. Requires the MANAGE_GUILD permission. Returns the updated guild object on success. Fires a Guild Update Gateway event.

See also
  https://discord.com/developers/docs/resources/guild#modify-guild

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  g | Guild to edit
  callback | Function to call when the API call completes. On success the callback will contain a dpp::guild object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_edit_member()

void dpp::cluster::guild_edit_member | ( | const guild_member & | gm,
|  | command_completion_event_t | callback = utility::log_error() )

Edit the properties of an existing guild member.

Modify attributes of a guild member. Returns the guild_member. Fires a Guild Member Update Gateway event. To remove a timeout, set the communication_disabled_until to a non-zero time in the past, e.g. 1. When moving members to channels, the API user must have permissions to both connect to the channel and have the MOVE_MEMBERS permission. For moving and disconnecting users from voice, use dpp::cluster::guild_member_move.

See also
  https://discord.com/developers/docs/resources/guild#modify-guild-member

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  gm | Guild member to edit
  callback | Function to call when the API call completes. On success the callback will contain a dpp::guild_member object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_edit_onboarding()

void dpp::cluster::guild_edit_onboarding | ( | const struct onboarding & | o,
|  | command_completion_event_t | callback = utility::log_error() )

Edit the guild's onboarding configuration.

Requires the MANAGE_GUILD and MANAGE_ROLES permissions.

Note
  Onboarding enforces constraints when enabled. These constraints are that there must be at least 7 Default Channels and at least 5 of them must allow sending messages to the @everyone role. The onboarding::mode field modifies what is considered when enforcing these constraints.

See also
  https://discord.com/developers/docs/resources/guild#modify-guild-onboarding

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  o | The onboarding object
  callback | Function to call when the API call completes. On success the callback will contain a dpp::onboarding object in confirmation_callback_t::value filled to match the vanity url. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_edit_welcome_screen()

void dpp::cluster::guild_edit_welcome_screen | ( | snowflake | guild_id,
|  | const struct welcome_screen & | welcome_screen,
|  | bool | enabled,
|  | command_completion_event_t | callback = utility::log_error() )

Edit the guild's welcome screen.

Requires the MANAGE_GUILD permission. May fire a Guild Update Gateway event.

See also
  https://discord.com/developers/docs/resources/guild#modify-guild-welcome-screen

Parameters

  guild_id | The guild ID to edit the welcome screen for
  welcome_screen | The welcome screen
  enabled | Whether the welcome screen should be enabled or disabled
  callback | Function to call when the API call completes. On success the callback will contain a dpp::welcome_screen object in confirmation_callback_t::value filled to match the vanity url. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_edit_widget()

void dpp::cluster::guild_edit_widget | ( | snowflake | guild_id,
|  | const class guild_widget & | gw,
|  | command_completion_event_t | callback = utility::log_error() )

Edit guild widget.

Requires the MANAGE_GUILD permission.

See also
  https://discord.com/developers/docs/resources/guild#modify-guild-widget

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  guild_id | Guild ID to edit widget for
  gw | New guild widget information
  callback | Function to call when the API call completes. On success the callback will contain a dpp::guild_widget object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_emoji_create()

void dpp::cluster::guild_emoji_create | ( | snowflake | guild_id,
|  | const class emoji & | newemoji,
|  | command_completion_event_t | callback = utility::log_error() )

Create single emoji. You must ensure that the emoji passed contained image data using the emoji::load_image() method.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  https://discord.com/developers/docs/resources/emoji#create-guild-emoji

Parameters

  guild_id | Guild ID to create emoji om
  newemoji | Emoji to create
  callback | Function to call when the API call completes. On success the callback will contain a dpp::emoji object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_emoji_delete()

void dpp::cluster::guild_emoji_delete | ( | snowflake | guild_id,
|  | snowflake | emoji_id,
|  | command_completion_event_t | callback = utility::log_error() )

Delete a guild emoji.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  https://discord.com/developers/docs/resources/emoji#delete-guild-emoji

Parameters

  guild_id | Guild ID to delete emoji on
  emoji_id | Emoji ID to delete
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_emoji_edit()

void dpp::cluster::guild_emoji_edit | ( | snowflake | guild_id,
|  | const class emoji & | newemoji,
|  | command_completion_event_t | callback = utility::log_error() )

Edit a single emoji.

You must ensure that the emoji passed contained image data using the emoji::load_image() method.

See also
  https://discord.com/developers/docs/resources/emoji#modify-guild-emoji

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  guild_id | Guild ID to edit emoji on
  newemoji | Emoji to edit
  callback | Function to call when the API call completes. On success the callback will contain a dpp::emoji object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_emoji_get()

void dpp::cluster::guild_emoji_get | ( | snowflake | guild_id,
|  | snowflake | emoji_id,
|  | command_completion_event_t | callback )

Get a single emoji.

See also
  https://discord.com/developers/docs/resources/emoji#get-guild-emoji

Parameters

  guild_id | Guild ID to get emoji for
  emoji_id | Emoji ID to get
  callback | Function to call when the API call completes. On success the callback will contain a dpp::emoji object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_emojis_get()

void dpp::cluster::guild_emojis_get | ( | snowflake | guild_id,
|  | command_completion_event_t | callback )

Get all emojis for a guild.

See also
  https://discord.com/developers/docs/resources/emoji#list-guild-emojis

Parameters

  guild_id | Guild ID to get emojis for
  callback | Function to call when the API call completes. On success the callback will contain a dpp::emoji_map object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_event_create()

void dpp::cluster::guild_event_create | ( | const scheduled_event & | event,
|  | command_completion_event_t | callback = utility::log_error() )

Create a scheduled event on a guild.

See also
  https://discord.com/developers/docs/resources/guild-scheduled-event#create-guild-scheduled-event

Parameters

  event | Event to create (guild ID must be populated)
  callback | Function to call when the API call completes. On success the callback will contain a dpp::scheduled_event_map object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_event_delete()

void dpp::cluster::guild_event_delete | ( | snowflake | event_id,
|  | snowflake | guild_id,
|  | command_completion_event_t | callback = utility::log_error() )

Delete a scheduled event from a guild.

See also
  https://discord.com/developers/docs/resources/guild-scheduled-event#delete-guild-scheduled-event

Parameters

  event_id | Event ID to delete
  guild_id | Guild ID of event to delete
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_event_edit()

void dpp::cluster::guild_event_edit | ( | const scheduled_event & | event,
|  | command_completion_event_t | callback = utility::log_error() )

Edit/modify a scheduled event on a guild.

See also
  https://discord.com/developers/docs/resources/guild-scheduled-event#modify-guild-scheduled-event

Parameters

  event | Event to create (event ID and guild ID must be populated)
  callback | Function to call when the API call completes. On success the callback will contain a dpp::scheduled_event_map object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_event_get()

void dpp::cluster::guild_event_get | ( | snowflake | guild_id,
|  | snowflake | event_id,
|  | command_completion_event_t | callback )

Get a scheduled event for a guild.

See also
  https://discord.com/developers/docs/resources/guild-scheduled-event#get-guild-scheduled-event

Parameters

  guild_id | Guild to get event for
  event_id | Event ID to get
  callback | Function to call when the API call completes. On success the callback will contain a dpp::scheduled_event object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_event_users_get()

void dpp::cluster::guild_event_users_get | ( | snowflake | guild_id,
|  | snowflake | event_id,
|  | command_completion_event_t | callback,
|  | uint8_t | limit = 100,
|  | snowflake | before = 0,
|  | snowflake | after = 0 )

Get users RSVP'd to an event.

See also
  https://discord.com/developers/docs/resources/guild-scheduled-event#get-guild-scheduled-event-users

Parameters

  guild_id | Guild to get user list for
  event_id | Guild to get user list for
  limit | Maximum number of results to return
  before | Return user IDs that fall before this ID, if provided
  after | Return user IDs that fall after this ID, if provided
  callback | Function to call when the API call completes. On success the callback will contain a dpp::event_member_map object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_events_get()

void dpp::cluster::guild_events_get | ( | snowflake | guild_id,
|  | command_completion_event_t | callback )

Get all scheduled events for a guild.

See also
  https://discord.com/developers/docs/resources/guild-scheduled-event#list-scheduled-events-for-guild

Parameters

  guild_id | Guild to get events for
  callback | Function to call when the API call completes. On success the callback will contain a dpp::scheduled_event_map object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_get()

void dpp::cluster::guild_get | ( | snowflake | g,
|  | command_completion_event_t | callback )

Get a guild.

Returns the guild object for the given id. This endpoint will also return approximate_member_count and approximate_presence_count for the guild.

See also
  https://discord.com/developers/docs/resources/guild#get-guild

Parameters

  g | Guild ID to retrieve
  callback | Function to call when the API call completes. On success the callback will contain a dpp::guild object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_get_ban()

void dpp::cluster::guild_get_ban | ( | snowflake | guild_id,
|  | snowflake | user_id,
|  | command_completion_event_t | callback )

Get single guild ban.

Requires the BAN_MEMBERS permission.

See also
  https://discord.com/developers/docs/resources/guild#get-guild-ban

Parameters

  guild_id | Guild ID to get ban for
  user_id | User ID of ban to retrieve
  callback | Function to call when the API call completes. On success the callback will contain a dpp::ban object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_get_bans()

void dpp::cluster::guild_get_bans | ( | snowflake | guild_id,
|  | snowflake | before,
|  | snowflake | after,
|  | snowflake | limit,
|  | command_completion_event_t | callback )

Get guild ban list.

Requires the BAN_MEMBERS permission.

See also
  https://discord.com/developers/docs/resources/guild#get-guild-bans

Note
  Provide a user ID to before and after for pagination. Users will always be returned in ascending order by the user ID. If both before and after are provided, only before is respected.

Parameters

  guild_id | Guild ID to get bans for
  before | If non-zero, all bans for user ids before this user id will be returned up to the limit
  after | if non-zero, all bans for user ids after this user id will be returned up to the limit
  limit | the maximum number of bans to retrieve in this call up to a maximum of 1000
  callback | Function to call when the API call completes. On success the callback will contain a dpp::ban_map object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_get_integrations()

void dpp::cluster::guild_get_integrations | ( | snowflake | guild_id,
|  | command_completion_event_t | callback )

Get guild integrations.

Requires the MANAGE_GUILD permission.

See also
  https://discord.com/developers/docs/resources/guild#get-guild-integrations

Parameters

  guild_id | Guild ID to get integrations for
  callback | Function to call when the API call completes. On success the callback will contain a dpp::integration_map object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

Note
  This endpoint returns a maximum of 50 integrations. If a guild has more integrations, they cannot be accessed.

## ◆ guild_get_invites()

void dpp::cluster::guild_get_invites | ( | snowflake | guild_id,
|  | command_completion_event_t | callback )

Get guild invites.

Returns a list of invite objects (with invite metadata) for the guild. Requires the MANAGE_GUILD permission.

See also
  https://discord.com/developers/docs/resources/guild#get-guild-invites

Parameters

  guild_id | Guild ID to get invites for
  callback | Function to call when the API call completes. On success the callback will contain a dpp::invite_map object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_get_member()

void dpp::cluster::guild_get_member | ( | snowflake | guild_id,
|  | snowflake | user_id,
|  | command_completion_event_t | callback )

Get a guild member.

See also
  https://discord.com/developers/docs/resources/guild#get-guild-member

Parameters

  guild_id | Guild ID to get member for
  user_id | User ID of member to get
  callback | Function to call when the API call completes. On success the callback will contain a dpp::guild_member object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_get_members()

void dpp::cluster::guild_get_members | ( | snowflake | guild_id,
|  | uint16_t | limit,
|  | snowflake | after,
|  | command_completion_event_t | callback )

Get all guild members.

Note
  This endpoint is restricted according to whether the GUILD_MEMBERS Privileged Intent is enabled for your application.

See also
  https://discord.com/developers/docs/resources/guild#get-guild-members

Parameters

  guild_id | Guild ID to get all members for
  limit | max number of members to return (1-1000)
  after | the highest user id in the previous page
  callback | Function to call when the API call completes. On success the callback will contain a dpp::guild_member_map object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_get_onboarding()

void dpp::cluster::guild_get_onboarding | ( | snowflake | guild_id,
|  | command_completion_event_t | callback )

Get the guild's onboarding configuration.

See also
  https://discord.com/developers/docs/resources/guild#get-guild-onboarding

Parameters

  guild_id | The guild to pull the onboarding configuration from.
  callback | Function to call when the API call completes. On success the callback will contain a dpp::onboarding object in confirmation_callback_t::value filled to match the vanity url. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_get_preview()

void dpp::cluster::guild_get_preview | ( | snowflake | g,
|  | command_completion_event_t | callback )

Get a guild preview. Returns a guild object but only a subset of the fields will be populated.

Returns the guild preview object for the given id g. If the user is not in the guild, then the guild must be lurkable (it must be Discoverable or have a live public stage).

See also
  https://discord.com/developers/docs/resources/guild#get-guild-preview

Parameters

  g | Guild ID to retrieve
  callback | Function to call when the API call completes. On success the callback will contain a dpp::guild object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_get_prune_counts()

void dpp::cluster::guild_get_prune_counts | ( | snowflake | guild_id,
|  | const struct prune & | pruneinfo,
|  | command_completion_event_t | callback )

Get prune counts.

Returns a prune object indicating the number of members that would be removed in a prune operation. Requires the KICK_MEMBERS permission. By default, prune will not remove users with roles. You can optionally include specific roles in your prune by providing the include_roles parameter. Any inactive user that has a subset of the provided role(s) will be counted in the prune and users with additional roles will not.

See also
  https://discord.com/developers/docs/resources/guild#get-guild-prune-count

Parameters

  guild_id | Guild ID to count for pruning
  pruneinfo | Pruning info
  callback | Function to call when the API call completes. On success the callback will contain a dpp::prune object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_get_vanity()

void dpp::cluster::guild_get_vanity | ( | snowflake | guild_id,
|  | command_completion_event_t | callback )

Get guild vanity url, if enabled.

Returns a partial dpp::invite object for guilds with that feature enabled. Requires the MANAGE_GUILD permission. code will be null if a vanity url for the guild is not set.

See also
  https://discord.com/developers/docs/resources/guild#get-guild-vanity-url

Parameters

  guild_id | Guild to get vanity URL for
  callback | Function to call when the API call completes. On success the callback will contain a dpp::invite object in confirmation_callback_t::value filled to match the vanity url. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_get_voice_regions()

void dpp::cluster::guild_get_voice_regions | ( | snowflake | guild_id,
|  | command_completion_event_t | callback )

Get guild voice regions.

Voice regions per guild are somewhat deprecated in preference of per-channel voice regions. Returns a list of voice region objects for the guild. Unlike the similar /voice route, this returns VIP servers when the guild is VIP-enabled.

See also
  https://discord.com/developers/docs/resources/guild#get-guild-voice-regions

Parameters

  guild_id | Guild ID to get voice regions for
  callback | Function to call when the API call completes. On success the callback will contain a dpp::voiceregion_map object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_get_welcome_screen()

void dpp::cluster::guild_get_welcome_screen | ( | snowflake | guild_id,
|  | command_completion_event_t | callback )

Get the guild's welcome screen.

If the welcome screen is not enabled, the MANAGE_GUILD permission is required.

See also
  https://discord.com/developers/docs/resources/guild#get-guild-welcome-screen

Parameters

  guild_id | The guild ID to get the welcome screen from
  callback | Function to call when the API call completes. On success the callback will contain a dpp::welcome_screen object in confirmation_callback_t::value filled to match the vanity url. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_get_widget()

void dpp::cluster::guild_get_widget | ( | snowflake | guild_id,
|  | command_completion_event_t | callback )

Get guild widget.

Requires the MANAGE_GUILD permission.

See also
  https://discord.com/developers/docs/resources/guild#get-guild-widget

Parameters

  guild_id | Guild ID to get widget for
  callback | Function to call when the API call completes. On success the callback will contain a dpp::guild_widget object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_member_add_role()

void dpp::cluster::guild_member_add_role | ( | snowflake | guild_id,
|  | snowflake | user_id,
|  | snowflake | role_id,
|  | command_completion_event_t | callback = utility::log_error() )

Add role to guild member.

Adds a role to a guild member. Requires the MANAGE_ROLES permission. Fires a Guild Member Update Gateway event.

See also
  https://discord.com/developers/docs/resources/guild#add-guild-member-role

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  guild_id | Guild ID to add a role to
  user_id | User ID to add role to
  role_id | Role ID to add to the user
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_member_delete()

void dpp::cluster::guild_member_delete | ( | snowflake | guild_id,
|  | snowflake | user_id,
|  | command_completion_event_t | callback = utility::log_error() )

Remove (kick) a guild member.

Remove a member from a guild. Requires KICK_MEMBERS permission. Fires a Guild Member Remove Gateway event.

See also
  https://discord.com/developers/docs/resources/guild#remove-guild-member

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Deprecated
  Replaced by dpp::cluster::guild_member_kick

Parameters

  guild_id | Guild ID to kick member from
  user_id | User ID to kick
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_member_delete_role()

void dpp::cluster::guild_member_delete_role | ( | snowflake | guild_id,
|  | snowflake | user_id,
|  | snowflake | role_id,
|  | command_completion_event_t | callback = utility::log_error() )

Remove role from guild member.

Removes a role from a guild member. Requires the MANAGE_ROLES permission. Fires a Guild Member Update Gateway event.

See also
  https://discord.com/developers/docs/resources/guild#remove-guild-member-role

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  guild_id | Guild ID to remove role from user on
  user_id | User ID to remove role from
  role_id | Role to remove
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

Deprecated
  Use dpp::cluster::guild_member_remove_role instead

## ◆ guild_member_kick()

void dpp::cluster::guild_member_kick | ( | snowflake | guild_id,
|  | snowflake | user_id,
|  | command_completion_event_t | callback = utility::log_error() )

Remove (kick) a guild member.

Remove a member from a guild. Requires KICK_MEMBERS permission. Fires a Guild Member Remove Gateway event.

See also
  https://discord.com/developers/docs/resources/guild#remove-guild-member

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  guild_id | Guild ID to kick member from
  user_id | User ID to kick
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_member_move()

void dpp::cluster::guild_member_move | ( | const snowflake | channel_id,
|  | const snowflake | guild_id,
|  | const snowflake | user_id,
|  | command_completion_event_t | callback = utility::log_error() )

Moves the guild member to a other voice channel, if member is connected to one. Set the channel_id to 0 to disconnect the user.

Fires a Guild Member Update Gateway event.

Note
  When moving members to channels, the API user must have permissions to both connect to the channel and have the MOVE_MEMBERS permission.
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  https://discord.com/developers/docs/resources/guild#modify-guild-member

Parameters

  channel_id | Id of the channel to which the user is used. Set to 0 to disconnect the user
  guild_id | Guild id to which the user is connected
  user_id | User id, who should be moved
  callback | Function to call when the API call completes. On success the callback will contain a dpp::guild_member object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_member_remove_role()

void dpp::cluster::guild_member_remove_role | ( | snowflake | guild_id,
|  | snowflake | user_id,
|  | snowflake | role_id,
|  | command_completion_event_t | callback = utility::log_error() )

Remove role from guild member.

Removes a role from a guild member. Requires the MANAGE_ROLES permission. Fires a Guild Member Update Gateway event.

See also
  https://discord.com/developers/docs/resources/guild#remove-guild-member-role

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  guild_id | Guild ID to remove role from user on
  user_id | User ID to remove role from
  role_id | Role to remove
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_member_timeout()

void dpp::cluster::guild_member_timeout | ( | snowflake | guild_id,
|  | snowflake | user_id,
|  | time_t | communication_disabled_until,
|  | command_completion_event_t | callback = utility::log_error() )

Set the timeout of a guild member.

Fires a Guild Member Update Gateway event.

See also
  https://discord.com/developers/docs/resources/guild#modify-guild-member

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  guild_id | Guild ID to timeout the member in
  user_id | User ID to set the timeout for
  communication_disabled_until | The timestamp when the user's timeout will expire (up to 28 days in the future). Set to 0 to remove the timeout
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_member_timeout_remove()

void dpp::cluster::guild_member_timeout_remove | ( | snowflake | guild_id,
|  | snowflake | user_id,
|  | command_completion_event_t | callback = utility::log_error() )

Remove the timeout of a guild member. A shortcut for guild_member_timeout(guild_id, user_id, 0, callback) Fires a Guild Member Update Gateway event.

See also
  https://discord.com/developers/docs/resources/guild#modify-guild-member

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  guild_id | Guild ID to remove the member timeout from
  user_id | User ID to remove the timeout for
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_messages_search()

void dpp::cluster::guild_messages_search | ( | snowflake | guild_id,
|  | const message_search_params & | params,
|  | command_completion_event_t | callback )

Search for messages in a guild.

See also
  https://discord.com/developers/docs/resources/message#search-guild-messages

Parameters

  guild_id | Guild ID to search in
  params | Search parameters
  callback | Function to call when the API call completes. On success the callback will contain a dpp::message_search_result object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_modify_integration()

void dpp::cluster::guild_modify_integration | ( | snowflake | guild_id,
|  | const class integration & | i,
|  | command_completion_event_t | callback = utility::log_error() )

Modify guild integration.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  https://discord.com/developers/docs/resources/guild#modify-guild-integration

Parameters

  guild_id | Guild ID to modify integration for
  i | Integration to modify
  callback | Function to call when the API call completes. On success the callback will contain a dpp::integration object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_search_members()

void dpp::cluster::guild_search_members | ( | snowflake | guild_id,
|  | const std::string & | query,
|  | uint16_t | limit,
|  | command_completion_event_t | callback )

Search for guild members based on whether their username or nickname starts with the given string.

Note
  This endpoint is restricted according to whether the GUILD_MEMBERS Privileged Intent is enabled for your application.

See also
  https://discord.com/developers/docs/resources/guild#search-guild-members

Parameters

  guild_id | Guild ID to search in
  query | Query string to match username(s) and nickname(s) against
  limit | max number of members to return (1-1000)
  callback | Function to call when the API call completes. On success the callback will contain a dpp::guild_member_map object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_set_nickname()

void dpp::cluster::guild_set_nickname | ( | snowflake | guild_id,
|  | const std::string & | nickname,
|  | command_completion_event_t | callback = utility::log_error() )

Change current user nickname.

Modifies the nickname of the current user in a guild. Fires a Guild Member Update Gateway event.

Deprecated
  Deprecated in favor of Modify Current Member. Will be replaced by dpp::cluster::guild_current_member_edit

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  https://discord.com/developers/docs/resources/guild#modify-current-user-nick

Parameters

  guild_id | Guild ID to change nickname on
  nickname | New nickname, or empty string to clear nickname
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_sticker_create()

void dpp::cluster::guild_sticker_create | ( | const sticker & | s,
|  | command_completion_event_t | callback = utility::log_error() )

Create a sticker in a guild.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  https://discord.com/developers/docs/resources/sticker#create-guild-sticker

Parameters

  s | Sticker to create. Must have its guild ID set.
  callback | Function to call when the API call completes. On success the callback will contain a dpp::sticker object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_sticker_delete()

void dpp::cluster::guild_sticker_delete | ( | snowflake | sticker_id,
|  | snowflake | guild_id,
|  | command_completion_event_t | callback = utility::log_error() )

Delete a sticker from a guild.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  https://discord.com/developers/docs/resources/sticker#delete-guild-sticker

Parameters

  sticker_id | sticker ID to delete
  guild_id | guild ID to delete from
  callback | Function to call when the API call completes. On success the callback will contain a dpp::sticker object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_sticker_get()

void dpp::cluster::guild_sticker_get | ( | snowflake | id,
|  | snowflake | guild_id,
|  | command_completion_event_t | callback )

Get a guild sticker.

See also
  https://discord.com/developers/docs/resources/sticker#get-guild-sticker

Parameters

  id | Id of sticker to get.
  guild_id | Guild ID of the guild where the sticker is
  callback | Function to call when the API call completes. On success the callback will contain a dpp::sticker object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_sticker_modify()

void dpp::cluster::guild_sticker_modify | ( | const sticker & | s,
|  | command_completion_event_t | callback = utility::log_error() )

Modify a sticker in a guild.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  https://discord.com/developers/docs/resources/sticker#modify-guild-sticker

Parameters

  s | Sticker to modify. Must have its guild ID and sticker ID set.
  callback | Function to call when the API call completes. On success the callback will contain a dpp::sticker object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_stickers_get()

void dpp::cluster::guild_stickers_get | ( | snowflake | guild_id,
|  | command_completion_event_t | callback )

Get all guild stickers.

See also
  https://discord.com/developers/docs/resources/sticker#list-guild-stickers

Parameters

  guild_id | Guild ID of the guild where the sticker is
  callback | Function to call when the API call completes. On success the callback will contain a dpp::sticker_map object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_sync_integration()

void dpp::cluster::guild_sync_integration | ( | snowflake | guild_id,
|  | snowflake | integration_id,
|  | command_completion_event_t | callback = utility::log_error() )

Sync guild integration.

See also
  https://discord.com/developers/docs/resources/guild#sync-guild-integration

Parameters

  guild_id | Guild ID to sync integration on
  integration_id | Integration ID to synchronise
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_template_create()

void dpp::cluster::guild_template_create | ( | snowflake | guild_id,
|  | const std::string & | name,
|  | const std::string & | description,
|  | command_completion_event_t | callback = utility::log_error() )

Creates a template for the guild.

See also
  https://discord.com/developers/docs/resources/guild-template#create-guild-template

Parameters

  guild_id | Guild to create template from
  name | Template name to create
  description | Description of template to create
  callback | Function to call when the API call completes. On success the callback will contain a dpp::dtemplate object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_template_delete()

void dpp::cluster::guild_template_delete | ( | snowflake | guild_id,
|  | const std::string & | code,
|  | command_completion_event_t | callback = utility::log_error() )

Deletes the template.

See also
  https://discord.com/developers/docs/resources/guild-template#delete-guild-template

Parameters

  guild_id | Guild ID of template to delete
  code | Template code to delete
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_template_modify()

void dpp::cluster::guild_template_modify | ( | snowflake | guild_id,
|  | const std::string & | code,
|  | const std::string & | name,
|  | const std::string & | description,
|  | command_completion_event_t | callback = utility::log_error() )

Modifies the template's metadata.

See also
  https://discord.com/developers/docs/resources/guild-template#modify-guild-template

Parameters

  guild_id | Guild ID of template to modify
  code | Template code to modify
  name | New name of template
  description | New description of template
  callback | Function to call when the API call completes. On success the callback will contain a dpp::dtemplate object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_template_sync()

void dpp::cluster::guild_template_sync | ( | snowflake | guild_id,
|  | const std::string & | code,
|  | command_completion_event_t | callback = utility::log_error() )

Syncs the template to the guild's current state.

See also
  https://discord.com/developers/docs/resources/guild-template#sync-guild-template

Parameters

  guild_id | Guild to synchronise template for
  code | Code of template to synchronise
  callback | Function to call when the API call completes. On success the callback will contain a dpp::dtemplate object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ guild_templates_get()

void dpp::cluster::guild_templates_get | ( | snowflake | guild_id,
|  | command_completion_event_t | callback )

Get guild templates.

See also
  https://discord.com/developers/docs/resources/guild-template#get-guild-templates

Parameters

  guild_id | Guild ID to get templates for
  callback | Function to call when the API call completes. On success the callback will contain a dpp::dtemplate_map object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ interaction_followup_create()

void dpp::cluster::interaction_followup_create | ( | const std::string & | token,
|  | const message & | m,
|  | command_completion_event_t | callback = utility::log_error() )

Create a followup message for an interaction.

See also
  https://discord.com/developers/docs/interactions/receiving-and-responding#create-interaction-response

Parameters

  token | Token for the interaction webhook
  m | followup message to create
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ interaction_followup_delete()

void dpp::cluster::interaction_followup_delete | ( | const std::string & | token,
|  | command_completion_event_t | callback = utility::log_error() )

Delete the initial interaction response.

See also
  https://discord.com/developers/docs/interactions/receiving-and-responding#delete-original-interaction-response

Parameters

  token | Token for the interaction webhook
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ interaction_followup_edit()

void dpp::cluster::interaction_followup_edit | ( | const std::string & | token,
|  | const message & | m,
|  | command_completion_event_t | callback = utility::log_error() )

Edit followup message for an interaction The message ID in the message you pass should be correctly set to that of a followup message you previously sent.

See also
  https://discord.com/developers/docs/interactions/receiving-and-responding#edit-followup-message

Parameters

  token | Token for the interaction webhook
  m | message to edit, the ID should be set
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ interaction_followup_edit_original()

void dpp::cluster::interaction_followup_edit_original | ( | const std::string & | token,
|  | const message & | m,
|  | command_completion_event_t | callback = utility::log_error() )

Edit original followup message for an interaction This is an alias for cluster::interaction_response_edit.

See also
  cluster::interaction_response_edit

Parameters

  token | Token for the interaction webhook
  m | message to edit, the ID should be set
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ interaction_followup_get()

void dpp::cluster::interaction_followup_get | ( | const std::string & | token,
|  | snowflake | message_id,
|  | command_completion_event_t | callback )

Get the followup message for an interaction.

See also
  https://discord.com/developers/docs/interactions/receiving-and-responding#get-followup-message

Parameters

  token | Token for the interaction webhook
  message_id | message to retrieve
  callback | Function to call when the API call completes. On success the callback will contain a dpp::message object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ interaction_followup_get_original()

void dpp::cluster::interaction_followup_get_original | ( | const std::string & | token,
|  | command_completion_event_t | callback = utility::log_error() )

Get the original followup message for an interaction This is an alias for cluster::interaction_response_get_original.

See also
  cluster::interaction_response_get_original

Parameters

  token | Token for the interaction webhook
  callback | Function to call when the API call completes. On success the callback will contain a dpp::message object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ interaction_response_create()

void dpp::cluster::interaction_response_create | ( | snowflake | interaction_id,
|  | const std::string & | token,
|  | const interaction_response & | r,
|  | command_completion_event_t | callback = utility::log_error() )

Respond to a slash command.

See also
  https://discord.com/developers/docs/interactions/receiving-and-responding#create-interaction-response

Parameters

  interaction_id | Interaction id to respond to
  token | Token for the interaction webhook
  r | Response to send
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ interaction_response_edit()

void dpp::cluster::interaction_response_edit | ( | const std::string & | token,
|  | const message & | m,
|  | command_completion_event_t | callback = utility::log_error() )

Edit response to a slash command.

See also
  https://discord.com/developers/docs/interactions/receiving-and-responding#edit-original-interaction-response

Parameters

  token | Token for the interaction webhook
  m | Message to send
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ interaction_response_get_original()

void dpp::cluster::interaction_response_get_original | ( | const std::string & | token,
|  | command_completion_event_t | callback = utility::log_error() )

Get the original response to a slash command.

See also
  https://discord.com/developers/docs/interactions/receiving-and-responding#get-original-interaction-response

Parameters

  token | Token for the interaction webhook
  callback | Function to call when the API call completes. On success the callback will contain a dpp::message object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ invite_delete()

void dpp::cluster::invite_delete | ( | const std::string & | invite,
|  | command_completion_event_t | callback = utility::log_error() )

Delete an invite.

See also
  https://discord.com/developers/docs/resources/invite#delete-invite

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  invite | Invite code to delete
  callback | Function to call when the API call completes. On success the callback will contain a dpp::invite object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ invite_get()

void dpp::cluster::invite_get | ( | const std::string & | invite_code,
|  | command_completion_event_t | callback )

Get details about an invite.

See also
  https://discord.com/developers/docs/resources/invite#get-invite

Parameters

  invite_code | Invite code to get information on
  callback | Function to call when the API call completes. On success the callback will contain a dpp::invite object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ log()

void dpp::cluster::log | ( | dpp::loglevel | severity,
|  | const std::string & | msg ) const

Log a message to whatever log the user is using. The logged message is passed up the chain to the on_log event in user code which can then do whatever it wants to do with it.

Parameters

  severity | The log level from dpp::loglevel
  msg | The log message to output

## ◆ message_add_reaction() [1/2]

void dpp::cluster::message_add_reaction | ( | const struct message & | m,
|  | const std::string & | reaction,
|  | command_completion_event_t | callback = utility::log_error() )

Add a reaction to a message. The reaction string must be either an emojiname:id or a unicode character.

See also
  https://discord.com/developers/docs/resources/channel#create-reaction

Parameters

  m | Message to add a reaction to
  reaction | Reaction to add. Emojis should be in the form emojiname:id
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ message_add_reaction() [2/2]

void dpp::cluster::message_add_reaction | ( | snowflake | message_id,
|  | snowflake | channel_id,
|  | const std::string & | reaction,
|  | command_completion_event_t | callback = utility::log_error() )

Add a reaction to a message by id. The reaction string must be either an emojiname:id or a unicode character.

See also
  https://discord.com/developers/docs/topics/gateway#message-reaction-add

Parameters

  message_id | Message to add reactions to
  channel_id | Channel to add reactions to
  reaction | Reaction to add. Emojis should be in the form emojiname:id
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ message_create()

void dpp::cluster::message_create | ( | const struct message & | m,
|  | command_completion_event_t | callback = utility::log_error() )

Send a message to a channel. The callback function is called when the message has been sent.

See also
  https://discord.com/developers/docs/resources/channel#create-message

Parameters

  m | Message to send
  callback | Function to call when the API call completes. On success the callback will contain a dpp::message object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ message_crosspost()

void dpp::cluster::message_crosspost | ( | snowflake | message_id,
|  | snowflake | channel_id,
|  | command_completion_event_t | callback = utility::log_error() )

Crosspost a message. The callback function is called when the message has been sent.

See also
  https://discord.com/developers/docs/resources/channel#crosspost-message

Parameters

  message_id | Message to crosspost
  channel_id | Channel ID to crosspost from
  callback | Function to call when the API call completes. On success the callback will contain a dpp::message object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ message_delete()

void dpp::cluster::message_delete | ( | snowflake | message_id,
|  | snowflake | channel_id,
|  | command_completion_event_t | callback = utility::log_error() )

Delete a message from a channel. The callback function is called when the message has been edited.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  https://discord.com/developers/docs/resources/channel#delete-message

Parameters

  message_id | Message ID to delete
  channel_id | Channel to delete from
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ message_delete_all_reactions() [1/2]

void dpp::cluster::message_delete_all_reactions | ( | const struct message & | m,
|  | command_completion_event_t | callback = utility::log_error() )

Delete all reactions on a message.

See also
  https://discord.com/developers/docs/resources/channel#delete-all-reactions

Parameters

  m | Message to delete reactions from
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ message_delete_all_reactions() [2/2]

void dpp::cluster::message_delete_all_reactions | ( | snowflake | message_id,
|  | snowflake | channel_id,
|  | command_completion_event_t | callback = utility::log_error() )

Delete all reactions on a message by id.

See also
  https://discord.com/developers/docs/resources/channel#delete-all-reactions

Parameters

  message_id | Message to delete reactions from
  channel_id | Channel to delete reactions from
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ message_delete_bulk()

void dpp::cluster::message_delete_bulk | ( | const std::vector< snowflake > & | message_ids,
|  | snowflake | channel_id,
|  | command_completion_event_t | callback = utility::log_error() )

Bulk delete messages from a channel. The callback function is called when the message has been edited.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.
  If any message provided older than 2 weeks or any duplicate message ID, it will fail.

See also
  https://discord.com/developers/docs/resources/channel#bulk-delete-messages

Parameters

  message_ids | List of message IDs to delete (at least 2 and at most 100 message IDs)
  channel_id | Channel to delete from
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ message_delete_own_reaction() [1/2]

void dpp::cluster::message_delete_own_reaction | ( | const struct message & | m,
|  | const std::string & | reaction,
|  | command_completion_event_t | callback = utility::log_error() )

Delete own reaction from a message. The reaction string must be either an emojiname:id or a unicode character.

See also
  https://discord.com/developers/docs/resources/channel#delete-own-reaction

Parameters

  m | Message to delete own reaction from
  reaction | Reaction to delete. The reaction should be in the form emojiname:id
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ message_delete_own_reaction() [2/2]

void dpp::cluster::message_delete_own_reaction | ( | snowflake | message_id,
|  | snowflake | channel_id,
|  | const std::string & | reaction,
|  | command_completion_event_t | callback = utility::log_error() )

Delete own reaction from a message by id. The reaction string must be either an emojiname:id or a unicode character.

See also
  https://discord.com/developers/docs/resources/channel#delete-own-reaction

Parameters

  message_id | Message to delete reactions from
  channel_id | Channel to delete reactions from
  reaction | Reaction to delete. The reaction should be in the form emojiname:id
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ message_delete_reaction() [1/2]

void dpp::cluster::message_delete_reaction | ( | const struct message & | m,
|  | snowflake | user_id,
|  | const std::string & | reaction,
|  | command_completion_event_t | callback = utility::log_error() )

Delete a user's reaction from a message. The reaction string must be either an emojiname:id or a unicode character.

See also
  https://discord.com/developers/docs/resources/channel#delete-user-reaction

Parameters

  m | Message to delete a user's reaction from
  user_id | User ID who's reaction you want to remove
  reaction | Reaction to remove. Reactions should be in the form emojiname:id
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ message_delete_reaction() [2/2]

void dpp::cluster::message_delete_reaction | ( | snowflake | message_id,
|  | snowflake | channel_id,
|  | snowflake | user_id,
|  | const std::string & | reaction,
|  | command_completion_event_t | callback = utility::log_error() )

Delete a user's reaction from a message by id. The reaction string must be either an emojiname:id or a unicode character.

See also
  https://discord.com/developers/docs/resources/channel#delete-user-reaction

Parameters

  message_id | Message to delete reactions from
  channel_id | Channel to delete reactions from
  user_id | User ID who's reaction you want to remove
  reaction | Reaction to remove. Reactions should be in the form emojiname:id
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ message_delete_reaction_emoji() [1/2]

void dpp::cluster::message_delete_reaction_emoji | ( | const struct message & | m,
|  | const std::string & | reaction,
|  | command_completion_event_t | callback = utility::log_error() )

Delete all reactions on a message using a particular emoji. The reaction string must be either an emojiname:id or a unicode character.

See also
  https://discord.com/developers/docs/resources/channel#delete-all-reactions-for-emoji

Parameters

  m | Message to delete reactions from
  reaction | Reaction to delete, in the form emojiname:id or a unicode character
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ message_delete_reaction_emoji() [2/2]

void dpp::cluster::message_delete_reaction_emoji | ( | snowflake | message_id,
|  | snowflake | channel_id,
|  | const std::string & | reaction,
|  | command_completion_event_t | callback = utility::log_error() )

Delete all reactions on a message using a particular emoji by id. The reaction string must be either an emojiname:id or a unicode character.

See also
  https://discord.com/developers/docs/resources/channel#delete-all-reactions-for-emoji

Parameters

  message_id | Message to delete reactions from
  channel_id | Channel to delete reactions from
  reaction | Reaction to delete, in the form emojiname:id or a unicode character
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ message_edit()

void dpp::cluster::message_edit | ( | const struct message & | m,
|  | command_completion_event_t | callback = utility::log_error() )

Edit a message on a channel. The callback function is called when the message has been edited.

See also
  https://discord.com/developers/docs/resources/channel#edit-message

Parameters

  m | Message to edit
  callback | Function to call when the API call completes. On success the callback will contain a dpp::message object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ message_edit_flags()

void dpp::cluster::message_edit_flags | ( | const struct message & | m,
|  | command_completion_event_t | callback = utility::log_error() )

Edit the flags of a message on a channel. The callback function is called when the message has been edited.

Parameters

  m | Message to edit the flags of
  callback | Function to call when the API call completes. On success the callback will contain a dpp::message object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ message_get()

void dpp::cluster::message_get | ( | snowflake | message_id,
|  | snowflake | channel_id,
|  | command_completion_event_t | callback )

Get a message.

See also
  https://discord.com/developers/docs/resources/channel#get-channel-message

Parameters

  message_id | Message ID
  channel_id | Channel ID
  callback | Function to call when the API call completes. On success the callback will contain a dpp::message object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ message_get_reactions() [1/2]

void dpp::cluster::message_get_reactions | ( | const struct message & | m,
|  | const std::string & | reaction,
|  | snowflake | before,
|  | snowflake | after,
|  | snowflake | limit,
|  | command_completion_event_t | callback )

Get reactions on a message for a particular emoji. The reaction string must be either an emojiname:id or a unicode character.

See also
  https://discord.com/developers/docs/resources/channel#get-reactions

Parameters

  m | Message to get reactions for
  reaction | Reaction should be in the form emojiname:id or a unicode character
  before | Reactions before this ID should be retrieved if this is set to non-zero
  after | Reactions before this ID should be retrieved if this is set to non-zero
  limit | This number of reactions maximum should be returned
  callback | Function to call when the API call completes. On success the callback will contain a dpp::user_map object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ message_get_reactions() [2/2]

void dpp::cluster::message_get_reactions | ( | snowflake | message_id,
|  | snowflake | channel_id,
|  | const std::string & | reaction,
|  | snowflake | before,
|  | snowflake | after,
|  | snowflake | limit,
|  | command_completion_event_t | callback )

Get reactions on a message for a particular emoji by id. The reaction string must be either an emojiname:id or a unicode character.

See also
  https://discord.com/developers/docs/resources/channel#get-reactions

Parameters

  message_id | Message to get reactions for
  channel_id | Channel to get reactions for
  reaction | Reaction should be in the form emojiname:id or a unicode character
  before | Reactions before this ID should be retrieved if this is set to non-zero
  after | Reactions before this ID should be retrieved if this is set to non-zero
  limit | This number of reactions maximum should be returned
  callback | Function to call when the API call completes. On success the callback will contain a dpp::user_map object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ message_pin()

void dpp::cluster::message_pin | ( | snowflake | channel_id,
|  | snowflake | message_id,
|  | command_completion_event_t | callback = utility::log_error() )

Pin a message.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  https://discord.com/developers/docs/resources/channel#pin-message

Parameters

  channel_id | Channel id to pin message on
  message_id | Message id to pin message on
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ message_unpin()

void dpp::cluster::message_unpin | ( | snowflake | channel_id,
|  | snowflake | message_id,
|  | command_completion_event_t | callback = utility::log_error() )

Unpin a message.

See also
  https://discord.com/developers/docs/resources/channel#unpin-message

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  channel_id | Channel id to unpin message on
  message_id | Message id to unpin message on
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ messages_get()

void dpp::cluster::messages_get | ( | snowflake | channel_id,
|  | snowflake | around,
|  | snowflake | before,
|  | snowflake | after,
|  | uint64_t | limit,
|  | command_completion_event_t | callback )

Get multiple messages.

This function will attempt to fetch as many messages as possible using multiple API calls if needed.

See also
  https://discord.com/developers/docs/resources/channel#get-channel-messages

Parameters

  channel_id | Channel ID to retrieve messages for
  around | Messages should be retrieved around this ID if this is set to non-zero
  before | Messages before this ID should be retrieved if this is set to non-zero
  after | Messages after this ID should be retrieved if this is set to non-zero
  limit | This number of messages maximum should be returned, up to a maximum of 100.
  callback | Function to call when the API call completes. On success the callback will contain a dpp::message_map object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ nitro_sticker_get()

void dpp::cluster::nitro_sticker_get | ( | snowflake | id,
|  | command_completion_event_t | callback )

Get a nitro sticker.

See also
  https://discord.com/developers/docs/resources/sticker#get-sticker

Parameters

  id | Id of sticker to get.
  callback | Function to call when the API call completes. On success the callback will contain a dpp::sticker object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ operator=() [1/2]

cluster & dpp::cluster::operator= | ( | const cluster && |  | ) |

delete

dpp::cluster is non-moveable

## ◆ operator=() [2/2]

cluster & dpp::cluster::operator= | ( | const cluster & |  | ) |

delete

dpp::cluster is non-copyable

## ◆ poll_end() [1/2]

void dpp::cluster::poll_end | ( | const message & | m,
|  | command_completion_event_t | callback = utility::log_error() )

Immediately end a poll.

Parameters

  m | Message that contains the poll
  callback | Function to call when the API call completes.

See also
  https://discord.com/developers/docs/resources/poll#end-poll On success the callback will contain a dpp::message object representing the message containing the poll in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ poll_end() [2/2]

void dpp::cluster::poll_end | ( | snowflake | message_id,
|  | snowflake | channel_id,
|  | command_completion_event_t | callback = utility::log_error() )

Immediately end a poll.

Parameters

  message_id | ID of the message with the poll to end
  channel_id | ID of the channel with the poll to end
  callback | Function to call when the API call completes.

See also
  https://discord.com/developers/docs/resources/poll#end-poll On success the callback will contain a dpp::message object representing the message containing the poll in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ poll_get_answer_voters() [1/2]

void dpp::cluster::poll_get_answer_voters | ( | const message & | m,
|  | uint32_t | answer_id,
|  | snowflake | after,
|  | uint64_t | limit,
|  | command_completion_event_t | callback = utility::log_error() )

Get a list of users that voted for this specific answer.

Parameters

  m | Message that contains the poll to retrieve the answers from
  answer_id | ID of the answer to retrieve votes from (see poll_answer::answer_id)
  after | Users after this ID should be retrieved if this is set to non-zero
  limit | This number of users maximum should be returned, up to 100
  callback | Function to call when the API call completes.

See also
  https://discord.com/developers/docs/resources/poll#get-answer-voters On success the callback will contain a dpp::user_map object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ poll_get_answer_voters() [2/2]

void dpp::cluster::poll_get_answer_voters | ( | snowflake | message_id,
|  | snowflake | channel_id,
|  | uint32_t | answer_id,
|  | snowflake | after,
|  | uint64_t | limit,
|  | command_completion_event_t | callback = utility::log_error() )

Get a list of users that voted for this specific answer.

Parameters

  message_id | ID of the message with the poll to retrieve the answers from
  channel_id | ID of the channel with the poll to retrieve the answers from
  answer_id | ID of the answer to retrieve votes from (see poll_answer::answer_id)
  after | Users after this ID should be retrieved if this is set to non-zero
  limit | This number of users maximum should be returned, up to 100
  callback | Function to call when the API call completes.

See also
  https://discord.com/developers/docs/resources/poll#get-answer-voters On success the callback will contain a dpp::user_map object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ post_rest()

void dpp::cluster::post_rest | ( | const std::string & | endpoint,
|  | const std::string & | major_parameters,
|  | const std::string & | parameters,
|  | http_method | method,
|  | const std::string & | postdata,
|  | json_encode_t | callback,
|  | const std::string & | filename = "",
|  | const std::string & | filecontent = "",
|  | const std::string & | filemimetype = "",
|  | const std::string & | protocol = "1.1" )

Post a REST request. Where possible use a helper method instead like message_create.

Parameters

  endpoint | Endpoint to post to, e.g. /api/guilds
  major_parameters | Major parameters for the endpoint e.g. a guild id
  parameters | Minor parameters for the API request
  method | Method, e.g. GET, POST
  postdata | Post data (usually JSON encoded)
  callback | Function to call when the HTTP call completes. The callback parameter will contain amongst other things, the decoded json.
  filename | Filename to post for POST requests (for uploading files)
  filecontent | File content to post for POST requests (for uploading files)
  filemimetype | File content to post for POST requests (for uploading files)
  protocol | HTTP protocol to use (1.0 and 1.1 are supported)

## ◆ post_rest_multipart()

void dpp::cluster::post_rest_multipart | ( | const std::string & | endpoint,
|  | const std::string & | major_parameters,
|  | const std::string & | parameters,
|  | http_method | method,
|  | const std::string & | postdata,
|  | json_encode_t | callback,
|  | const std::vector< message_file_data > & | file_data = {} )

Post a multipart REST request. Where possible use a helper method instead like message_create.

Parameters

  endpoint | Endpoint to post to, e.g. /api/guilds
  major_parameters | Major parameters for the endpoint e.g. a guild id
  parameters | Minor parameters for the API request
  method | Method, e.g. GET, POST
  postdata | Post data (usually JSON encoded)
  callback | Function to call when the HTTP call completes. The callback parameter will contain amongst other things, the decoded json.
  file_data | List of files to post for POST requests (for uploading files)

## ◆ queue_work()

void dpp::cluster::queue_work | ( | int | priority,
|  | work_unit | task )

Place some arbitrary work into the thread pool for execution when time permits.

Work units are fetched into threads on the thread pool from the queue in order of priority, lowest numeric values first. Low numeric values should be reserved for API replies from Discord, guild creation events, etc.

Parameters

  priority | Priority of the work unit
  task | Task to queue

## ◆ register_command() [1/2]

template<typename F>
requires (utility::callable_returns<F, dpp::task<void>, const slashcommand_t&>)

bool dpp::cluster::register_command | ( | const std::string & | name,
|  | F && | handler )

inline

Register a coroutine-based slash command handler.

Parameters

  name | The name of the slash command to register.
  handler | A coroutine handler function of type co_slashcommand_handler_t.

Returns
  bool Returns true if the command was registered successfully, or false if the command with the same name already exists.

## ◆ register_command() [2/2]

template<typename F>

std::enable_if_t< utility::callable_returns_v< F, void, const slashcommand_t & >, bool > dpp::cluster::register_command | ( | const std::string & | name,
|  | F && | handler )

inline

Register a slash command handler.

Parameters

  name | The name of the slash command to register
  handler | A handler function of type slashcommand_handler_t

Returns
  bool Returns true if the command was registered successfully, or false if the command with the same name already exists

## ◆ request()

void dpp::cluster::request | ( | const std::string & | url,
|  | http_method | method,
|  | http_completion_event | callback,
|  | const std::string & | postdata = "",
|  | const std::string & | mimetype = "text/plain",
|  | const std::multimap< std::string, std::string > & | headers = {},
|  | const std::string & | protocol = "1.1" )

Make a HTTP(S) request. For use when wanting asynchronous access to HTTP APIs outside of Discord.

Parameters

  url | Full URL to post to, e.g. https://api.somewhere.com/v1/foo/
  method | Method, e.g. GET, POST
  callback | Function to call when the HTTP call completes. No processing is done on the returned data.
  postdata | POST data
  mimetype | MIME type of POST data
  headers | Headers to send with the request
  protocol | HTTP protocol to use (1.1 and 1.0 are supported)

## ◆ role_create()

void dpp::cluster::role_create | ( | const class role & | r,
|  | command_completion_event_t | callback = utility::log_error() )

Create a role on a guild.

Create a new role for the guild. Requires the MANAGE_ROLES permission. Returns the new role object on success. Fires a Guild Role Create Gateway event.

See also
  https://discord.com/developers/docs/resources/guild#create-guild-role

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  r | Role to create (guild ID is encapsulated in the role object)
  callback | Function to call when the API call completes. On success the callback will contain a dpp::role object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ role_delete()

void dpp::cluster::role_delete | ( | snowflake | guild_id,
|  | snowflake | role_id,
|  | command_completion_event_t | callback = utility::log_error() )

Delete a role.

Requires the MANAGE_ROLES permission. Fires a Guild Role Delete Gateway event.

See also
  https://discord.com/developers/docs/resources/guild#delete-guild-role

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  guild_id | Guild ID to delete the role on
  role_id | Role ID to delete
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ role_edit()

void dpp::cluster::role_edit | ( | const class role & | r,
|  | command_completion_event_t | callback = utility::log_error() )

Edit a role on a guild.

Requires the MANAGE_ROLES permission. Returns the updated role on success. Fires a Guild Role Update Gateway event.

See also
  https://discord.com/developers/docs/resources/guild#modify-guild-role

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  r | Role to edit
  callback | Function to call when the API call completes. On success the callback will contain a dpp::role object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ roles_edit_position()

void dpp::cluster::roles_edit_position | ( | snowflake | guild_id,
|  | const std::vector< role > & | roles,
|  | command_completion_event_t | callback = utility::log_error() )

Edit multiple role's position in a guild. Returns a list of all roles of the guild on success.

Modify the positions of a set of role objects for the guild. Requires the MANAGE_ROLES permission. Fires multiple Guild Role Update Gateway events.

See also
  https://discord.com/developers/docs/resources/guild#modify-guild-role-positions

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

Parameters

  guild_id | Guild ID to change the roles position on
  roles | Vector of roles to change the positions of
  callback | Function to call when the API call completes. On success the callback will contain a dpp::role_map object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ roles_get()

void dpp::cluster::roles_get | ( | snowflake | guild_id,
|  | command_completion_event_t | callback )

Get a role for a guild.

See also
  https://discord.com/developers/docs/resources/guild#get-guild-roles

Parameters

  guild_id | Guild ID to get role for
  callback | Function to call when the API call completes. On success the callback will contain a dpp::role_map object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ set_audit_reason()

cluster & dpp::cluster::set_audit_reason | ( | const std::string & | reason | ) |

Set the audit log reason for the next REST call to be made. This is set per-thread, so you must ensure that if you call this method, your request that is associated with the reason happens on the same thread where you set the reason. Once the next call is made, the audit log reason is cleared for this thread automatically.

Example:

bot.set_audit_reason("Too much abusive content")
.channel_delete(my_channel_id);

Parameters

  reason | The reason to set for the next REST call on this thread

Returns
  cluster& Reference to self for chaining.

## ◆ set_default_gateway()

cluster & dpp::cluster::set_default_gateway | ( | const std::string & | default_gateway | ) |

Sets the address of the default gateway, for connecting the websockets.

Returns
  cluster& Reference to self for chaining.

## ◆ set_dm_channel()

void dpp::cluster::set_dm_channel | ( | snowflake | user_id,
|  | snowflake | channel_id )

Set the dm channel id for a user id.

Parameters

  user_id | user id to set the dm channel for
  channel_id | dm channel to set

## ◆ set_presence()

void dpp::cluster::set_presence | ( | const class dpp::presence & | p | ) |

Set the presence for all shards on the cluster.

Parameters

  p | The presence to set. Only the online status and the first activity are sent.

## ◆ set_request_timeout()

cluster & dpp::cluster::set_request_timeout | ( | uint16_t | timeout | ) |

Sets the request timeout.

Parameters

  timeout | The length of time (in seconds) that requests are allowed to take. Default: 20.

Returns
  cluster& Reference to self for chaining.

## ◆ set_websocket_protocol()

cluster & dpp::cluster::set_websocket_protocol | ( | websocket_protocol_t | mode | ) |

Set the websocket protocol for all shards on this cluster. You should call this method before cluster::start. Generally ws_etf is faster, but provides less facilities for debugging should something go wrong. It is recommended to use ETF in production and JSON in development.

Parameters

  mode | websocket protocol to use, either ws_json or ws_etf.

Returns
  cluster& Reference to self for chaining.

Exceptions

  dpp::logic_exception | If called after the cluster is started (this is not supported)

## ◆ shutdown()

void dpp::cluster::shutdown | ( |  | ) |

End cluster execution without destructing it. To restart the cluster, call cluster::start() again.

## ◆ skus_get()

void dpp::cluster::skus_get | ( | command_completion_event_t | callback = utility::log_error() | ) |

Returns all SKUs for a given application.

Note
  Because of how Discord's SKU and subscription systems work, you will see two SKUs for your premium offering. For integration and testing entitlements, you should use the SKU with type: 5.

See also
  https://discord.com/developers/docs/monetization/skus#list-skus

Parameters

  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ stage_instance_create()

void dpp::cluster::stage_instance_create | ( | const stage_instance & | instance,
|  | command_completion_event_t | callback = utility::log_error() )

Create a stage instance on a stage channel.

See also
  https://discord.com/developers/docs/resources/stage-instance#create-stage-instance

Parameters

  instance | Stage instance to create
  callback | User function to execute when the api call completes On success the callback will contain a dpp::stage_instance object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

## ◆ stage_instance_delete()

void dpp::cluster::stage_instance_delete | ( | const snowflake | channel_id,
|  | command_completion_event_t | callback = utility::log_error() )

Delete a stage instance.

See also
  https://discord.com/developers/docs/resources/stage-instance#delete-stage-instance

Parameters

  channel_id | ID of the associated channel
  callback | User function to execute when the api call completes On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

## ◆ stage_instance_edit()

void dpp::cluster::stage_instance_edit | ( | const stage_instance & | instance,
|  | command_completion_event_t | callback = utility::log_error() )

Edit a stage instance.

See also
  https://discord.com/developers/docs/resources/stage-instance#modify-stage-instance

Parameters

  instance | Stage instance to edit
  callback | User function to execute when the api call completes On success the callback will contain a dpp::stage_instance object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

## ◆ stage_instance_get()

void dpp::cluster::stage_instance_get | ( | const snowflake | channel_id,
|  | command_completion_event_t | callback )

Get the stage instance associated with the channel id, if it exists.

See also
  https://discord.com/developers/docs/resources/stage-instance#get-stage-instance

Parameters

  channel_id | ID of the associated channel
  callback | User function to execute when the api call completes On success the callback will contain a dpp::stage_instance object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ start()

void dpp::cluster::start | ( | start_type | return_after = st_wait | ) |

Start the cluster, connecting all its shards.

Returns once all shards are connected if return_after is true, otherwise enters an infinite loop while the shards run.

Parameters

  return_after | If true the bot will return to your program after starting shards, if false this function will never return.

## ◆ start_timer() [1/2]

template<std::invocable< timer > T, std::invocable< timer > U = std::function<void(timer)>>
requires ( dpp::awaitable_type<typename std::invoke_result<T, timer>::type> && std::copy_constructible<std::decay_t<T>> && // N4988 [func.wrap.func.con]/10.1 - std::function requires a copy constructible argument std::copy_constructible<std::decay_t<U>> )

timer dpp::cluster::start_timer | ( | T && | on_tick,
|  | uint64_t | frequency,
|  | U && | on_stop = {} )

inline

Start a coroutine timer. Every frequency seconds, the callback is called.

Parameters

  on_tick | The callback lambda to call for this timer when ticked
  on_stop | The callback lambda to call for this timer when it is stopped
  frequency | How often to tick the timer in seconds

Returns
  timer A handle to the timer, used to remove that timer later

## ◆ start_timer() [2/2]

timer dpp::cluster::start_timer | ( | timer_callback_t | on_tick,
|  | uint64_t | frequency,
|  | timer_callback_t | on_stop = {} )

Start a timer. Every frequency seconds, the callback is called.

Parameters

  on_tick | The callback lambda to call for this timer when ticked
  on_stop | The callback lambda to call for this timer when it is stopped
  frequency | How often to tick the timer in seconds

Returns
  timer A handle to the timer, used to remove that timer later

## ◆ sticker_packs_get()

void dpp::cluster::sticker_packs_get | ( | command_completion_event_t | callback | ) |

Get a list of available sticker packs.

See also
  https://discord.com/developers/docs/resources/sticker#list-sticker-packs

Parameters

  callback | Function to call when the API call completes. On success the callback will contain a dpp::sticker_pack_map object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ stop_timer()

bool dpp::cluster::stop_timer | ( | timer | t | ) |

Stop a ticking timer.

Parameters

  t | Timer handle received from cluster::start_timer

Returns
  bool True if the timer was stopped, false if it did not exist

Note
  If the timer has an on_stop lambda, the on_stop lambda will be called.

## ◆ template_get()

void dpp::cluster::template_get | ( | const std::string & | code,
|  | command_completion_event_t | callback )

Get a template.

See also
  https://discord.com/developers/docs/resources/guild-template#get-guild-template

Parameters

  code | Template code
  callback | Function to call when the API call completes. On success the callback will contain a dpp::dtemplate object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ thread_create()

void dpp::cluster::thread_create | ( | const std::string & | thread_name,
|  | snowflake | channel_id,
|  | uint16_t | auto_archive_duration,
|  | channel_type | thread_type,
|  | bool | invitable,
|  | uint16_t | rate_limit_per_user,
|  | command_completion_event_t | callback = utility::log_error() )

Create a thread.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  https://discord.com/developers/docs/resources/channel#start-thread-without-message

Parameters

  thread_name | Name of the thread
  channel_id | Channel in which thread to create
  auto_archive_duration | Duration after which thread auto-archives. Can be set to - 60, 1440 (for boosted guilds can also be: 4320, 10080)
  thread_type | Type of thread - CHANNEL_PUBLIC_THREAD, CHANNEL_ANNOUNCEMENT_THREAD, CHANNEL_PRIVATE_THREAD
  invitable | whether non-moderators can add other non-moderators to a thread; only available when creating a private thread
  rate_limit_per_user | amount of seconds a user has to wait before sending another message (0-21600); bots, as well as users with the permission manage_messages, manage_thread, or manage_channel, are unaffected
  callback | Function to call when the API call completes. On success the callback will contain a dpp::thread object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ thread_create_in_forum()

void dpp::cluster::thread_create_in_forum | ( | const std::string & | thread_name,
|  | snowflake | channel_id,
|  | const message & | msg,
|  | auto_archive_duration_t | auto_archive_duration,
|  | uint16_t | rate_limit_per_user,
|  | std::vector< snowflake > | applied_tags = {},
|  | command_completion_event_t | callback = utility::log_error() )

Create a thread in a forum or media channel.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  https://discord.com/developers/docs/resources/channel#start-thread-in-forum-channel

Parameters

  thread_name | Name of the forum thread
  channel_id | Forum channel in which thread to create
  msg | The message to start the thread with
  auto_archive_duration | Duration to automatically archive the thread after recent activity
  rate_limit_per_user | amount of seconds a user has to wait before sending another message (0-21600); bots, as well as users with the permission manage_messages, manage_thread, or manage_channel, are unaffected
  applied_tags | List of IDs of forum tags (dpp::forum_tag) to apply to this thread
  callback | Function to call when the API call completes. On success the callback will contain a dpp::thread object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ thread_create_with_message()

void dpp::cluster::thread_create_with_message | ( | const std::string & | thread_name,
|  | snowflake | channel_id,
|  | snowflake | message_id,
|  | uint16_t | auto_archive_duration,
|  | uint16_t | rate_limit_per_user,
|  | command_completion_event_t | callback = utility::log_error() )

Create a thread with a message (Discord: ID of a thread is same as message ID).

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  https://discord.com/developers/docs/resources/channel#start-thread-from-message

Parameters

  thread_name | Name of the thread
  channel_id | Channel in which thread to create
  message_id | message to start thread with
  auto_archive_duration | Duration after which thread auto-archives. Can be set to - 60, 1440 (for boosted guilds can also be: 4320, 10080)
  rate_limit_per_user | amount of seconds a user has to wait before sending another message (0-21600); bots, as well as users with the permission manage_messages, manage_thread, or manage_channel, are unaffected
  callback | Function to call when the API call completes. On success the callback will contain a dpp::thread object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ thread_edit()

void dpp::cluster::thread_edit | ( | const thread & | t,
|  | command_completion_event_t | callback = utility::log_error() )

Edit a thread.

Note
  This method supports audit log reasons set by the cluster::set_audit_reason() method.

See also
  https://discord.com/developers/docs/topics/threads#editing-deleting-threads

Parameters

  t | Thread to edit
  callback | Function to call when the API call completes. On success the callback will contain a dpp::thread object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ thread_get()

void dpp::cluster::thread_get | ( | snowflake | thread_id,
|  | command_completion_event_t | callback )

Get the thread specified by thread_id. This uses the same call as dpp::cluster::channel_get but returns a thread object.

See also
  https://discord.com/developers/docs/resources/channel#get-channel

Parameters

  thread_id | The id of the thread to obtain.
  callback | Function to call when the API call completes On success the callback will contain a dpp::thread object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ thread_member_add()

void dpp::cluster::thread_member_add | ( | snowflake | thread_id,
|  | snowflake | user_id,
|  | command_completion_event_t | callback = utility::log_error() )

Add a member to a thread.

See also
  https://discord.com/developers/docs/resources/channel#add-thread-member

Parameters

  thread_id | Thread ID to add to
  user_id | Member ID to add
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ thread_member_get()

void dpp::cluster::thread_member_get | ( | const snowflake | thread_id,
|  | const snowflake | user_id,
|  | command_completion_event_t | callback )

Get a thread member.

See also
  https://discord.com/developers/docs/resources/channel#get-thread-member

Parameters

  thread_id | Thread to get member for
  user_id | ID of the user to get
  callback | Function to call when the API call completes On success the callback will contain a dpp::thread_member object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ thread_member_remove()

void dpp::cluster::thread_member_remove | ( | snowflake | thread_id,
|  | snowflake | user_id,
|  | command_completion_event_t | callback = utility::log_error() )

Remove a member from a thread.

See also
  https://discord.com/developers/docs/resources/channel#remove-thread-member

Parameters

  thread_id | Thread ID to remove from
  user_id | Member ID to remove
  callback | Function to call when the API call completes. On success the callback will contain a dpp::confirmation object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ thread_members_get()

void dpp::cluster::thread_members_get | ( | snowflake | thread_id,
|  | command_completion_event_t | callback )

Get members of a thread.

See also
  https://discord.com/developers/docs/resources/channel#list-thread-members

Parameters

  thread_id | Thread to get members for
  callback | Function to call when the API call completes On success the callback will contain a dpp::thread_member_map object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ threads_get_active()

void dpp::cluster::threads_get_active | ( | snowflake | guild_id,
|  | command_completion_event_t | callback )

Get all active threads in the guild, including public and private threads. Threads are ordered by their id, in descending order.

See also
  https://discord.com/developers/docs/resources/guild#list-active-guild-threads

Parameters

  guild_id | Guild to get active threads for
  callback | Function to call when the API call completes On success the callback will contain a dpp::active_threads object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ threads_get_joined_private_archived()

void dpp::cluster::threads_get_joined_private_archived | ( | snowflake | channel_id,
|  | snowflake | before_id,
|  | uint16_t | limit,
|  | command_completion_event_t | callback )

Get private archived threads in a channel which current user has joined (Sorted by ID in descending order).

See also
  https://discord.com/developers/docs/resources/channel#list-joined-private-archived-threads

Parameters

  channel_id | Channel to get public archived threads for
  before_id | Get threads before this id
  limit | Number of threads to get
  callback | Function to call when the API call completes On success the callback will contain a dpp::thread_map object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ threads_get_private_archived()

void dpp::cluster::threads_get_private_archived | ( | snowflake | channel_id,
|  | time_t | before_timestamp,
|  | uint16_t | limit,
|  | command_completion_event_t | callback )

Get private archived threads in a channel (Sorted by archive_timestamp in descending order).

See also
  https://discord.com/developers/docs/resources/channel#list-private-archived-threads

Parameters

  channel_id | Channel to get public archived threads for
  before_timestamp | Get threads archived before this timestamp
  limit | Number of threads to get
  callback | Function to call when the API call completes On success the callback will contain a dpp::thread_map object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ threads_get_public_archived()

void dpp::cluster::threads_get_public_archived | ( | snowflake | channel_id,
|  | time_t | before_timestamp,
|  | uint16_t | limit,
|  | command_completion_event_t | callback )

Get public archived threads in a channel (Sorted by archive_timestamp in descending order).

See also
  https://discord.com/developers/docs/resources/channel#list-public-archived-threads

Parameters

  channel_id | Channel to get public archived threads for
  before_timestamp | Get threads archived before this timestamp
  limit | Number of threads to get
  callback | Function to call when the API call completes On success the callback will contain a dpp::thread_map object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ tick_timers()

void dpp::cluster::tick_timers | ( |  | ) |

Tick active timers.

## ◆ unregister_command()

bool dpp::cluster::unregister_command | ( | const std::string & | name | ) |

Unregister a slash command.

This function unregisters (removes) a previously registered slash command by name. If the command is successfully removed, it returns true.

Parameters

  name | The name of the slash command to unregister.

Returns
  bool Returns true if the command was successfully unregistered, or false if the command was not found.

## ◆ uptime()

dpp::utility::uptime dpp::cluster::uptime | ( |  | ) |

Returns the uptime of the cluster.

Returns
  dpp::utility::uptime The uptime of the cluster

## ◆ user_application_role_connection_get()

void dpp::cluster::user_application_role_connection_get | ( | snowflake | application_id,
|  | command_completion_event_t | callback )

Get user application role connection.

See also
  https://discord.com/developers/docs/resources/user#get-user-application-role-connection

Parameters

  application_id | The application ID
  callback | Function to call when the API call completes. On success the callback will contain a dpp::application_role_connection object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ user_application_role_connection_update()

void dpp::cluster::user_application_role_connection_update | ( | snowflake | application_id,
|  | const application_role_connection & | connection,
|  | command_completion_event_t | callback = utility::log_error() )

Update user application role connection.

See also
  https://discord.com/developers/docs/resources/user#update-user-application-role-connection

Parameters

  application_id | The application ID
  connection | The application role connection to update
  callback | Function to call when the API call completes. On success the callback will contain a dpp::application_role_connection object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ user_get()

void dpp::cluster::user_get | ( | snowflake | user_id,
|  | command_completion_event_t | callback )

Get a user by id, without using the cache.

See also
  https://discord.com/developers/docs/resources/user#get-user

Parameters

  user_id | User ID to retrieve
  callback | Function to call when the API call completes. On success the callback will contain a dpp::user_identified object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

Note
  The user_identified object is a subclass of dpp::user which contains further details if you have the oauth2 identify or email scopes. If you do not have these scopes, these fields are empty. You can safely convert a user_identified to user with dynamic_cast.
  unless you want something special from dpp::user_identified or you've turned off caching, you have no need to call this. Call dpp::find_user instead that looks up the user in the cache rather than a REST call.

## ◆ user_get_cached()

void dpp::cluster::user_get_cached | ( | snowflake | user_id,
|  | command_completion_event_t | callback )

Get a user by id, checking in the cache first.

See also
  https://discord.com/developers/docs/resources/user#get-user

Parameters

  user_id | User ID to retrieve
  callback | Function to call when the API call completes. On success the callback will contain a dpp::user_identified object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

Note
  The user_identified object is a subclass of dpp::user which contains further details if you have the oauth2 identify or email scopes. If you do not have these scopes, these fields are empty. You can safely convert a user_identified to user with dynamic_cast.
  If the user is found in the cache, special values set in dpp::user_identified will be undefined. This call should be used where you want to for example resolve a user who may no longer be in the bot's guilds, for something like a ban log message.

## ◆ user_get_voice_state()

void dpp::cluster::user_get_voice_state | ( | snowflake | guild_id,
|  | snowflake | user_id,
|  | command_completion_event_t | callback )

Get a user's voice state in a guild without a Gateway connection.

See also
  https://discord.com/developers/docs/resources/voice#get-user-voice-state

Parameters

  guild_id | Guild to get the voice state for
  user_id | The user to get the voice state of
  callback | Function to call when the API call completes. On success the callback will contain a dpp::voicestate object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## ◆ user_set_voice_state()

void dpp::cluster::user_set_voice_state | ( | snowflake | user_id,
|  | snowflake | guild_id,
|  | snowflake | channel_id,
|  | bool | suppress = false,
|  | command_completion_event_t | callback = utility::log_error() )

Set a user's voice state on a stage channel.

Caveats

There are currently several caveats for this endpoint:

- channel_id must currently point to a stage channel.
- User must already have joined channel_id.
- You must have the MUTE_MEMBERS permission. (Since suppression is the only thing that is available currently)
- When unsuppressed, non-bot users will have their request_to_speak_timestamp set to the current time. Bot users will not.
- When suppressed, the user will have their request_to_speak_timestamp removed.

See also
  https://discord.com/developers/docs/resources/guild#modify-user-voice-state

Parameters

  user_id | The user to set the voice state of
  guild_id | Guild to set voice state on
  channel_id | Stage channel to set voice state on
  callback | Function to call when the API call completes.
  suppress | True if the user's audio should be suppressed, false if it should not On success the callback will contain a dpp::scheduled_event object in confirmation_callback_t::value. On failure, the value is undefined and confirmation_callback_t::is_error() method will return true. You can obtain full error details with confirmation_callback_t::get_error().

## Friends And Related Symbol Documentation

## ◆ discord_client

friend class discord_client

friend

## ◆ discord_voice_client

friend class discord_voice_client

friend

## Member Data Documentation

## ◆ cache_policy

cache_policy_t dpp::cluster::cache_policy

Current cache policy for the cluster.

## ◆ cluster_id

uint32_t dpp::cluster::cluster_id

ID of this cluster, between 0 and MAXCLUSTERS-1 inclusive.

## ◆ intents

uint32_t dpp::cluster::intents

Current bitmask of gateway intents.

## ◆ last_identify

time_t dpp::cluster::last_identify

Last time the bot sent an IDENTIFY.

## ◆ maxclusters

uint32_t dpp::cluster::maxclusters

Total number of clusters that are active.

## ◆ me

dpp::user dpp::cluster::me

The details of the bot user. This is assumed to be identical across all shards in the cluster. Each connecting shard updates this information.

## ◆ numshards

uint32_t dpp::cluster::numshards

Total number of shards across all clusters.

## ◆ on_autocomplete

event_router_t<autocomplete_t> dpp::cluster::on_autocomplete

Called when an auto completed field needs suggestions to present to the user This is triggered by discord when option choices have auto completion enabled which you have associated with a dpp::slashcommand.

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type autocomplete_t&, and returns void.

## ◆ on_automod_rule_create

event_router_t<automod_rule_create_t> dpp::cluster::on_automod_rule_create

Called when a new automod rule is created.

See also
  https://discord.com/developers/docs/topics/gateway-events#auto-moderation-rule-create

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type automod_rule_create_t&, and returns void.

## ◆ on_automod_rule_delete

event_router_t<automod_rule_delete_t> dpp::cluster::on_automod_rule_delete

Called when an automod rule is deleted.

See also
  https://discord.com/developers/docs/topics/gateway-events#auto-moderation-rule-delete

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type automod_rule_delete_t&, and returns void.

## ◆ on_automod_rule_execute

event_router_t<automod_rule_execute_t> dpp::cluster::on_automod_rule_execute

Called when an automod rule is triggered/executed.

See also
  https://discord.com/developers/docs/topics/gateway-events#auto-moderation-action-execution

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type automod_rule_execute_t&, and returns void.

## ◆ on_automod_rule_update

event_router_t<automod_rule_update_t> dpp::cluster::on_automod_rule_update

Called when an automod rule is updated.

See also
  https://discord.com/developers/docs/topics/gateway-events#auto-moderation-rule-update

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type automod_rule_update_t&, and returns void.

## ◆ on_button_click

event_router_t<button_click_t> dpp::cluster::on_button_click

Called when a button is clicked attached to a message. Button clicks are triggered by discord when buttons are clicked which you have associated with a message using dpp::component.

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type button_click_t&, and returns void.

## ◆ on_channel_create

event_router_t<channel_create_t> dpp::cluster::on_channel_create

Called when a new channel is created on a guild.

Warning
  If the cache policy has disabled channel caching, the pointer in this event will become invalid after the event ends. You should make a copy of any data you wish to preserve beyond this.

See also
  https://discord.com/developers/docs/topics/gateway-events#channel-create

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type channel_create_t&, and returns void.

## ◆ on_channel_delete

event_router_t<channel_delete_t> dpp::cluster::on_channel_delete

Called when a channel is deleted from a guild. The channel will still be temporarily available in the cache. Pointers to the channel should not be retained long-term as they will be deleted by the garbage collector.

See also
  https://discord.com/developers/docs/topics/gateway-events#channel-delete

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type channel_delete_t&, and returns void.

## ◆ on_channel_pins_update

event_router_t<channel_pins_update_t> dpp::cluster::on_channel_pins_update

Called when a message is pinned. Note that the pinned message is not returned to this event, just the timestamp of the last pinned message.

See also
  https://discord.com/developers/docs/topics/gateway-events#channel-pins-update

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type channel_pins_update_t&, and returns void.

## ◆ on_channel_update

event_router_t<channel_update_t> dpp::cluster::on_channel_update

Called when a channel is edited on a guild. The new channel details have already been applied to the guild when you receive this event.

See also
  https://discord.com/developers/docs/topics/gateway-events#channel-update

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type channel_update_t&, and returns void.

## ◆ on_entitlement_create

event_router_t<entitlement_create_t> dpp::cluster::on_entitlement_create

Called when a user subscribes to an SKU.

See also
  https://discord.com/developers/docs/monetization/entitlements#new-entitlement

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type channel_delete_t&, and returns void.

## ◆ on_entitlement_delete

event_router_t<entitlement_delete_t> dpp::cluster::on_entitlement_delete

Called when a user's entitlement is deleted. These events are infrequent and only occur if Discord issues a refund, or Discord removes an entitlement via "internal tooling". Entitlements are not deleted when they expire.

See also
  https://discord.com/developers/docs/monetization/entitlements#deleted-entitlement

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type channel_update_t&, and returns void.

## ◆ on_entitlement_update

event_router_t<entitlement_update_t> dpp::cluster::on_entitlement_update

Called when a user's subscription renews for the next billing period. The ends_at field will have an updated value with the new expiration date.

See also
  https://discord.com/developers/docs/monetization/entitlements#updated-entitlement

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type channel_update_t&, and returns void.

## ◆ on_form_submit

event_router_t<form_submit_t> dpp::cluster::on_form_submit

Called when a modal dialog is submitted. Form submits are triggered by discord when modal dialogs are submitted which you have associated with a slash command using dpp::interaction_modal_response.

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type form_submit_t&, and returns void.

## ◆ on_guild_audit_log_entry_create

event_router_t<guild_audit_log_entry_create_t> dpp::cluster::on_guild_audit_log_entry_create

Called when a guild audit log entry is created.

See also
  https://discord.com/developers/docs/topics/gateway-events#guild-audit-log-entry-create

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type guild_audit_log_entry_create_t&, and returns void.

## ◆ on_guild_ban_add

event_router_t<guild_ban_add_t> dpp::cluster::on_guild_ban_add

Called when a ban is added to a guild.

Warning
  If the cache policy has disabled guild caching, the pointer to the guild in this event may be nullptr.

See also
  https://discord.com/developers/docs/topics/gateway-events#guild-ban-add

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type guild_ban_add_t&, and returns void.

## ◆ on_guild_ban_remove

event_router_t<guild_ban_remove_t> dpp::cluster::on_guild_ban_remove

Called when a ban is removed from a guild.

Warning
  If the cache policy has disabled guild caching, the pointer to the guild in this event may be nullptr.

See also
  https://discord.com/developers/docs/topics/gateway-events#guild-ban-remove

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type guild_ban_remove_t&, and returns void.

## ◆ on_guild_create

event_router_t<guild_create_t> dpp::cluster::on_guild_create

Called when a new guild is created. D++ will request members for the guild for its cache using guild_members_chunk.

Warning
  If the cache policy has disabled guild caching, the pointer in this event will become invalid after the event ends. You should make a copy of any data you wish to preserve beyond this.

See also
  https://discord.com/developers/docs/topics/gateway-events#guild-create

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type guild_create_t&, and returns void.

## ◆ on_guild_delete

event_router_t<guild_delete_t> dpp::cluster::on_guild_delete

Called when a guild is deleted. A guild can be deleted via the bot being kicked, the bot leaving the guild explicitly with dpp::cluster::guild_delete, or via the guild being unavailable due to an outage.

See also
  https://discord.com/developers/docs/topics/gateway-events#guild-delete

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type guild_delete_t&, and returns void.

## ◆ on_guild_emojis_update

event_router_t<guild_emojis_update_t> dpp::cluster::on_guild_emojis_update

Called when new emojis are added to a guild. The complete set of emojis is sent every time.

Warning
  If the cache policy has disabled guild caching, the pointer to the guild in this event may be nullptr.

See also
  https://discord.com/developers/docs/topics/gateway-events#guild-emojis-update

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type guild_emojis_update_t&, and returns void.

## ◆ on_guild_integrations_update

event_router_t<guild_integrations_update_t> dpp::cluster::on_guild_integrations_update

Called when an integration is updated for a guild. This returns the complete list. An integration is a connection to a guild of a user's associated accounts, e.g. youtube or twitch, for automatic assignment of roles etc.

Warning
  If the cache policy has disabled guild caching, the pointer to the guild in this event may be nullptr.

See also
  https://discord.com/developers/docs/topics/gateway-events#guild-integrations-update

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type guild_integrations_update_t&, and returns void.

## ◆ on_guild_join_request_delete

event_router_t<guild_join_request_delete_t> dpp::cluster::on_guild_join_request_delete

on guild join request delete. Triggered when a user declines the membership screening questionnaire for a guild.

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type guild_join_request_delete_t&, and returns void.

## ◆ on_guild_member_add

event_router_t<guild_member_add_t> dpp::cluster::on_guild_member_add

Called when a new member joins a guild.

Warning
  If the cache policy has disabled guild caching, the pointer to the guild in this event may be nullptr.

See also
  https://discord.com/developers/docs/topics/gateway-events#guild-member-add

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type guild_member_add_t&, and returns void.

## ◆ on_guild_member_remove

event_router_t<guild_member_remove_t> dpp::cluster::on_guild_member_remove

Called when a user leaves a guild (either through being kicked, or choosing to leave).

See also
  https://discord.com/developers/docs/topics/gateway-events#guild-member-remove

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type guild_member_remove_t&, and returns void.

## ◆ on_guild_member_update

event_router_t<guild_member_update_t> dpp::cluster::on_guild_member_update

Called when details of a guild member (e.g. their roles or nickname) are updated.

Warning
  If the cache policy has disabled guild caching, the pointer to the guild in this event may be nullptr.

See also
  https://discord.com/developers/docs/topics/gateway-events#guild-member-update

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type guild_member_update_t&, and returns void.

## ◆ on_guild_members_chunk

event_router_t<guild_members_chunk_t> dpp::cluster::on_guild_members_chunk

Called when a set of members is received for a guild. D++ will request these for all new guilds if needed, after the cluster::on_guild_create events.

See also
  https://discord.com/developers/docs/topics/gateway-events#guild-members-chunk

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type guild_members_chunk_t&, and returns void.

## ◆ on_guild_role_create

event_router_t<guild_role_create_t> dpp::cluster::on_guild_role_create

Called when a new role is created on a guild.

See also
  https://discord.com/developers/docs/topics/gateway-events#guild-role-create

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type guild_role_create_t&, and returns void.

## ◆ on_guild_role_delete

event_router_t<guild_role_delete_t> dpp::cluster::on_guild_role_delete

Called when a role is deleted in a guild.

Warning
  If the cache policy has disabled guild caching, the pointer to the guild in this event may be nullptr.

See also
  https://discord.com/developers/docs/topics/gateway-events#guild-role-delete

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type guild_role_delete_t&, and returns void.

## ◆ on_guild_role_update

event_router_t<guild_role_update_t> dpp::cluster::on_guild_role_update

Called when an existing role is updated on a guild.

Warning
  If the cache policy has disabled guild caching, the pointer to the guild in this event may be nullptr.

See also
  https://discord.com/developers/docs/topics/gateway-events#guild-role-update

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type guild_role_update_t&, and returns void.

## ◆ on_guild_scheduled_event_create

event_router_t<guild_scheduled_event_create_t> dpp::cluster::on_guild_scheduled_event_create

Called when a new scheduled event is created.

Warning
  If the cache policy has disabled guild caching, the pointer to the guild in this event may be nullptr.

See also
  https://discord.com/developers/docs/topics/gateway-events#guild-scheduled-event-create

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type guild_scheduled_event_create_t&, and returns void.

## ◆ on_guild_scheduled_event_delete

event_router_t<guild_scheduled_event_delete_t> dpp::cluster::on_guild_scheduled_event_delete

Called when a new scheduled event is deleted.

Warning
  If the cache policy has disabled guild caching, the pointer to the guild in this event may be nullptr.

See also
  https://discord.com/developers/docs/topics/gateway-events#guild-scheduled-event-delete

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type guild_scheduled_event_delete_t&, and returns void.

## ◆ on_guild_scheduled_event_update

event_router_t<guild_scheduled_event_update_t> dpp::cluster::on_guild_scheduled_event_update

Called when a new scheduled event is updated.

Warning
  If the cache policy has disabled guild caching, the pointer to the guild in this event may be nullptr.

See also
  https://discord.com/developers/docs/topics/gateway-events#guild-scheduled-event-update

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type guild_scheduled_event_update_t&, and returns void.

## ◆ on_guild_scheduled_event_user_add

event_router_t<guild_scheduled_event_user_add_t> dpp::cluster::on_guild_scheduled_event_user_add

Called when a user is added to a scheduled event.

Warning
  If the cache policy has disabled guild caching, the pointer to the guild in this event may be nullptr.

See also
  https://discord.com/developers/docs/topics/gateway-events#guild-scheduled-event-user-add

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type guild_scheduled_event_user_add_t&, and returns void.

## ◆ on_guild_scheduled_event_user_remove

event_router_t<guild_scheduled_event_user_remove_t> dpp::cluster::on_guild_scheduled_event_user_remove

Called when a user is removed from a scheduled event.

Warning
  If the cache policy has disabled guild caching, the pointer to the guild in this event may be nullptr.

See also
  https://discord.com/developers/docs/topics/gateway-events#guild-scheduled-event-user-remove

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type guild_scheduled_event_user_remove_t&, and returns void.

## ◆ on_guild_stickers_update

event_router_t<guild_stickers_update_t> dpp::cluster::on_guild_stickers_update

Called when new stickers are added to a guild. The complete set of stickers is sent every time.

Warning
  If the cache policy has disabled guild caching, the pointer to the guild in this event may be nullptr.

See also
  https://discord.com/developers/docs/topics/gateway-events#guild-stickers-update

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type guild_stickers_update_t&, and returns void.

## ◆ on_guild_update

event_router_t<guild_update_t> dpp::cluster::on_guild_update

Called when details of a guild are updated.

Warning
  If the cache policy has disabled guild caching, the pointer in this event will become invalid after the event ends. You should make a copy of any data you wish to preserve beyond this. If the guild cache is disabled, only changed elements in the updated guild object will be set. all other values will be empty or defaults.

See also
  https://discord.com/developers/docs/topics/gateway-events#guild-update

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type guild_update_t&, and returns void.

## ◆ on_integration_create

event_router_t<integration_create_t> dpp::cluster::on_integration_create

Called when a new integration is attached to a guild by a user. An integration is a connection to a guild of a user's associated accounts, e.g. youtube or twitch, for automatic assignment of roles etc.

Warning
  If the cache policy has disabled guild caching, the pointer to the guild in this event may be nullptr.

See also
  https://discord.com/developers/docs/topics/gateway-events#integration-create

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type integration_create_t&, and returns void.

## ◆ on_integration_delete

event_router_t<integration_delete_t> dpp::cluster::on_integration_delete

Called when an integration is removed by a user. An integration is a connection to a guild of a user's associated accounts, e.g. youtube or twitch, for automatic assignment of roles etc.

Warning
  If the cache policy has disabled guild caching, the pointer to the guild in this event may be nullptr.

See also
  https://discord.com/developers/docs/topics/gateway-events#integration-delete

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type integration_delete_t&, and returns void.

## ◆ on_integration_update

event_router_t<integration_update_t> dpp::cluster::on_integration_update

Called when an integration is updated by a user. This returns details of just the single integration that has changed. An integration is a connection to a guild of a user's associated accounts, e.g. youtube or twitch, for automatic assignment of roles etc.

Warning
  If the cache policy has disabled guild caching, the pointer to the guild in this event may be nullptr.

See also
  https://discord.com/developers/docs/topics/gateway-events#integration-update

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type integration_update_t&, and returns void.

## ◆ on_interaction_create

event_router_t<interaction_create_t> dpp::cluster::on_interaction_create

Called when a new interaction is created. Interactions are created by discord when commands you have registered are issued by a user. For an example of this in action please see Using Slash Commands and Interactions.

See also
  https://discord.com/developers/docs/topics/gateway-events#interaction-create

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type interaction_create_t&, and returns void.
  There are dedicated events to handle slashcommands (See dpp::cluster::on_slashcommand), user context menus (See dpp::cluster::on_user_context_menu) and message context menus (See dpp::cluster::on_message_context_menu)

## ◆ on_invite_create

event_router_t<invite_create_t> dpp::cluster::on_invite_create

Called when a new invite is created for a guild.

Warning
  If the cache policy has disabled guild caching, the pointer to the guild in this event may be nullptr.

See also
  https://discord.com/developers/docs/topics/gateway-events#invite-create

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type invite_create_t&, and returns void.

## ◆ on_invite_delete

event_router_t<invite_delete_t> dpp::cluster::on_invite_delete

Called when an invite is deleted from a guild.

See also
  https://discord.com/developers/docs/topics/gateway-events#invite-delete

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type invite_delete_t&, and returns void.

## ◆ on_log

event_router_t<log_t> dpp::cluster::on_log

Called when a log message is to be written to the log. You can attach any logging system here you wish, e.g. spdlog, or even just a simple use of std::cout or printf. If nothing attaches this log event, then the library will be silent.

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type log_t&, and returns void.

## ◆ on_message_context_menu

event_router_t<message_context_menu_t> dpp::cluster::on_message_context_menu

Called when a user right-clicks or long-presses on a message, where a slash command is bound to the dpp::ctxm_message command type.

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type message_context_menu_t&, and returns void.

## ◆ on_message_create

event_router_t<message_create_t> dpp::cluster::on_message_create

Called when a new message arrives from discord. Note that D++ does not cache messages. If you want to cache these objects you should create something yourself within your bot. Caching of messages is not on the roadmap to be supported as it consumes excessive amounts of RAM. For an example for caching of messages, please see Caching Messages.

See also
  https://discord.com/developers/docs/topics/gateway-events#message-create

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type message_create_t&, and returns void.

## ◆ on_message_delete

event_router_t<message_delete_t> dpp::cluster::on_message_delete

Called when a message is deleted. The message has already been deleted from Discord when you receive this event.

See also
  https://discord.com/developers/docs/topics/gateway-events#message-delete

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type message_delete_t&, and returns void.

## ◆ on_message_delete_bulk

event_router_t<message_delete_bulk_t> dpp::cluster::on_message_delete_bulk

Called when multiple messages are deleted from a channel or DM.

See also
  https://discord.com/developers/docs/topics/gateway-events#message-delete-bulk

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type message_delete_bulk_t&, and returns void.

## ◆ on_message_poll_vote_add

event_router_t<message_poll_vote_add_t> dpp::cluster::on_message_poll_vote_add

Called when a vote is added to a message poll.

See also
  https://discord.com/developers/docs/topics/gateway-events#message-poll-vote-add

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type message_poll_vote_add_t&, and returns void.

## ◆ on_message_poll_vote_remove

event_router_t<message_poll_vote_remove_t> dpp::cluster::on_message_poll_vote_remove

Called when a vote is removed from a message poll.

See also
  https://discord.com/developers/docs/topics/gateway-events#message-poll-vote-remove

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type message_poll_vote_remove_t&, and returns void.

## ◆ on_message_reaction_add

event_router_t<message_reaction_add_t> dpp::cluster::on_message_reaction_add

Called when a new reaction is added to a message.

See also
  https://discord.com/developers/docs/topics/gateway-events#message-reaction-add

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type message_reaction_add_t&, and returns void.

## ◆ on_message_reaction_remove

event_router_t<message_reaction_remove_t> dpp::cluster::on_message_reaction_remove

Called when a single reaction is removed from a message.

See also
  https://discord.com/developers/docs/topics/gateway-events#message-reaction-remove

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type message_reaction_remove_t&, and returns void.

## ◆ on_message_reaction_remove_all

event_router_t<message_reaction_remove_all_t> dpp::cluster::on_message_reaction_remove_all

Called when all reactions are removed from a message.

See also
  https://discord.com/developers/docs/topics/gateway-events#message-reaction-remove-all

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type message_reaction_remove_all_t&, and returns void.

## ◆ on_message_reaction_remove_emoji

event_router_t<message_reaction_remove_emoji_t> dpp::cluster::on_message_reaction_remove_emoji

Called when all reactions for a particular emoji are removed from a message.

See also
  https://discord.com/developers/docs/topics/gateway-events#message-reaction-remove-emoji

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type message_reaction_remove_emoji_t&, and returns void.

## ◆ on_message_update

event_router_t<message_update_t> dpp::cluster::on_message_update

Called when a message is updated (edited).

See also
  https://discord.com/developers/docs/topics/gateway-events#message-update

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type message_update_t&, and returns void.

## ◆ on_presence_update

event_router_t<presence_update_t> dpp::cluster::on_presence_update

Called when a user's presence is updated. To receive these you will need the GUILD_PRESENCES privileged intent. You will receive many of these, very often, and receiving them will significantly increase your bot's CPU usage. If you don't need them it is recommended to not ask for them.

See also
  https://discord.com/developers/docs/topics/gateway-events#presence-update

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type presence_update_t&, and returns void.

## ◆ on_ready

event_router_t<ready_t> dpp::cluster::on_ready

Called when a shard is connected and ready. A set of cluster::on_guild_create events will follow this event.

See also
  https://discord.com/developers/docs/topics/gateway-events#ready

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type ready_t&, and returns void.

## ◆ on_resumed

event_router_t<resumed_t> dpp::cluster::on_resumed

Called when a connection to a shard successfully resumes. A resumed session does not need to re-synchronise guilds, members, etc. This is generally non-fatal and informational only.

See also
  https://discord.com/developers/docs/topics/gateway-events#resumed

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type resumed_t&, and returns void.

## ◆ on_select_click

event_router_t<select_click_t> dpp::cluster::on_select_click

Called when a select menu is clicked attached to a message. Select menu clicks are triggered by discord when select menus are clicked which you have associated with a message using dpp::component.

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type select_click_t&, and returns void.

## ◆ on_slashcommand

event_router_t<slashcommand_t> dpp::cluster::on_slashcommand

Called when a slash command is issued. Only dpp::ctxm_chat_input types of interaction are routed to this event. For an example of this in action please see Using Slash Commands and Interactions.

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type slashcommand_t&, and returns void.

## ◆ on_socket_close

event_router_t<socket_close_t> dpp::cluster::on_socket_close

Called when a file descriptor is removed from the socket engine.

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type socket_close_t&, and returns void.

## ◆ on_stage_instance_create

event_router_t<stage_instance_create_t> dpp::cluster::on_stage_instance_create

Called when a new stage instance is created on a stage channel.

Warning
  If the cache policy has disabled guild caching, the pointer to the guild in this event may be nullptr.

See also
  https://discord.com/developers/docs/topics/gateway-events#stage-instance-create

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type stage_instance_create_t&, and returns void.

## ◆ on_stage_instance_delete

event_router_t<stage_instance_delete_t> dpp::cluster::on_stage_instance_delete

Called when an existing stage instance is deleted from a stage channel.

Warning
  If the cache policy has disabled guild caching, the pointer to the guild in this event may be nullptr.

See also
  https://discord.com/developers/docs/topics/gateway-events#stage-instance-delete

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type stage_instance_delete_t&, and returns void.

## ◆ on_stage_instance_update

event_router_t<stage_instance_update_t> dpp::cluster::on_stage_instance_update

Called when a stage instance is updated.

Warning
  If the cache policy has disabled guild caching, the pointer to the guild in this event may be nullptr.

See also
  https://discord.com/developers/docs/topics/gateway-events#stage-instance-update

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type stage_instance_update_t&, and returns void.

## ◆ on_thread_create

event_router_t<thread_create_t> dpp::cluster::on_thread_create

Called when a thread is created. Note that threads are not cached by D++, but a list of thread IDs is accessible in a guild object.

Warning
  If the cache policy has disabled guild caching, the pointer to the guild in this event may be nullptr.

See also
  https://discord.com/developers/docs/topics/gateway-events#thread-create

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type thread_create_t&, and returns void.

## ◆ on_thread_delete

event_router_t<thread_delete_t> dpp::cluster::on_thread_delete

Called when a thread is deleted.

Warning
  If the cache policy has disabled guild caching, the pointer to the guild in this event may be nullptr.

See also
  https://discord.com/developers/docs/topics/gateway-events#thread-delete

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type thread_delete_t&, and returns void.

## ◆ on_thread_list_sync

event_router_t<thread_list_sync_t> dpp::cluster::on_thread_list_sync

Called when thread list is synced (upon gaining access to a channel). Note that threads are not cached by D++, but a list of thread IDs is accessible in a guild object.

Warning
  If the cache policy has disabled guild caching, the pointer to the guild in this event may be nullptr.

See also
  https://discord.com/developers/docs/topics/gateway-events#thread-list-sync

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type thread_list_sync_t&, and returns void.

## ◆ on_thread_member_update

event_router_t<thread_member_update_t> dpp::cluster::on_thread_member_update

Called when current user's thread member object is updated.

Warning
  If the cache policy has disabled guild caching, the pointer to the guild in this event may be nullptr.

See also
  https://discord.com/developers/docs/topics/gateway-events#thread-member-update

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type thread_member_update_t&, and returns void.

## ◆ on_thread_members_update

event_router_t<thread_members_update_t> dpp::cluster::on_thread_members_update

Called when a thread's member list is updated (without GUILD_MEMBERS intent, is only called for current user).

Warning
  If the cache policy has disabled guild caching, the pointer to the guild in this event may be nullptr.

See also
  https://discord.com/developers/docs/topics/gateway-events#thread-members-update

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type thread_members_update_t&, and returns void.

## ◆ on_thread_update

event_router_t<thread_update_t> dpp::cluster::on_thread_update

Called when a thread is updated.

Warning
  If the cache policy has disabled guild caching, the pointer to the guild in this event may be nullptr.

See also
  https://discord.com/developers/docs/topics/gateway-events#thread-update

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type thread_update_t&, and returns void.

## ◆ on_typing_start

event_router_t<typing_start_t> dpp::cluster::on_typing_start

Called when a user is typing on a channel.

See also
  https://discord.com/developers/docs/topics/gateway-events#typing-start

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type typing_start_t&, and returns void.

## ◆ on_user_context_menu

event_router_t<user_context_menu_t> dpp::cluster::on_user_context_menu

Called when a user right-clicks or long-presses on a user, where a slash command is bound to the dpp::ctxm_user command type.

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type user_context_menu_t&, and returns void.

## ◆ on_user_update

event_router_t<user_update_t> dpp::cluster::on_user_update

Called when a user is updated. This is separate to cluster::on_guild_member_update and includes things such as an avatar change, username change, discriminator change or change in subscription status for nitro.

See also
  https://discord.com/developers/docs/topics/gateway-events#user-update

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type user_update_t&, and returns void.

## ◆ on_voice_buffer_send

event_router_t<voice_buffer_send_t> dpp::cluster::on_voice_buffer_send

Called when packets are sent from the voice buffer. The voice buffer contains packets that are already encoded with Opus and encrypted with XChaCha20-Poly1305, and merged into packets by the repacketizer, which is done in the dpp::discord_voice_client::send_audio method. You should use the buffer size properties of dpp::voice_buffer_send_t to determine if you should fill the buffer with more content.

Warning
  If the cache policy has disabled guild caching, the pointer to the guild in this event may be nullptr.

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type voice_buffer_send_t&, and returns void.

## ◆ on_voice_channel_effect_send

event_router_t<voice_channel_effect_send_t> dpp::cluster::on_voice_channel_effect_send

on voice channel effect send event

See also
  https://discord.com/developers/docs/events/gateway-events#voice-channel-effect-send

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type voice_channel_effect_send_t&, and returns void.

## ◆ on_voice_client_disconnect

event_router_t<voice_client_disconnect_t> dpp::cluster::on_voice_client_disconnect

on voice client disconnect event

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type voice_client_disconnect_t&, and returns void.

## ◆ on_voice_client_platform

event_router_t<voice_client_platform_t> dpp::cluster::on_voice_client_platform

on voice client platform event After a client connects, or on joining a vc, you will receive the platform type of each client. This is either desktop or mobile.

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type voice_client_disconnect_t&, and returns void.

## ◆ on_voice_client_speaking

event_router_t<voice_client_speaking_t> dpp::cluster::on_voice_client_speaking

on voice client speaking event

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type voice_client_speaking_t&, and returns void.

## ◆ on_voice_ready

event_router_t<voice_ready_t> dpp::cluster::on_voice_ready

Called when a voice channel is connected and ready to send audio. Note that this is not directly attached to the READY event of the websocket, as there is further connection that needs to be done before audio is ready to send.

Warning
  If the cache policy has disabled guild caching, the pointer to the guild in this event may be nullptr.

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type voice_ready_t&, and returns void.

## ◆ on_voice_receive

event_router_t<voice_receive_t> dpp::cluster::on_voice_receive

Called when new audio data is received. Each separate user's audio from the voice channel will arrive tagged with their user id in the event, if a user can be attributed to the received audio.

Note
  Receiving audio for bots is not officially supported by discord.
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type voice_receive_t&, and returns void.

## ◆ on_voice_receive_combined

event_router_t<voice_receive_t> dpp::cluster::on_voice_receive_combined

Called when new audio data is received, combined and mixed for all speaking users.

Note
  Receiving audio for bots is not officially supported by discord.
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type voice_receive_t&, and returns void.

## ◆ on_voice_server_update

event_router_t<voice_server_update_t> dpp::cluster::on_voice_server_update

Called when we are told which voice server we can use. This will be sent either when we establish a new voice channel connection, or as discord rearrange their infrastructure.

Warning
  If the cache policy has disabled guild caching, the pointer to the guild in this event may be nullptr.

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type voice_server_update_t&, and returns void.

## ◆ on_voice_state_update

event_router_t<voice_state_update_t> dpp::cluster::on_voice_state_update

on voice state update event

See also
  https://discord.com/developers/docs/topics/gateway-events#voice-state-update

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type voice_state_update_t&, and returns void.

## ◆ on_voice_track_marker

event_router_t<voice_track_marker_t> dpp::cluster::on_voice_track_marker

Called when sending of audio passes over a track marker. Track markers are arbitrarily placed "bookmarks" in the audio buffer, placed by the bot developer. Each track marker can have a string value associated with it which is specified in dpp::discord_voice_client::insert_marker and returned to this event.

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type voice_track_marker_t&, and returns void.

## ◆ on_webhooks_update

event_router_t<webhooks_update_t> dpp::cluster::on_webhooks_update

Called when the webhooks for a guild are updated.

See also
  https://discord.com/developers/docs/topics/gateway-events#webhooks-update

Note
  Use operator() to attach a lambda to this event, and the detach method to detach the listener using the returned ID. The function signature for this event takes a single const reference of type webhooks_update_t&, and returns void.

## ◆ request_timeout

uint16_t dpp::cluster::request_timeout = 60

The time (in seconds) that a request is allowed to take.

## ◆ rest_ping

double dpp::cluster::rest_ping

REST latency (HTTPS ping) in seconds.

## ◆ socketengine

std::unique_ptr<socket_engine_base> dpp::cluster::socketengine

Socket engine instance.

## ◆ terminating

std::atomic_bool dpp::cluster::terminating {false}

Atomic bool to set to true when the cluster is terminating.

D++ itself does not set this value, it is for library users to set if they want the cluster to terminate outside of a flow where they may have simple access to destruct the cluster object.

## ◆ token

std::string dpp::cluster::token

Current bot token for all shards on this cluster and all commands sent via HTTP.

## ◆ ws_mode

websocket_protocol_t dpp::cluster::ws_mode

Websocket mode for all shards in the cluster, either ws_json or ws_etf. Production bots should use ETF, while development bots should use JSON.

D++ Library version 9.0.13 D++ Library version 9.0.12 D++ Library version 9.0.11 D++ Library version 9.0.10 D++ Library version 9.0.9 D++ Library version 9.0.8 D++ Library version 9.0.7 D++ Library version 9.0.6 D++ Library version 9.0.5 D++ Library version 9.0.4 D++ Library version 9.0.3 D++ Library version 9.0.2 D++ Library version 9.0.1 D++ Library version 9.0.0 D++ Library version 1.0.2 D++ Library version 1.0.1 D++ Library version 1.0.0