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... | |
struct | button_interaction |
A button click for a button component. More... | |
class | cache |
A cache object maintains a cache of dpp::managed objects. This is for example users, channels or guilds. 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_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... | |
struct | command_resolved |
Resolved snowflake ids to usernames. TODO: Needs implementation. Not needed something that functions as we have cache. 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 | 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 | event_dispatch_t |
Base event parameter struct. 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... | |
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_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 | 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 | resumed_t |
Session resumed. More... | |
class | role |
Represents a role within a dpp::guild. More... | |
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 | 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, 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, 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 > | 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::function< void(const std::string &, std::map< std::string, std::string >)> | command_handler |
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, class 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< 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::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< std::string, 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_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 } |
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 | 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 } |
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 | 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_reply = 19 , mt_application_command = 20 , mt_guild_invite_reminder = 22 } |
Mesage types for dpp::message::type. More... | |
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 { 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 = 0x00008000 , p_read_message_history = 0x00010000 , p_mention_everyone = 0x00020000 , p_use_external_emojis = 0x00040000 , p_view_guild_insights = 0x00080000 , p_connect = 0x00100000 , p_speak = 0x00200000 , p_mute_members = 0x00400000 , p_deafen_members = 0x00800000 , p_move_members = 0x01000000 , p_use_vad = 0x02000000 , p_change_nickname = 0x04000000 , p_manage_nicknames = 0x08000000 , p_manage_roles = 0x10000000 , p_manage_webhooks = 0x20000000 , p_manage_emojis = 0x40000000 } |
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_acknowledge = 2 , ir_channel_message = 3 , ir_channel_message_with_source = 4 , ir_deferred_channel_message_with_source = 5 } |
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 | 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 | garbage_collection () |
user * | find_user (snowflake id) |
cache * | get_user_cache () |
uint64_t | get_user_count () |
guild * | find_guild (snowflake id) |
cache * | get_guild_cache () |
uint64_t | get_guild_count () |
role * | find_role (snowflake id) |
cache * | get_role_cache () |
uint64_t | get_role_count () |
channel * | find_channel (snowflake id) |
cache * | get_channel_cache () |
uint64_t | get_channel_count () |
emoji * | find_emoji (snowflake id) |
cache * | get_emoji_cache () |
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... | |
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... | |
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... | |
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... | |
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... | |
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... | |
bool | BoolNotNull (const nlohmann::json *j, const char *keyname) |
Returns a boolean value from a json field value, if defined, else returns false. 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... | |
std::string | base64_encode (unsigned char const *buf, unsigned int buffer_length) |
Base64 encode data. 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, button_interaction &bi) |
helper function to deserialize a button_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 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... | |
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&, std::map<std::string, std::string>)> dpp::command_handler |
typedef std::variant<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.
typedef std::variant< confirmation, message, message_map, user, user_map, guild_member, guild_member_map, channel, channel_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 > dpp::confirmable_t |
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, class guild_member*> dpp::members_container |
Guild members container.
typedef std::unordered_map<snowflake, message> dpp::message_map |
A group of messages
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<std::string, 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, 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 |
enum dpp::command_option_type : uint8_t |
Represents command option types. These are the possible parameter value types.
enum dpp::component_style : uint8_t |
enum dpp::component_type : uint8_t |
enum dpp::emoji_flags |
Flags for dpp::emoji.
Enumerator | |
---|---|
e_require_colons | |
e_managed | |
e_animated | |
e_available |
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.
Enumerator | |
---|---|
ir_pong | |
ir_acknowledge | |
ir_channel_message | |
ir_channel_message_with_source | |
ir_deferred_channel_message_with_source |
Types of interaction in the dpp::interaction class
Enumerator | |
---|---|
it_ping | |
it_application_command | |
it_component_button |
enum dpp::loglevel |
enum dpp::message_flags |
Bitmask flags for a dpp::message.
Enumerator | |
---|---|
m_crossposted | |
m_is_crosspost | |
m_supress_embeds | |
m_source_message_deleted | |
m_urgent | |
m_ephemeral | |
m_loading |
enum dpp::message_type |
Mesage types for dpp::message::type.
enum dpp::overwrite_type : uint8_t |
enum dpp::presence_flags |
enum dpp::presence_status : uint8_t |
enum dpp::region : uint8_t |
enum dpp::role_flags |
Various flags related to dpp::role
Enumerator | |
---|---|
r_hoist | |
r_managed | |
r_mentionable | |
r_premium_subscriber |
Represents the various discord permissions.
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.
buf | Raw 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, |
button_interaction & | bi | ||
) |
helper function to deserialize a button_interaction from json
j | output json object |
bi | button_interaction to be deserialized |
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, |
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 dpp::garbage_collection | ( | ) |
Run garbage collection across all caches removing deleted items that have been deleted over 60 seconds ago.
cache * dpp::get_channel_cache | ( | ) |
uint64_t dpp::get_channel_count | ( | ) |
cache * dpp::get_emoji_cache | ( | ) |
uint64_t dpp::get_emoji_count | ( | ) |
cache * dpp::get_guild_cache | ( | ) |
uint64_t dpp::get_guild_count | ( | ) |
cache * dpp::get_role_cache | ( | ) |
uint64_t dpp::get_role_count | ( | ) |
cache * dpp::get_user_cache | ( | ) |
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 |
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 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()