An interaction represents a user running a command and arrives via the dpp::cluster::on_interaction_create event. More...
#include "appcommand.h"
Public Member Functions | |
interaction () | |
Construct a new interaction object. More... | |
virtual | ~interaction ()=default |
Destroy the interaction object. More... | |
std::string | build_json (bool with_id=false) const |
Convert object to json string. More... | |
interaction & | fill_from_json (nlohmann::json *j) |
Convert object from nlohmann::json. More... | |
autocomplete_interaction | get_autocomplete_interaction () const |
Get the autocomplete interaction object. More... | |
const dpp::channel & | get_channel () const |
Get the channel this command originated on. More... | |
command_interaction | get_command_interaction () const |
Get the command interaction object. More... | |
std::string | get_command_name () const |
Get the command name for a command interaction. More... | |
component_interaction | get_component_interaction () const |
Get the component interaction object. More... | |
const dpp::message & | get_context_message () const |
Get the message this action refers to if it is a context menu command. More... | |
constexpr double | get_creation_time () const noexcept |
Get the creation time of this object according to Discord. 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::attachment & | get_resolved_attachment (snowflake id) const |
Get an uploaded attachment associated with the slash command from the resolved list. More... | |
const dpp::channel & | get_resolved_channel (snowflake id) const |
Get a channel associated with the slash command from the resolved list. More... | |
const dpp::guild_member & | get_resolved_member (snowflake id) const |
Get a guild member associated with the slash command from the resolved list. More... | |
const dpp::message & | get_resolved_message (snowflake id) const |
Get a message associated with the slash command from the resolved list. More... | |
const dpp::permission & | get_resolved_permission (snowflake id) const |
Get a permission associated with the slash command from the resolved list. More... | |
const dpp::role & | get_resolved_role (snowflake id) const |
Get a role associated with the slash command from the resolved list. More... | |
const dpp::user & | get_resolved_user (snowflake id) const |
Get a user associated with the slash command from the resolved list. 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... | |
auto | to_json (bool with_id=false) const |
Convert object to nlohmann::json. More... | |
Public Attributes | |
permission | app_permissions |
Permissions of the bot in the channel/guild where this command was issued. More... | |
snowflake | application_id |
ID of the application this interaction is for. More... | |
cache_policy_t | cache_policy |
Cache policy from cluster. More... | |
dpp::channel | channel |
Optional: The partial channel object where it was sent from. More... | |
snowflake | channel_id |
Optional: the channel it was sent from. More... | |
std::variant< command_interaction, component_interaction, autocomplete_interaction > | data |
Optional: the command data payload. More... | |
std::vector< entitlement > | entitlements |
For monetized apps, any entitlements for the invoking user, representing access to premium SKUs. More... | |
snowflake | guild_id |
Optional: the guild it was sent from. More... | |
std::string | guild_locale |
Guild's locale (language) - for guild interactions only. More... | |
snowflake | id = {} |
Unique ID of object set by Discord. More... | |
std::string | locale |
User's locale (language). More... | |
guild_member | member |
Optional: guild member data for the invoking user, including permissions. More... | |
snowflake | message_id |
Originating message id for context menu actions. More... | |
message | msg |
Originating message for context menu actions. More... | |
command_resolved | resolved |
Resolved data e.g. More... | |
std::string | token |
A continuation token for responding to the interaction. More... | |
uint8_t | type |
The type of interaction from dpp::interaction_type. More... | |
user | usr |
User object for the invoking user. More... | |
uint8_t | version |
Read-only property, always 1. More... | |
Protected Member Functions | |
interaction & | fill_from_json_impl (nlohmann::json *j) |
Fill object properties from JSON. More... | |
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... | |
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.
References data.
|
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 |
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 |
References dpp::slashcommand::name, and dpp::utility::slashcommand_mention().
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.
References dpp::slashcommand::description_localizations, and dpp::slashcommand::name_localizations.
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.
References dpp::command_interaction::name, and dpp::utility::slashcommand_mention().
|
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 |
References dpp::find_guild(), and guild_id.
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 |
References usr.
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 |
References msg.
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 |
References channel_id, and dpp::find_channel().
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 |
References dpp::command_resolved::attachments, dpp::managed::id, and resolved.
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 |
References dpp::managed::id, dpp::command_resolved::messages, and resolved.
|
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 |
References dpp::command_option::description_localizations.
|
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.
Referenced by dpp::interaction_create_t::dialog().
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.
Referenced by get_resolved_permission(), dpp::interaction_create_t::reply(), and dpp::interaction_create_t::thinking().
std::variant<command_interaction, component_interaction, autocomplete_interaction> dpp::interaction::data |
Optional: the command data payload.
Referenced by interaction().
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.
Referenced by get_resolved_attachment().
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.
Referenced by dpp::poll::add_answer(), dpp::cluster::create_webhook(), dpp::cluster::current_user_join_thread(), dpp::invite::fill_from_json_impl(), dpp::command_permission::fill_from_json_impl(), get_resolved_role(), get_resolved_user(), dpp::cluster::global_bulk_command_create(), dpp::cluster::global_bulk_command_delete(), dpp::cluster::global_command_delete(), dpp::cluster::global_command_edit(), dpp::cluster::guild_ban_delete(), dpp::cluster::guild_command_create(), dpp::cluster::guild_command_edit_permissions(), dpp::cluster::guild_get_integrations(), dpp::events::guild_member_update::handle(), dpp::events::guild_role_create::handle(), dpp::events::channel_create::handle(), dpp::events::voice_state_update::handle(), dpp::discord_voice_client::handle_frame(), main(), dpp::component::set_disabled(), and dpp::select_option::set_label().
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.
Referenced by get_resolved_member().
command_resolved dpp::interaction::resolved |
Resolved data e.g.
users, members, roles, channels, permissions, etc.
Referenced by dpp::command_permission::fill_from_json_impl(), get_resolved_role(), and get_resolved_user().
std::string dpp::interaction::token |
A continuation token for responding to the interaction.
Referenced by dpp::interaction_create_t::dialog().
uint8_t dpp::interaction::type |
The type of interaction from dpp::interaction_type.
user dpp::interaction::usr |
User object for the invoking user.
Referenced by get_resolved_channel().
uint8_t dpp::interaction::version |
Read-only property, always 1.