D++ (DPP)
C++ Discord API Bot Library
|
The main namespace for D++ functions. classes and types. More...
Namespaces | |
namespace | events |
The events namespace holds the internal event handlers for each websocket event. These are handled internally and also dispatched to the user code if the event is hooked. | |
namespace | utility |
Utility helper functions, generally for logging. | |
Classes | |
class | activity |
An activity is a representation of what a user is doing. It might be a game, or a website, or a movie. Whatever. More... | |
struct | application_command_create_t |
Create application slash command. More... | |
struct | application_command_delete_t |
struct | application_command_update_t |
Update application slash command. More... | |
struct | attachment |
Represents an attachment in a dpp::message. More... | |
struct | audit_change |
Defines audit log changes. More... | |
struct | audit_entry |
An individual audit log entry. More... | |
struct | audit_extra |
Extra information for an audit log entry. More... | |
class | auditlog |
The auditlog class represents the audit log entry of a guild. More... | |
class | ban |
The ban class represents a ban on a guild. More... | |
struct | bucket_t |
struct | button_click_t |
Click on button. More... | |
class | cache |
A cache object maintains a cache of dpp::managed objects. This is for example users, channels or guilds. More... | |
struct | cache_policy_t |
Represents the caching policy of the cluster. More... | |
class | channel |
A definition of a discord channel. More... | |
struct | channel_create_t |
Create channel. More... | |
struct | channel_delete_t |
Delete channel. More... | |
struct | channel_pins_update_t |
Channel pins update. More... | |
struct | channel_update_t |
Update channel. More... | |
class | cluster |
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... | |
struct | command_data_option |
Values in the command interaction. These are the values specified by the user when actually issuing the command on a channel or in DM. More... | |
struct | command_info_t |
Represents the details of a command added to the command handler class. More... | |
struct | command_interaction |
Details of a command within an interaction. This subobject represents the application command associated with the interaction. More... | |
struct | command_option |
Each command option is a command line parameter. It can have a type (see dpp::command_option_type), a name, a description, can be required or optional, and can have zero or more choices (for multiple choice), plus options. Adding options acts like sub-commands and can contain more options. More... | |
struct | command_option_choice |
This struct represents choices in a multiple choice option for a command parameter. It has both a string name, and a value parameter which is a variant, meaning it can hold different potential types (see dpp::command_value) that you can retrieve with std::get(). More... | |
class | command_permission |
Application command permissions allow you to enable or disable commands for specific users or roles within a guild. More... | |
struct | command_resolved |
Resolved snowflake ids to users, guild members, roles and channels. More... | |
struct | command_source |
Represents the sending source of a command. This is passed to any command handler and should be passed back to commandhandler::reply(), allowing the reply method to route any replies back to the origin, which may be a slash command or a message. Both require different response facilities but we want this to be transparent if you use the command handler class. More... | |
class | commandhandler |
The commandhandler class represents a group of commands, prefixed or slash commands with handling functions. More... | |
class | component |
Represents the component object. A component is a clickable button or drop down list within a discord message, where the buttons emit on_button_click events when the user interacts with them. More... | |
struct | component_interaction |
A button click for a button component. More... | |
struct | confirmation |
Confirmation object represents any true or false simple REST request. More... | |
struct | confirmation_callback_t |
The results of a REST call wrapped in a convenient struct. More... | |
class | discord_client |
Implements a discord client. Each discord_client connects to one shard and derives from a websocket client. More... | |
class | discord_voice_client |
Implements a discord voice connection. Each discord_voice_client connects to one voice channel and derives from a websocket client. More... | |
class | dispatcher |
The dispatcher class contains a set of std::functions representing hooked events that the user code is interested in. These are modified via the on_eventname style methods in the cluster class. More... | |
class | dtemplate |
Represents a guild template. More... | |
struct | embed |
A rich embed for display within a dpp::message. More... | |
struct | embed_author |
Author within a dpp::embed object. More... | |
struct | embed_field |
A dpp::embed may contain zero or more fields. More... | |
struct | embed_footer |
A footer in a dpp::embed. More... | |
struct | embed_image |
An video, image or thumbnail in a dpp::embed. More... | |
struct | embed_provider |
Embed provider in a dpp::embed. Received from discord but cannot be sent. More... | |
class | emoji |
Represents an emoji for a dpp::guild. More... | |
struct | error_detail |
The details of a field in an error response. More... | |
struct | error_info |
The full details of an error from a REST response. More... | |
struct | event_dispatch_t |
Base event parameter struct. More... | |
class | exception |
The dpp::exception class derives from std::exception and supports some other ways of passing in error details such as via std::string. More... | |
struct | gateway |
Represents the various information from the 'get gateway bot' api call. More... | |
class | guild |
Represents a guild on Discord (AKA a server) More... | |
struct | guild_ban_add_t |
Guild ban add. More... | |
struct | guild_ban_remove_t |
Guild ban remove. More... | |
class | guild_command_permissions |
Returned when fetching the permissions for a command in a guild. More... | |
struct | guild_create_t |
Create guild. More... | |
struct | guild_delete_t |
Delete guild. More... | |
struct | guild_emojis_update_t |
Guild emojis update. More... | |
struct | guild_integrations_update_t |
Guild integrations update. More... | |
struct | guild_join_request_delete_t |
Guild join request delete (user declined membership screening) More... | |
class | guild_member |
Represents dpp::user membership upon a dpp::guild. More... | |
struct | guild_member_add_t |
Guild member add. More... | |
struct | guild_member_remove_t |
Guild member remove. More... | |
struct | guild_member_update_t |
Guild member update. More... | |
struct | guild_members_chunk_t |
Guild members chunk. More... | |
struct | guild_role_create_t |
Guild role create. More... | |
struct | guild_role_delete_t |
Guild role delete. More... | |
struct | guild_role_update_t |
Guild role update. More... | |
struct | guild_stickers_update_t |
Update guild stickers. More... | |
struct | guild_update_t |
Guild update. More... | |
class | guild_widget |
Represents a guild widget, simple web widget of member list. More... | |
class | http_request |
A HTTP request. More... | |
struct | http_request_completion_t |
The result of any HTTP request. Contains the headers, vital rate limit figures, and returned request body. More... | |
class | integration |
struct | integration_app |
An application that has been integrated. More... | |
struct | integration_create_t |
Integration create. More... | |
struct | integration_delete_t |
Integration delete. More... | |
struct | integration_update_t |
Integration update. More... | |
class | interaction |
An interaction represents a user running a command and arrives via the dpp::cluster::on_interaction_create event. More... | |
struct | interaction_create_t |
Create interaction. More... | |
struct | interaction_response |
A response to an interaction, used to reply to a command and initiate a message, which can be hidden from others (ephemeral) or visible to all. More... | |
class | invite |
Represents an invite to a discord guild or channel. More... | |
struct | invite_create_t |
Invite create. More... | |
struct | invite_delete_t |
Invite delete. More... | |
struct | log_t |
Log messages. More... | |
class | managed |
The managed class is the base class for various types that can be stored in a cache that are identified by a dpp::snowflake id. More... | |
struct | message |
Represents messages sent and received on Discord. More... | |
struct | message_create_t |
Create message. More... | |
struct | message_delete_bulk_t |
Message delete bulk. More... | |
struct | message_delete_t |
Message Deleted. More... | |
struct | message_reaction_add_t |
Message reaction add. More... | |
struct | message_reaction_remove_all_t |
Message remove all reactions. More... | |
struct | message_reaction_remove_emoji_t |
Message remove emoji. More... | |
struct | message_reaction_remove_t |
Message reaction remove. More... | |
struct | message_update_t |
Message update. More... | |
struct | param_info |
Details of a command parameter used in registration. Note that for non-slash commands optional parameters can only be at the end of the list of parameters. More... | |
struct | permission_overwrite |
channel permission overwrites More... | |
class | presence |
Represents user presence, e.g. what game they are playing and if they are online. More... | |
struct | presence_update_t |
Presence update. More... | |
struct | prune |
Defines a request to count prunable users, or start a prune operation. More... | |
struct | reaction |
Represets a reaction to a dpp::message. More... | |
struct | ready_t |
Session ready. More... | |
class | request_queue |
The request_queue class manages rate limits and marshalls HTTP requests that have been built as http_request objects. More... | |
struct | resolved_user |
dpp::resolved_user contains both a dpp::guild_member and a dpp::user. The user can be used to obtain in-depth user details such as if they are nitro, and the guild member information to check their roles on a guild etc. The Discord API provides both if a parameter is a user ping, so we offer both in a combined structure. More... | |
struct | resumed_t |
Session resumed. More... | |
class | role |
Represents a role within a dpp::guild. More... | |
struct | select_click_t |
Click on select. More... | |
struct | select_option |
class | slashcommand |
Represents an application command, created by your bot either globally, or on a guild. More... | |
class | ssl_client |
Implements a simple non-blocking SSL stream client. More... | |
struct | stage_instance_create_t |
Create stage instance. More... | |
struct | stage_instance_delete_t |
Delete stage instance. More... | |
struct | sticker |
Represents stickers received in messages. More... | |
struct | sticker_pack |
struct | thread_create_t |
Thread Create. More... | |
struct | thread_delete_t |
struct | thread_list_sync_t |
Thread List Sync. More... | |
struct | thread_member |
represents membership of a user with a thread More... | |
struct | thread_member_update_t |
Thread Member Update. More... | |
struct | thread_members_update_t |
Thread Members Update. More... | |
struct | thread_metadata |
metadata for threads More... | |
struct | thread_update_t |
Thread Update. More... | |
struct | typing_start_t |
Typing start. More... | |
class | user |
Represents a user on discord. May or may not be a member of a dpp::guild. More... | |
struct | user_update_t |
struct | voice_buffer_send_t |
voice buffer send More... | |
struct | voice_ready_t |
voice user talking More... | |
struct | voice_receive_t |
voice receive packet More... | |
struct | voice_server_update_t |
Voice server update. More... | |
struct | voice_state_update_t |
Voice state update. More... | |
struct | voice_track_marker_t |
Voice state update. More... | |
struct | voice_user_talking_t |
voice user talking More... | |
class | voiceconn |
Represents a connection to a voice channel. A client can only connect to one voice channel per guild at a time, so these are stored in a map in the dpp::discord_client keyed by guild_id. More... | |
class | voiceregion |
Represents a voice region on discord. More... | |
class | voicestate |
Represents the voice state of a user on a guild These are stored in the dpp::guild object, and accessible there, or via dpp::channel::get_voice_members. More... | |
class | webhook |
Represents a discord webhook. More... | |
struct | webhooks_update_t |
Webhooks update. More... | |
class | websocket_client |
Implements a websocket client based on the SSL client. More... | |
Typedefs | |
typedef std::unordered_map< snowflake, ban > | ban_map |
typedef std::unordered_map< uint64_t, managed * > | cache_container |
A set of cached managed objects. More... | |
typedef std::unordered_map< snowflake, thread_member > | thread_member_map |
A group of thread member objects. More... | |
typedef std::unordered_map< snowflake, channel > | channel_map |
A group of channels. More... | |
typedef std::map< uint32_t, class discord_client * > | shard_list |
A list of shards. More... | |
typedef std::variant< confirmation, message, message_map, user, user_map, guild_member, guild_member_map, channel, channel_map, thread_member_map, guild, guild_map, role, role_map, invite, invite_map, dtemplate, dtemplate_map, emoji, emoji_map, ban, ban_map, voiceregion, voiceregion_map, integration, integration_map, webhook, webhook_map, prune, guild_widget, gateway, interaction, interaction_response, auditlog, slashcommand, slashcommand_map, sticker, sticker_map, sticker_pack, sticker_pack_map > | confirmable_t |
A container for types that can be returned for a REST API call. More... | |
typedef std::function< void(const confirmation_callback_t &)> | command_completion_event_t |
A callback upon command completion. More... | |
typedef std::function< void(json &, const http_request_completion_t &)> | json_encode_t |
Automatically JSON encoded HTTP result. More... | |
typedef std::variant< std::monostate, std::string, dpp::role, dpp::channel, dpp::resolved_user, int32_t, bool > | command_parameter |
Represents a received parameter. We use variant so that multiple non-related types can be contained within. More... | |
typedef std::vector< std::pair< std::string, param_info > > | parameter_registration_t |
Parameter list used during registration. Note that use of vector/pair is important here to preserve parameter order, as opposed to unordered_map (which doesnt guarantee any order at all) and std::map, which reorders keys alphabetically. More... | |
typedef std::vector< std::pair< std::string, command_parameter > > | parameter_list_t |
Parameter list for a called command. See dpp::parameter_registration_t for an explaination as to why vector is used. More... | |
typedef std::function< void(const std::string &, const parameter_list_t &, command_source)> | command_handler |
The function definition for a command handler. Expects a command name string, and a list of command parameters. More... | |
typedef uint64_t | snowflake |
A 64 bit unsigned value representing many things on discord. Discord calls the value a 'snowflake' value. More... | |
typedef std::unordered_map< snowflake, dtemplate > | dtemplate_map |
typedef std::unordered_map< snowflake, emoji > | emoji_map |
Group of emojis. More... | |
typedef std::unordered_map< snowflake, guild_member > | members_container |
Guild members container. More... | |
typedef std::unordered_map< snowflake, guild > | guild_map |
typedef std::unordered_map< snowflake, guild_member > | guild_member_map |
typedef std::unordered_map< snowflake, integration > | integration_map |
typedef std::unordered_map< std::string, invite > | invite_map |
typedef std::unordered_map< snowflake, message > | message_map |
typedef std::unordered_map< snowflake, sticker > | sticker_map |
typedef std::unordered_map< snowflake, sticker_pack > | sticker_pack_map |
typedef std::unordered_map< std::string, presence > | presence_map |
typedef std::function< void(const http_request_completion_t &)> | http_completion_event |
Results of HTTP requests are called back to these std::function types. More... | |
typedef std::unordered_map< snowflake, role > | role_map |
typedef std::variant< std::monostate, std::string, int32_t, bool, snowflake > | command_value |
This type is a variant that can hold any of the potential native data types represented by the enum above. It is used in interactions. More... | |
typedef std::unordered_map< snowflake, slashcommand > | slashcommand_map |
A group of application slash commands. More... | |
typedef std::unordered_map< snowflake, user > | user_map |
typedef std::unordered_map< std::string, voiceregion > | voiceregion_map |
A group of voice regions. More... | |
typedef std::unordered_map< std::string, voicestate > | voicestate_map |
typedef std::unordered_map< snowflake, webhook > | webhook_map |
A group of webhooks. More... | |
Enumerations | |
enum | audit_type { ae_guild_update = 1 , ae_channel_create = 10 , ae_channel_update = 11 , ae_channel_delete = 12 , ae_channel_overwrite_create = 13 , ae_channel_overwrite_update = 14 , ae_channel_overwrite_delete = 15 , ae_member_kick = 20 , ae_member_prune = 21 , ae_member_ban_add = 22 , ae_member_ban_remove = 23 , ae_member_update = 24 , ae_member_role_update = 25 , ae_member_move = 26 , ae_member_disconnect = 27 , ae_bot_add = 28 , ae_role_create = 30 , ae_role_update = 31 , ae_role_delete = 32 , ae_invite_create = 40 , ae_invite_update = 41 , ae_invite_delete = 42 , ae_webhook_create = 50 , ae_webhook_update = 51 , ae_webhook_delete = 52 , ae_emoji_create = 60 , ae_emoji_update = 61 , ae_emoji_delete = 62 , ae_message_delete = 72 , ae_message_bulk_delete = 73 , ae_message_pin = 74 , ae_message_unpin = 75 , ae_integration_create = 80 , ae_integration_update = 81 , ae_integration_delete = 82 } |
Defines types of audit log entry. More... | |
enum | channel_type { GUILD_TEXT = 0 , DM = 1 , GUILD_VOICE = 2 , GROUP_DM = 3 , GUILD_CATEGORY = 4 , GUILD_NEWS = 5 , GUILD_STORE = 6 , GUILD_NEWS_THREAD = 10 , GUILD_PUBLIC_THREAD = 11 , GUILD_PRIVATE_THREAD = 12 , GUILD_STAGE = 13 } |
Flag integers as received from and sent to discord. More... | |
enum | channel_flags { c_nsfw = 0b00000001 , c_text = 0b00000010 , c_dm = 0b00000100 , c_voice = 0b00001000 , c_group = 0b00010000 , c_category = 0b00100000 , c_news = 0b01000000 , c_store = 0b10000000 , c_stage = 0b11000000 , c_news_thread = 0b11100000 , c_public_thread = 0b11110000 , c_private_thread = 0b11111000 } |
Our flags as stored in the object. More... | |
enum | overwrite_type : uint8_t { ot_role = 0 , ot_member = 1 } |
channel permission overwrite types More... | |
enum | parameter_type { pt_string , pt_role , pt_channel , pt_user , pt_integer , pt_boolean } |
Parameter types when registering a command. We don't pass these in when triggering the command in the handler, because it is expected the developer added the command so they know what types to expect for each named parameter. More... | |
enum | image_type { i_png , i_jpg , i_gif } |
Supported image types for profile pictures. More... | |
enum | loglevel { ll_trace = 0 , ll_debug , ll_info , ll_warning , ll_error , ll_critical } |
Log levels. More... | |
enum | emoji_flags { e_require_colons = 0b00000001 , e_managed = 0b00000010 , e_animated = 0b00000100 , e_available = 0b00001000 } |
Flags for dpp::emoji. More... | |
enum | region : uint8_t { r_brazil , r_central_europe , r_hong_kong , r_india , r_japan , r_russia , r_singapore , r_south_africa , r_sydney , r_us_central , r_us_east , r_us_south , r_us_west , r_western_europe } |
Represents voice regions for guilds and channels. More... | |
enum | guild_flags { g_large = 0b000000000000000000001 , g_unavailable = 0b000000000000000000010 , g_widget_enabled = 0b000000000000000000100 , g_invite_splash = 0b000000000000000001000 , g_vip_regions = 0b000000000000000010000 , g_vanity_url = 0b000000000000000100000 , g_verified = 0b000000000000001000000 , g_partnered = 0b000000000000010000000 , g_community = 0b000000000000100000000 , g_commerce = 0b000000000001000000000 , g_news = 0b000000000010000000000 , g_discoverable = 0b000000000100000000000 , g_featureable = 0b000000001000000000000 , g_animated_icon = 0b000000010000000000000 , g_banner = 0b000000100000000000000 , g_welcome_screen_enabled = 0b000001000000000000000 , g_member_verification_gate = 0b000010000000000000000 , g_preview_enabled = 0b000100000000000000000 , g_no_join_notifications = 0b001000000000000000000 , g_no_boost_notifications = 0b010000000000000000000 , g_has_animated_icon = 0b100000000000000000000 } |
The various flags that represent the status of a dpp::guild object. More... | |
enum | guild_member_flags { gm_deaf = 0b00001 , gm_mute = 0b00010 , gm_pending = 0b00100 } |
Various flags that can be used to indicate the status of a guild member. More... | |
enum | integration_type { i_twitch , i_youtube , i_discord } |
Integration types. More... | |
enum | integration_flags { if_enabled = 0b00000001 , if_syncing = 0b00000010 , if_emoticons = 0b00000100 , if_revoked = 0b00001000 , if_expire_kick = 0b00010000 } |
Integration flags. More... | |
enum | intents { i_guilds = (1 << 0) , i_guild_members = (1 << 1) , i_guild_bans = (1 << 2) , i_guild_emojis = (1 << 3) , i_guild_integrations = (1 << 4) , i_guild_webhooks = (1 << 5) , i_guild_invites = (1 << 6) , i_guild_voice_states = (1 << 7) , i_guild_presences = (1 << 8) , i_guild_messages = (1 << 9) , i_guild_message_reactions = (1 << 10) , i_guild_message_typing = (1 << 11) , i_direct_messages = (1 << 12) , i_direct_message_reactions = (1 << 13) , i_direct_message_typing = (1 << 14) , i_default_intents = dpp::i_guilds | dpp::i_guild_bans | dpp::i_guild_emojis | dpp::i_guild_integrations | dpp::i_guild_webhooks | dpp::i_guild_invites | dpp::i_guild_voice_states | dpp::i_guild_messages | dpp::i_guild_message_reactions | dpp::i_guild_message_typing | dpp::i_direct_messages | dpp::i_direct_message_typing | dpp::i_direct_message_reactions , i_privileged_intents = dpp::i_guild_members | dpp::i_guild_presences , i_all_intents = dpp::i_default_intents | dpp::i_privileged_intents } |
intents are a bitmask of allowed events on your websocket. More... | |
enum | component_type : uint8_t { cot_action_row = 1 , cot_button = 2 , cot_selectmenu = 3 } |
Represents the type of a component. More... | |
enum | component_style : uint8_t { cos_primary = 1 , cos_secondary , cos_success , cos_danger , cos_link } |
Represents the style of a button. More... | |
enum | sticker_type : uint8_t { st_standard = 1 , st_guild = 2 } |
enum | sticker_format : uint8_t { sf_png = 1 , sf_apng = 2 , sf_lottie = 3 } |
The file format (png, apng, lottie) of a sticker. More... | |
enum | message_flags { m_crossposted = 1 << 0 , m_is_crosspost = 1 << 1 , m_supress_embeds = 1 << 2 , m_source_message_deleted = 1 << 3 , m_urgent = 1 << 4 , m_ephemeral = 1 << 6 , m_loading = 1 << 7 } |
Bitmask flags for a dpp::message. More... | |
enum | message_type { mt_default = 0 , mt_recipient_add = 1 , mt_recipient_remove = 2 , mt_call = 3 , mt_channel_name_change = 4 , mt_channel_icon_change = 5 , mt_channel_pinned_message = 6 , mt_guild_member_join = 7 , mt_user_premium_guild_subscription = 8 , mt_user_premium_guild_subscription_tier_1 = 9 , mt_user_premium_guild_subscription_tier_2 = 10 , mt_user_premium_guild_subscription_tier_3 = 11 , mt_channel_follow_add = 12 , mt_guild_discovery_disqualified = 14 , mt_guild_discovery_requalified = 15 , mt_guild_discovery_grace_period_initial_warning = 16 , mt_guild_discovery_grace_period_final_warning = 17 , mt_thread_created = 18 , mt_reply = 19 , mt_application_command = 20 , mt_thread_starter_message = 21 , mt_guild_invite_reminder = 22 } |
Mesage types for dpp::message::type. More... | |
enum | cache_policy_setting_t { cp_aggressive = 0 , cp_lazy = 1 , cp_none = 2 } |
enum | presence_flags { p_desktop_online = 0b00000001 , p_desktop_dnd = 0b00000010 , p_desktop_idle = 0b00000011 , p_web_online = 0b00000100 , p_web_dnd = 0b00001000 , p_web_idle = 0b00001100 , p_mobile_online = 0b00010000 , p_mobile_dnd = 0b00100000 , p_mobile_idle = 0b00110000 , p_status_online = 0b01000000 , p_status_dnd = 0b10000000 , p_status_idle = 0b11000000 } |
Presence flags bitmask. More... | |
enum | presence_status : uint8_t { ps_offline = 0 , ps_online = 1 , ps_dnd = 2 , ps_idle = 3 } |
Online presence status values. More... | |
enum | activity_type : uint8_t { at_game = 0 , at_streaming = 1 , at_listening = 2 , at_custom = 3 , at_competing = 4 } |
Game types. More... | |
enum | activity_flags { af_instance = 0b00000001 , af_join = 0b00000010 , af_spectate = 0b00000100 , af_join_request = 0b00001000 , af_sync = 0b00010000 , af_play = 0b00100000 } |
Activity types for rich presence. More... | |
enum | http_error { h_success = 0 , h_unknown , h_connection , h_bind_ip_address , h_read , h_write , h_exceed_redirect_count , h_canceled , h_ssl_connection , h_ssl_loading_certs , h_ssl_server_verification , h_unsupported_multipart_boundary_chars , h_compression } |
enum | http_method { m_get , m_post , m_put , m_patch , m_delete } |
enum | role_flags { r_hoist = 0b00000001 , r_managed = 0b00000010 , r_mentionable = 0b00000100 , r_premium_subscriber = 0b00001000 } |
enum | role_permissions : uint64_t { p_create_instant_invite = 0x00000001 , p_kick_members = 0x00000002 , p_ban_members = 0x00000004 , p_administrator = 0x00000008 , p_manage_channels = 0x00000010 , p_manage_guild = 0x00000020 , p_add_reactions = 0x00000040 , p_view_audit_log = 0x00000080 , p_priority_speaker = 0x00000100 , p_stream = 0x00000200 , p_view_channel = 0x00000400 , p_send_messages = 0x00000800 , p_send_tts_messages = 0x00001000 , p_manage_messages = 0x00002000 , p_embed_links = 0x00004000 , p_attach_files = 0x0000008000 , p_read_message_history = 0x0000010000 , p_mention_everyone = 0x0000020000 , p_use_external_emojis = 0x0000040000 , p_view_guild_insights = 0x0000080000 , p_connect = 0x0000100000 , p_speak = 0x0000200000 , p_mute_members = 0x0000400000 , p_deafen_members = 0x0000800000 , p_move_members = 0x0001000000 , p_use_vad = 0x0002000000 , p_change_nickname = 0x0004000000 , p_manage_nicknames = 0x0008000000 , p_manage_roles = 0x0010000000 , p_manage_webhooks = 0x0020000000 , p_manage_emojis = 0x0040000000 , p_use_slash_commands = 0x0080000000 , p_request_to_speak = 0x0100000000 , p_manage_threads = 0x0400000000 , p_use_public_threads = 0x0800000000 , p_use_private_threads = 0x1000000000 } |
Represents the various discord permissions. More... | |
enum | command_option_type : uint8_t { co_sub_command = 1 , co_sub_command_group = 2 , co_string = 3 , co_integer = 4 , co_boolean = 5 , co_user = 6 , co_channel = 7 , co_role = 8 } |
Represents command option types. These are the possible parameter value types. More... | |
enum | interaction_response_type { ir_pong = 1 , ir_channel_message_with_source = 4 , ir_deferred_channel_message_with_source = 5 , ir_deferred_update_message = 6 , ir_update_message = 7 } |
Response types when responding to an interaction within on_interaction_create. Do not use ir_acknowledge or ir::channel_message, as these are deprecated in the Discord API spec. They are listed in this enum for completeness. More... | |
enum | interaction_type { it_ping = 1 , it_application_command = 2 , it_component_button = 3 } |
enum | component_type_t { cotype_button = 2 , cotype_select = 3 } |
enum | command_permission_type { cpt_role = 1 , cpt_user = 2 } |
type of permission in the dpp::command_permission class More... | |
enum | slashcommand_contextmenu_type { ctxm_none = 0 , ctxm_chat_input = 1 , ctxm_user = 2 , ctxm_message = 3 } |
enum | user_flags { u_bot = 0b00000000000000000000001 , u_system = 0b00000000000000000000010 , u_mfa_enabled = 0b00000000000000000000100 , u_verified = 0b00000000000000000001000 , u_nitro_full = 0b00000000000000000010000 , u_nitro_classic = 0b00000000000000000100000 , u_discord_employee = 0b00000000000000001000000 , u_partnered_owner = 0b00000000000000010000000 , u_hypesquad_events = 0b00000000000000100000000 , u_bughunter_1 = 0b00000000000001000000000 , u_house_bravery = 0b00000000000010000000000 , u_house_brilliance = 0b00000000000100000000000 , u_house_balanace = 0b00000000001000000000000 , u_early_supporter = 0b00000000010000000000000 , u_team_user = 0b00000000100000000000000 , u_bughunter_2 = 0b00000001000000000000000 , u_verified_bot = 0b00000010000000000000000 , u_verified_bot_dev = 0b00000100000000000000000 , u_animated_icon = 0b00001000000000000000000 , u_certified_moderator = 0b00010000000000000000000 } |
Various bitmask flags used to represent information about a dpp::user. More... | |
enum | voiceregion_flags { v_optimal = 0x00000001 , v_deprecated = 0x00000010 , v_custom = 0x00000100 , v_vip = 0x00001000 } |
Flags related to a voice region. More... | |
enum | voicestate_flags { vs_deaf = 0b00000001 , vs_mute = 0b00000010 , vs_self_mute = 0b00000100 , vs_self_deaf = 0b00001000 , vs_self_stream = 0b00010000 , vs_self_video = 0b00100000 , vs_supress = 0b01000000 } |
Bit mask flags relating to voice states. More... | |
enum | webhook_type { w_incoming = 1 , w_channel_follower = 2 } |
Defines types of webhook. More... | |
enum | ws_state { HTTP_HEADERS , CONNECTED } |
Websocket connection status. More... | |
enum | ws_opcode { OP_CONTINUATION = 0x00 , OP_TEXT = 0x01 , OP_BINARY = 0x02 , OP_CLOSE = 0x08 , OP_PING = 0x09 , OP_PONG = 0x0a } |
Low-level websocket opcodes for frames. More... | |
Functions | |
void CoreExport | garbage_collection () |
CoreExport user * | find_user (snowflake id) |
CoreExport cache * | get_user_cache () |
CoreExport uint64_t | get_user_count () |
CoreExport guild * | find_guild (snowflake id) |
CoreExport cache * | get_guild_cache () |
CoreExport uint64_t | get_guild_count () |
CoreExport role * | find_role (snowflake id) |
CoreExport cache * | get_role_cache () |
CoreExport uint64_t | get_role_count () |
CoreExport channel * | find_channel (snowflake id) |
CoreExport cache * | get_channel_cache () |
CoreExport uint64_t | get_channel_count () |
CoreExport emoji * | find_emoji (snowflake id) |
CoreExport cache * | get_emoji_cache () |
CoreExport uint64_t | get_emoji_count () |
uint64_t | SnowflakeNotNull (const nlohmann::json *j, const char *keyname) |
Returns a snowflake id from a json field value, if defined, else returns 0. More... | |
void | SetSnowflakeNotNull (const nlohmann::json *j, const char *keyname, uint64_t &v) |
Sets a snowflake id from a json field value, if defined, else does nothing. More... | |
std::string | StringNotNull (const nlohmann::json *j, const char *keyname) |
Returns a string from a json field value, if defined, else returns an empty string. More... | |
void | SetStringNotNull (const nlohmann::json *j, const char *keyname, std::string &v) |
Sets a string from a json field value, if defined, else does nothing. More... | |
uint64_t | Int64NotNull (const nlohmann::json *j, const char *keyname) |
Returns a 64 bit unsigned integer from a json field value, if defined, else returns 0. DO NOT use this for snowflakes, as usually snowflakes are wrapped in a string! More... | |
void | SetInt64NotNull (const nlohmann::json *j, const char *keyname, uint64_t &v) |
Sets an unsigned 64 bit integer from a json field value, if defined, else does nothing. More... | |
uint32_t | Int32NotNull (const nlohmann::json *j, const char *keyname) |
Returns a 32 bit unsigned integer from a json field value, if defined, else returns 0. More... | |
void | SetInt32NotNull (const nlohmann::json *j, const char *keyname, uint32_t &v) |
Sets an unsigned 32 bit integer from a json field value, if defined, else does nothing. More... | |
uint16_t | Int16NotNull (const nlohmann::json *j, const char *keyname) |
Returns a 16 bit unsigned integer from a json field value, if defined, else returns 0. More... | |
void | SetInt16NotNull (const nlohmann::json *j, const char *keyname, uint16_t &v) |
Sets an unsigned 16 bit integer from a json field value, if defined, else does nothing. More... | |
uint8_t | Int8NotNull (const nlohmann::json *j, const char *keyname) |
Returns an 8 bit unsigned integer from a json field value, if defined, else returns 0. More... | |
void | SetInt8NotNull (const nlohmann::json *j, const char *keyname, uint8_t &v) |
Sets an unsigned 8 bit integer from a json field value, if defined, else does nothing. More... | |
bool | BoolNotNull (const nlohmann::json *j, const char *keyname) |
Returns a boolean value from a json field value, if defined, else returns false. More... | |
void | SetBoolNotNull (const nlohmann::json *j, const char *keyname, bool &v) |
Sets a boolean from a json field value, if defined, else does nothing. More... | |
time_t | TimestampNotNull (const nlohmann::json *j, const char *keyname) |
Returns a time_t from an ISO8601 timestamp field in a json value, if defined, else returns epoch value of 0. More... | |
void | SetTimestampNotNull (const nlohmann::json *j, const char *keyname, time_t &v) |
Sets an timestamp from a json field value containing an ISO8601 string, if defined, else does nothing. More... | |
std::string | base64_encode (unsigned char const *buf, unsigned int buffer_length) |
Base64 encode data into a string. More... | |
void | from_json (const nlohmann::json &j, guild_member &gm) |
helper function to deserialize a guild_member from json More... | |
std::string | url_encode (const std::string &value) |
void | to_json (nlohmann::json &j, const command_option_choice &choice) |
helper function to serialize a command_option_choice to json More... | |
void | to_json (nlohmann::json &j, const command_option &opt) |
helper function to serialize a command_option to json More... | |
void | from_json (const nlohmann::json &j, command_data_option &cdo) |
helper function to deserialize a command_data_option from json More... | |
void | from_json (const nlohmann::json &j, command_interaction &ci) |
helper function to deserialize a command_interaction from json More... | |
void | from_json (const nlohmann::json &j, component_interaction &bi) |
helper function to deserialize a component_interaction from json More... | |
void | from_json (const nlohmann::json &j, interaction &i) |
helper function to deserialize an interaction from json More... | |
void | to_json (nlohmann::json &j, const command_permission &cp) |
helper function to serialize a command_permission to json More... | |
void | to_json (nlohmann::json &j, const guild_command_permissions &gcp) |
helper function to serialize a guild_command_permissions to json More... | |
void | to_json (nlohmann::json &j, const slashcommand &cmd) |
helper function to serialize a slashcommand to json More... | |
void | from_json (const nlohmann::json &j, user &u) |
helper function to deserialize a user from json More... | |
Variables | |
struct CoreExport | confirmation_callback_t |
The main namespace for D++ functions. classes and types.
typedef std::unordered_map<snowflake, ban> dpp::ban_map |
A group of bans
typedef std::unordered_map<uint64_t, managed*> dpp::cache_container |
A set of cached managed objects.
typedef std::unordered_map<snowflake, channel> dpp::channel_map |
A group of channels.
typedef std::function< void(const confirmation_callback_t &)> dpp::command_completion_event_t |
A callback upon command completion.
typedef std::function<void(const std::string&, const parameter_list_t&, command_source)> dpp::command_handler |
The function definition for a command handler. Expects a command name string, and a list of command parameters.
typedef std::variant<std::monostate, std::string, dpp::role, dpp::channel, dpp::resolved_user, int32_t, bool> dpp::command_parameter |
Represents a received parameter. We use variant so that multiple non-related types can be contained within.
typedef std::variant<std::monostate, std::string, int32_t, bool, snowflake> dpp::command_value |
This type is a variant that can hold any of the potential native data types represented by the enum above. It is used in interactions.
std::monostate indicates an invalid parameter value, e.g. an unfilled optional parameter.
A container for types that can be returned for a REST API call.
typedef std::unordered_map<snowflake, dtemplate> dpp::dtemplate_map |
A container of invites
typedef std::unordered_map<snowflake, emoji> dpp::emoji_map |
Group of emojis.
typedef std::unordered_map<snowflake, guild> dpp::guild_map |
A container of guilds
typedef std::unordered_map<snowflake, guild_member> dpp::guild_member_map |
A container of guild members
typedef std::function<void(const http_request_completion_t&)> dpp::http_completion_event |
Results of HTTP requests are called back to these std::function types.
typedef std::unordered_map<snowflake, integration> dpp::integration_map |
A group of integrations
typedef std::unordered_map<std::string, invite> dpp::invite_map |
A container of invites
typedef std::function<void(json&, const http_request_completion_t&)> dpp::json_encode_t |
Automatically JSON encoded HTTP result.
typedef std::unordered_map<snowflake, guild_member> dpp::members_container |
Guild members container.
typedef std::unordered_map<snowflake, message> dpp::message_map |
A group of messages
typedef std::vector<std::pair<std::string, command_parameter> > dpp::parameter_list_t |
Parameter list for a called command. See dpp::parameter_registration_t for an explaination as to why vector is used.
typedef std::vector<std::pair<std::string, param_info> > dpp::parameter_registration_t |
Parameter list used during registration. Note that use of vector/pair is important here to preserve parameter order, as opposed to unordered_map (which doesnt guarantee any order at all) and std::map, which reorders keys alphabetically.
typedef std::unordered_map<std::string, presence> dpp::presence_map |
A container of presences
typedef std::unordered_map<snowflake, role> dpp::role_map |
A group of roles
typedef std::map<uint32_t, class discord_client*> dpp::shard_list |
A list of shards.
typedef std::unordered_map<snowflake, slashcommand> dpp::slashcommand_map |
A group of application slash commands.
typedef uint64_t dpp::snowflake |
A 64 bit unsigned value representing many things on discord. Discord calls the value a 'snowflake' value.
typedef std::unordered_map<snowflake, sticker> dpp::sticker_map |
A group of stickers
typedef std::unordered_map<snowflake, sticker_pack> dpp::sticker_pack_map |
A group of sticker packs
typedef std::unordered_map<snowflake, thread_member> dpp::thread_member_map |
A group of thread member objects.
typedef std::unordered_map<snowflake, user> dpp::user_map |
A group of users
typedef std::unordered_map<std::string, voiceregion> dpp::voiceregion_map |
A group of voice regions.
typedef std::unordered_map<std::string, voicestate> dpp::voicestate_map |
A container of voicestates
typedef std::unordered_map<snowflake, webhook> dpp::webhook_map |
A group of webhooks.
enum dpp::activity_flags |
enum dpp::activity_type : uint8_t |
enum dpp::audit_type |
Defines types of audit log entry.
enum dpp::channel_flags |
Our flags as stored in the object.
enum dpp::channel_type |
Flag integers as received from and sent to discord.
enum dpp::command_option_type : uint8_t |
Represents command option types. These are the possible parameter value types.
type of permission in the dpp::command_permission class
Enumerator | |
---|---|
cpt_role | |
cpt_user |
enum dpp::component_style : uint8_t |
enum dpp::component_type : uint8_t |
enum dpp::emoji_flags |
Flags for dpp::emoji.
Enumerator | |
---|---|
e_require_colons | Emoji requires colons. |
e_managed | Managed (introduced by application) |
e_animated | Animated. |
e_available | Available (false if the guild doesn't meet boosting criteria, etc) |
enum dpp::guild_flags |
The various flags that represent the status of a dpp::guild object.
enum dpp::http_error |
Error values. Don't change the order or add extra values here, as they map onto the error values of cpp-httplib
enum dpp::http_method |
enum dpp::image_type |
enum dpp::intents |
intents are a bitmask of allowed events on your websocket.
Some of these are known as Privileged intents (GUILD_MEMBERS and GUILD_PRESENCES) and require verification of a bot over 100 servers by discord via submission of your real life ID.
Response types when responding to an interaction within on_interaction_create. Do not use ir_acknowledge or ir::channel_message, as these are deprecated in the Discord API spec. They are listed in this enum for completeness.
Types of interaction in the dpp::interaction class
Enumerator | |
---|---|
it_ping | ping |
it_application_command | application command (slash command) |
it_component_button | button click (component interaction) |
enum dpp::loglevel |
enum dpp::message_flags |
Bitmask flags for a dpp::message.
enum dpp::message_type |
Mesage types for dpp::message::type.
enum dpp::overwrite_type : uint8_t |
enum dpp::parameter_type |
Parameter types when registering a command. We don't pass these in when triggering the command in the handler, because it is expected the developer added the command so they know what types to expect for each named parameter.
Enumerator | |
---|---|
pt_string | String value. |
pt_role | Role object. |
pt_channel | Channel object. |
pt_user | User object. |
pt_integer | 32 bit signed integer |
pt_boolean | boolean |
enum dpp::presence_flags |
Presence flags bitmask.
enum dpp::presence_status : uint8_t |
enum dpp::region : uint8_t |
Represents voice regions for guilds and channels.
enum dpp::role_flags |
Various flags related to dpp::role
Enumerator | |
---|---|
r_hoist | Hoisted role. |
r_managed | Managed role (introduced by a bot or application) |
r_mentionable | Mentionable with an @ping. |
r_premium_subscriber | This is set for the role given to nitro. |
enum dpp::role_permissions : uint64_t |
Represents the various discord permissions.
enum dpp::sticker_format : uint8_t |
enum dpp::sticker_type : uint8_t |
enum dpp::user_flags |
Various bitmask flags used to represent information about a dpp::user.
enum dpp::webhook_type |
enum dpp::ws_opcode |
enum dpp::ws_state |
std::string dpp::base64_encode | ( | unsigned char const * | buf, |
unsigned int | buffer_length | ||
) |
Base64 encode data into a string.
buf | Raw binary buffer |
buffer_length | Buffer length to encode |
bool dpp::BoolNotNull | ( | const nlohmann::json * | j, |
const char * | keyname | ||
) |
Returns a boolean value from a json field value, if defined, else returns false.
j | nlohmann::json instance to retrieve value from |
keyname | key name to check for a value |
void dpp::from_json | ( | const nlohmann::json & | j, |
command_data_option & | cdo | ||
) |
helper function to deserialize a command_data_option from json
j | output json object |
cdo | command_data_option to be deserialized |
void dpp::from_json | ( | const nlohmann::json & | j, |
command_interaction & | ci | ||
) |
helper function to deserialize a command_interaction from json
j | output json object |
ci | command_interaction to be deserialized |
void dpp::from_json | ( | const nlohmann::json & | j, |
component_interaction & | bi | ||
) |
helper function to deserialize a component_interaction from json
j | output json object |
bi | button_interaction to be deserialized |
void dpp::from_json | ( | const nlohmann::json & | j, |
guild_member & | gm | ||
) |
helper function to deserialize a guild_member from json
j | output json object |
gm | guild_member to be deserialized |
void dpp::from_json | ( | const nlohmann::json & | j, |
interaction & | i | ||
) |
helper function to deserialize an interaction from json
j | output json object |
i | interaction to be deserialized |
void dpp::from_json | ( | const nlohmann::json & | j, |
user & | u | ||
) |
helper function to deserialize a user from json
j | output json object |
u | user to be deserialized |
void CoreExport dpp::garbage_collection | ( | ) |
Run garbage collection across all caches removing deleted items that have been deleted over 60 seconds ago.
CoreExport cache * dpp::get_channel_cache | ( | ) |
CoreExport uint64_t dpp::get_channel_count | ( | ) |
CoreExport cache * dpp::get_emoji_cache | ( | ) |
CoreExport uint64_t dpp::get_emoji_count | ( | ) |
CoreExport cache * dpp::get_guild_cache | ( | ) |
CoreExport uint64_t dpp::get_guild_count | ( | ) |
CoreExport cache * dpp::get_role_cache | ( | ) |
CoreExport uint64_t dpp::get_role_count | ( | ) |
CoreExport cache * dpp::get_user_cache | ( | ) |
CoreExport uint64_t dpp::get_user_count | ( | ) |
uint16_t dpp::Int16NotNull | ( | const nlohmann::json * | j, |
const char * | keyname | ||
) |
Returns a 16 bit unsigned integer from a json field value, if defined, else returns 0.
j | nlohmann::json instance to retrieve value from |
keyname | key name to check for a value |
uint32_t dpp::Int32NotNull | ( | const nlohmann::json * | j, |
const char * | keyname | ||
) |
Returns a 32 bit unsigned integer from a json field value, if defined, else returns 0.
j | nlohmann::json instance to retrieve value from |
keyname | key name to check for a value |
uint64_t dpp::Int64NotNull | ( | const nlohmann::json * | j, |
const char * | keyname | ||
) |
Returns a 64 bit unsigned integer from a json field value, if defined, else returns 0. DO NOT use this for snowflakes, as usually snowflakes are wrapped in a string!
j | nlohmann::json instance to retrieve value from |
keyname | key name to check for a value |
uint8_t dpp::Int8NotNull | ( | const nlohmann::json * | j, |
const char * | keyname | ||
) |
Returns an 8 bit unsigned integer from a json field value, if defined, else returns 0.
j | nlohmann::json instance to retrieve value from |
keyname | key name to check for a value |
void dpp::SetBoolNotNull | ( | const nlohmann::json * | j, |
const char * | keyname, | ||
bool & | v | ||
) |
Sets a boolean from a json field value, if defined, else does nothing.
j | nlohmann::json instance to retrieve value from |
keyname | key name to check for a value |
v | Value to change |
void dpp::SetInt16NotNull | ( | const nlohmann::json * | j, |
const char * | keyname, | ||
uint16_t & | v | ||
) |
Sets an unsigned 16 bit integer from a json field value, if defined, else does nothing.
j | nlohmann::json instance to retrieve value from |
keyname | key name to check for a value |
v | Value to change |
void dpp::SetInt32NotNull | ( | const nlohmann::json * | j, |
const char * | keyname, | ||
uint32_t & | v | ||
) |
Sets an unsigned 32 bit integer from a json field value, if defined, else does nothing.
j | nlohmann::json instance to retrieve value from |
keyname | key name to check for a value |
v | Value to change |
void dpp::SetInt64NotNull | ( | const nlohmann::json * | j, |
const char * | keyname, | ||
uint64_t & | v | ||
) |
Sets an unsigned 64 bit integer from a json field value, if defined, else does nothing.
j | nlohmann::json instance to retrieve value from |
keyname | key name to check for a value |
v | Value to change |
void dpp::SetInt8NotNull | ( | const nlohmann::json * | j, |
const char * | keyname, | ||
uint8_t & | v | ||
) |
Sets an unsigned 8 bit integer from a json field value, if defined, else does nothing.
j | nlohmann::json instance to retrieve value from |
keyname | key name to check for a value |
v | Value to change |
void dpp::SetSnowflakeNotNull | ( | const nlohmann::json * | j, |
const char * | keyname, | ||
uint64_t & | v | ||
) |
Sets a snowflake id from a json field value, if defined, else does nothing.
j | nlohmann::json instance to retrieve value from |
keyname | key name to check for a value |
v | Value to change |
void dpp::SetStringNotNull | ( | const nlohmann::json * | j, |
const char * | keyname, | ||
std::string & | v | ||
) |
Sets a string from a json field value, if defined, else does nothing.
j | nlohmann::json instance to retrieve value from |
keyname | key name to check for a value |
v | Value to change |
void dpp::SetTimestampNotNull | ( | const nlohmann::json * | j, |
const char * | keyname, | ||
time_t & | v | ||
) |
Sets an timestamp from a json field value containing an ISO8601 string, if defined, else does nothing.
j | nlohmann::json instance to retrieve value from |
keyname | key name to check for a value |
v | Value to change |
uint64_t dpp::SnowflakeNotNull | ( | const nlohmann::json * | j, |
const char * | keyname | ||
) |
Returns a snowflake id from a json field value, if defined, else returns 0.
j | nlohmann::json instance to retrieve value from |
keyname | key name to check for a value |
std::string dpp::StringNotNull | ( | const nlohmann::json * | j, |
const char * | keyname | ||
) |
Returns a string from a json field value, if defined, else returns an empty string.
j | nlohmann::json instance to retrieve value from |
keyname | key name to check for a value |
time_t dpp::TimestampNotNull | ( | const nlohmann::json * | j, |
const char * | keyname | ||
) |
Returns a time_t from an ISO8601 timestamp field in a json value, if defined, else returns epoch value of 0.
j | nlohmann::json instance to retrieve value from |
keyname | key name to check for a value |
void dpp::to_json | ( | nlohmann::json & | j, |
const command_option & | opt | ||
) |
helper function to serialize a command_option to json
j | output json object |
opt | command_option to be serialized |
void dpp::to_json | ( | nlohmann::json & | j, |
const command_option_choice & | choice | ||
) |
helper function to serialize a command_option_choice to json
j | output json object |
choice | command_option_choice to be serialized |
void dpp::to_json | ( | nlohmann::json & | j, |
const command_permission & | cp | ||
) |
helper function to serialize a command_permission to json
j | output json object |
cp | command_permission to be serialized |
void dpp::to_json | ( | nlohmann::json & | j, |
const guild_command_permissions & | gcp | ||
) |
helper function to serialize a guild_command_permissions to json
j | output json object |
gcp | guild_command_permissions to be serialized |
void dpp::to_json | ( | nlohmann::json & | j, |
const slashcommand & | cmd | ||
) |
helper function to serialize a slashcommand to json
j | output json object |
cmd | slashcommand to be serialized |
std::string dpp::url_encode | ( | const std::string & | value | ) |
Encodes a url parameter similar to php urlencode()
struct CoreExport dpp::confirmation_callback_t |