D++ (DPP)
C++ Discord API Bot Library
|
An interaction represents a user running a command and arrives via the dpp::cluster::on_interaction_create event. This is further split into the events on_form_submit, on_slashcommand, on_user_context_menu, on_button_click, on_select_menu, etc. More...
#include <appcommand.h>
Public Member Functions | |
interaction () | |
Construct a new interaction object. More... | |
virtual | ~interaction ()=default |
Destroy the interaction object. More... | |
const dpp::user & | get_resolved_user (snowflake id) const |
Get a user associated with the slash command from the resolved list. The resolved list contains associated structures for this command and does not use the cache or require any extra API calls. More... | |
const dpp::channel & | get_channel () const |
Get the channel this command originated on. More... | |
const dpp::guild & | get_guild () const |
Get the guild this command originated on. More... | |
const dpp::user & | get_issuing_user () const |
Get the user who issued this command. More... | |
const dpp::message & | get_context_message () const |
Get the message this action refers to if it is a context menu command. More... | |
const dpp::role & | get_resolved_role (snowflake id) const |
Get a role associated with the slash command from the resolved list. The resolved list contains associated structures for this command and does not use the cache or require any extra API calls. More... | |
const dpp::channel & | get_resolved_channel (snowflake id) const |
Get a channel associated with the slash command from the resolved list. The resolved list contains associated structures for this command and does not use the cache or require any extra API calls. More... | |
const dpp::guild_member & | get_resolved_member (snowflake id) const |
Get a guild member associated with the slash command from the resolved list. The resolved list contains associated structures for this command and does not use the cache or require any extra API calls. More... | |
const dpp::permission & | get_resolved_permission (snowflake id) const |
Get a permission associated with the slash command from the resolved list. The resolved list contains associated structures for this command and does not use the cache or require any extra API calls. More... | |
const dpp::message & | get_resolved_message (snowflake id) const |
Get a message associated with the slash command from the resolved list. The resolved list contains associated structures for this command and does not use the cache or require any extra API calls. More... | |
const dpp::attachment & | get_resolved_attachment (snowflake id) const |
Get an uploaded attachment associated with the slash command from the resolved list. The resolved list contains associated structures for this command and does not use the cache or require any extra API calls. More... | |
command_interaction | get_command_interaction () const |
Get the command interaction object. More... | |
component_interaction | get_component_interaction () const |
Get the component interaction object. More... | |
autocomplete_interaction | get_autocomplete_interaction () const |
Get the autocomplete interaction object. More... | |
std::string | get_command_name () const |
Get the command name for a command interaction. More... | |
dpp::snowflake | get_authorizing_integration_owner (application_integration_types type) const |
Get the user who installed the application for a given type. More... | |
bool | is_user_app_interaction () const |
Returns true if this interaction occurred as a user-app interaction, e.g. within a DM or group DM, added to the user not a guild. More... | |
bool | is_guild_interaction () const |
Returns true if this interaction occurred as a guild-invited interaction, e.g. within a guild's channel, or a DM of a user in that guild. More... | |
constexpr double | get_creation_time () const noexcept |
Get the creation time of this object according to Discord. More... | |
constexpr bool | operator== (const managed &other) const noexcept |
Comparison operator for comparing two managed objects by id. More... | |
constexpr bool | operator!= (const managed &other) const noexcept |
Comparison operator for comparing two managed objects by id. More... | |
interaction & | fill_from_json (nlohmann::json *j) |
Convert object from nlohmann::json. More... | |
auto | to_json (bool with_id=false) const |
Convert object to nlohmann::json. More... | |
std::string | build_json (bool with_id=false) const |
Convert object to json string. More... | |
Public Attributes | |
std::map< application_integration_types, snowflake > | authorizing_integration_owners |
Context where the interaction was triggered from. More... | |
std::optional< interaction_context_type > | context |
Context where the interaction was triggered from. More... | |
snowflake | application_id |
ID of the application this interaction is for. More... | |
uint8_t | type |
The type of interaction from dpp::interaction_type. More... | |
std::variant< command_interaction, component_interaction, autocomplete_interaction > | data |
Optional: the command data payload. More... | |
snowflake | guild_id |
Optional: the guild it was sent from. More... | |
snowflake | channel_id |
Optional: the channel it was sent from. More... | |
dpp::channel | channel |
Optional: The partial channel object where it was sent from. More... | |
snowflake | message_id |
Originating message id for context menu actions. More... | |
permission | app_permissions |
Permissions of the bot in the channel/guild where this command was issued. More... | |
message | msg |
Originating message for context menu actions. More... | |
guild_member | member |
Optional: guild member data for the invoking user, including permissions. Filled when the interaction is invoked in a guild. More... | |
user | usr |
User object for the invoking user. More... | |
std::string | token |
A continuation token for responding to the interaction. More... | |
uint8_t | version |
Read-only property, always 1. More... | |
command_resolved | resolved |
Resolved data e.g. users, members, roles, channels, permissions, etc. More... | |
std::string | locale |
User's locale (language). More... | |
std::string | guild_locale |
Guild's locale (language) - for guild interactions only. More... | |
cache_policy_t | cache_policy |
Cache policy from cluster. More... | |
std::vector< entitlement > | entitlements |
For monetized apps, any entitlements for the invoking user, representing access to premium SKUs. More... | |
snowflake | id = {} |
Unique ID of object set by Discord. This value contains a timestamp, worker ID, internal server ID, and an incrementing value. Only the timestamp is relevant to us as useful metadata. More... | |
Protected Member Functions | |
template<typename T , typename C > | |
const T & | get_resolved (snowflake id, const C &resolved_set) const |
Get a resolved object from the resolved set. More... | |
interaction & | fill_from_json_impl (nlohmann::json *j) |
Fill object properties from JSON. More... | |
virtual json | to_json_impl (bool with_id=false) const |
Build a json for this object. More... | |
Friends | |
struct | json_interface< interaction > |
An interaction represents a user running a command and arrives via the dpp::cluster::on_interaction_create event. This is further split into the events on_form_submit, on_slashcommand, on_user_context_menu, on_button_click, on_select_menu, etc.
dpp::interaction::interaction | ( | ) |
Construct a new interaction object.
|
virtualdefault |
Destroy the interaction object.
|
inlineinherited |
Convert object to json string.
with_id | Whether to include the ID or not |
|
inlineinherited |
Convert object from nlohmann::json.
j | nlohmann::json object |
|
protected |
Fill object properties from JSON.
j | JSON to fill from |
dpp::snowflake dpp::interaction::get_authorizing_integration_owner | ( | application_integration_types | type | ) | const |
Get the user who installed the application for a given type.
type | Type of installation for the command, e.g. dpp::ait_guild_install or dpp::ait_user_install. |
autocomplete_interaction dpp::interaction::get_autocomplete_interaction | ( | ) | const |
Get the autocomplete interaction object.
dpp::logic_exception | if the interaction is not for an autocomplete |
const dpp::channel & dpp::interaction::get_channel | ( | ) | const |
Get the channel this command originated on.
dpp::logic_exception | Command originated from a DM or channel not in cache |
command_interaction dpp::interaction::get_command_interaction | ( | ) | const |
Get the command interaction object.
dpp::logic_exception | if the interaction is not for a command |
std::string dpp::interaction::get_command_name | ( | ) | const |
Get the command name for a command interaction.
component_interaction dpp::interaction::get_component_interaction | ( | ) | const |
Get the component interaction object.
dpp::logic_exception | if the interaction is not for a component |
const dpp::message & dpp::interaction::get_context_message | ( | ) | const |
Get the message this action refers to if it is a context menu command.
|
inlineconstexprnoexceptinherited |
Get the creation time of this object according to Discord.
const dpp::guild & dpp::interaction::get_guild | ( | ) | const |
Get the guild this command originated on.
dpp::logic_exception | Command originated from a DM or guild not in cache |
const dpp::user & dpp::interaction::get_issuing_user | ( | ) | const |
Get the user who issued this command.
|
inlineprotected |
Get a resolved object from the resolved set.
T | type of object to retrieve |
C | container defintion for resolved container |
id | Snowflake ID |
resolved_set | container for the type |
dpp::logic_exception | on object not found in resolved set |
const dpp::attachment & dpp::interaction::get_resolved_attachment | ( | snowflake | id | ) | const |
Get an uploaded attachment associated with the slash command from the resolved list. The resolved list contains associated structures for this command and does not use the cache or require any extra API calls.
id | Attachment snowflake ID to find |
dpp::logic_exception | on object not found in resolved set |
const dpp::channel & dpp::interaction::get_resolved_channel | ( | snowflake | id | ) | const |
Get a channel associated with the slash command from the resolved list. The resolved list contains associated structures for this command and does not use the cache or require any extra API calls.
id | Channel snowflake ID to find |
dpp::logic_exception | on object not found in resolved set |
const dpp::guild_member & dpp::interaction::get_resolved_member | ( | snowflake | id | ) | const |
Get a guild member associated with the slash command from the resolved list. The resolved list contains associated structures for this command and does not use the cache or require any extra API calls.
id | User snowflake ID to find |
dpp::logic_exception | on object not found in resolved set |
const dpp::message & dpp::interaction::get_resolved_message | ( | snowflake | id | ) | const |
Get a message associated with the slash command from the resolved list. The resolved list contains associated structures for this command and does not use the cache or require any extra API calls.
id | Message snowflake ID to find |
dpp::logic_exception | on object not found in resolved set |
const dpp::permission & dpp::interaction::get_resolved_permission | ( | snowflake | id | ) | const |
Get a permission associated with the slash command from the resolved list. The resolved list contains associated structures for this command and does not use the cache or require any extra API calls.
id | User snowflake ID to find |
dpp::logic_exception | on object not found in resolved set |
Get a role associated with the slash command from the resolved list. The resolved list contains associated structures for this command and does not use the cache or require any extra API calls.
id | Role snowflake ID to find |
dpp::logic_exception | on object not found in resolved set |
Get a user associated with the slash command from the resolved list. The resolved list contains associated structures for this command and does not use the cache or require any extra API calls.
id | User snowflake ID to find |
dpp::logic_exception | on object not found in resolved set |
bool dpp::interaction::is_guild_interaction | ( | ) | const |
Returns true if this interaction occurred as a guild-invited interaction, e.g. within a guild's channel, or a DM of a user in that guild.
bool dpp::interaction::is_user_app_interaction | ( | ) | const |
Returns true if this interaction occurred as a user-app interaction, e.g. within a DM or group DM, added to the user not a guild.
|
inlineconstexprnoexceptinherited |
Comparison operator for comparing two managed objects by id.
other | Other object to compare against |
|
inlineconstexprnoexceptinherited |
Comparison operator for comparing two managed objects by id.
other | Other object to compare against |
|
inlineinherited |
Convert object to nlohmann::json.
with_id | Whether to include the ID or not |
|
protectedvirtual |
Build a json for this object.
with_id | True if to include the ID in the JSON |
|
friend |
permission dpp::interaction::app_permissions |
Permissions of the bot in the channel/guild where this command was issued.
snowflake dpp::interaction::application_id |
ID of the application this interaction is for.
std::map<application_integration_types, snowflake> dpp::interaction::authorizing_integration_owners |
Context where the interaction was triggered from.
cache_policy_t dpp::interaction::cache_policy |
Cache policy from cluster.
dpp::channel dpp::interaction::channel |
Optional: The partial channel object where it was sent from.
snowflake dpp::interaction::channel_id |
Optional: the channel it was sent from.
std::optional<interaction_context_type> dpp::interaction::context |
Context where the interaction was triggered from.
std::variant<command_interaction, component_interaction, autocomplete_interaction> dpp::interaction::data |
Optional: the command data payload.
std::vector<entitlement> dpp::interaction::entitlements |
For monetized apps, any entitlements for the invoking user, representing access to premium SKUs.
snowflake dpp::interaction::guild_id |
Optional: the guild it was sent from.
std::string dpp::interaction::guild_locale |
Guild's locale (language) - for guild interactions only.
|
inherited |
Unique ID of object set by Discord. This value contains a timestamp, worker ID, internal server ID, and an incrementing value. Only the timestamp is relevant to us as useful metadata.
std::string dpp::interaction::locale |
User's locale (language).
guild_member dpp::interaction::member |
Optional: guild member data for the invoking user, including permissions. Filled when the interaction is invoked in a guild.
snowflake dpp::interaction::message_id |
Originating message id for context menu actions.
message dpp::interaction::msg |
Originating message for context menu actions.
command_resolved dpp::interaction::resolved |
Resolved data e.g. users, members, roles, channels, permissions, etc.
std::string dpp::interaction::token |
A continuation token for responding to the interaction.
uint8_t dpp::interaction::type |
The type of interaction from dpp::interaction_type.
user dpp::interaction::usr |
User object for the invoking user.
uint8_t dpp::interaction::version |
Read-only property, always 1.