D++ (DPP)
C++ Discord API Bot Library
dpp::interaction Class Reference

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>

+ Inheritance diagram for dpp::interaction:
+ Collaboration diagram for dpp::interaction:

Public Member Functions

 interaction ()
 Construct a new interaction object. More...
 
virtual ~interaction ()=default
 
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...
 
interactionfill_from_json (nlohmann::json *j)
 Fill object properties from JSON. More...
 
std::string build_json (bool with_id=false) const
 Build a json string for this object. More...
 
double get_creation_time () const
 Get the creation time of this object according to Discord. More...
 
bool operator== (const managed &other) const noexcept
 Comparison operator for comparing two managed objects by id. More...
 
bool operator!= (const managed &other) const noexcept
 Comparison operator for comparing two managed objects by id. More...
 

Public Attributes

snowflake application_id
 id of the application this interaction is for More...
 
uint8_t type
 the type of interaction More...
 
std::variant< command_interaction, component_interaction, autocomplete_interactiondata
 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...
 
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. More...
 
user usr
 Optional: user object for the invoking user, if invoked in a DM. 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 user/role 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...
 
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...
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ interaction()

dpp::interaction::interaction ( )

Construct a new interaction object.

◆ ~interaction()

virtual dpp::interaction::~interaction ( )
virtualdefault

Member Function Documentation

◆ build_json()

std::string dpp::interaction::build_json ( bool  with_id = false) const
virtual

Build a json string for this object.

Parameters
with_idTrue if to include the ID in the JSON
Returns
std::string JSON string

Reimplemented from dpp::json_interface< interaction >.

◆ fill_from_json()

interaction & dpp::interaction::fill_from_json ( nlohmann::json *  j)

Fill object properties from JSON.

Parameters
jJSON to fill from
Returns
interaction& Reference to self

◆ get_autocomplete_interaction()

autocomplete_interaction dpp::interaction::get_autocomplete_interaction ( ) const

Get the autocomplete interaction object.

Exceptions
dpp::logic_exceptionif the interaction is not for an autocomplete
Returns
autocomplete_interaction object

◆ get_command_interaction()

command_interaction dpp::interaction::get_command_interaction ( ) const

Get the command interaction object.

Exceptions
dpp::logic_exceptionif the interaction is not for a command
Returns
command_interaction object

◆ get_command_name()

std::string dpp::interaction::get_command_name ( ) const

Get the command name for a command interaction.

Returns
std::string command interaction, or empty string if the interaction is not for a command.

◆ get_component_interaction()

component_interaction dpp::interaction::get_component_interaction ( ) const

Get the component interaction object.

Exceptions
dpp::logic_exceptionif the interaction is not for a component
Returns
component_interaction object

◆ get_creation_time()

double dpp::managed::get_creation_time ( ) const
inherited

Get the creation time of this object according to Discord.

Returns
double creation time inferred from the snowflake ID. The minimum possible value is the first second of 2015.

◆ operator!=()

bool dpp::managed::operator!= ( const managed other) const
noexceptinherited

Comparison operator for comparing two managed objects by id.

Parameters
otherOther object to compare against
Returns
true objects are not the same id
false objects are the same id

◆ operator==()

bool dpp::managed::operator== ( const managed other) const
noexceptinherited

Comparison operator for comparing two managed objects by id.

Parameters
otherOther object to compare against
Returns
true objects are the same id
false objects are not the same id

Member Data Documentation

◆ app_permissions

permission dpp::interaction::app_permissions

Permissions of the bot in the channel/guild where this command was issued.

◆ application_id

snowflake dpp::interaction::application_id

id of the application this interaction is for

◆ cache_policy

cache_policy_t dpp::interaction::cache_policy

Cache policy from cluster.

◆ channel_id

snowflake dpp::interaction::channel_id

Optional: the channel it was sent from.

◆ data

std::variant<command_interaction, component_interaction, autocomplete_interaction> dpp::interaction::data

Optional: the command data payload.

◆ guild_id

snowflake dpp::interaction::guild_id

Optional: the guild it was sent from.

◆ guild_locale

std::string dpp::interaction::guild_locale

Guild's locale (language) - for guild interactions only.

◆ id

snowflake dpp::managed::id
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.

◆ locale

std::string dpp::interaction::locale

User's locale (language)

◆ member

guild_member dpp::interaction::member

Optional: guild member data for the invoking user, including permissions.

◆ message_id

snowflake dpp::interaction::message_id

Originating message id for context menu actions.

◆ msg

message dpp::interaction::msg

Originating message for context menu actions.

◆ resolved

command_resolved dpp::interaction::resolved

Resolved user/role etc.

◆ token

std::string dpp::interaction::token

a continuation token for responding to the interaction

◆ type

uint8_t dpp::interaction::type

the type of interaction

◆ usr

user dpp::interaction::usr

Optional: user object for the invoking user, if invoked in a DM.

◆ version

uint8_t dpp::interaction::version

read-only property, always 1

D++ Library version 10.0.35D++ Library version 10.0.34D++ Library version 10.0.33D++ Library version 10.0.32D++ Library version 10.0.31D++ Library version 10.0.30D++ Library version 10.0.29D++ Library version 10.0.28D++ Library version 10.0.27D++ Library version 10.0.26D++ Library version 10.0.25D++ Library version 10.0.24D++ Library version 10.0.23D++ Library version 10.0.22D++ Library version 10.0.21D++ Library version 10.0.20D++ Library version 10.0.19D++ Library version 10.0.18D++ Library version 10.0.17D++ Library version 10.0.16D++ Library version 10.0.15D++ Library version 10.0.14D++ Library version 10.0.13D++ Library version 10.0.12D++ Library version 10.0.11D++ Library version 10.0.10D++ Library version 10.0.9D++ Library version 10.0.8D++ Library version 10.0.7D++ Library version 10.0.6D++ Library version 10.0.5D++ Library version 10.0.4D++ Library version 10.0.3D++ Library version 10.0.2D++ Library version 10.0.1D++ Library version 10.0.0D++ Library version 9.0.19D++ Library version 9.0.18D++ Library version 9.0.17D++ Library version 9.0.16D++ Library version 9.0.15D++ Library version 9.0.14D++ Library version 9.0.13D++ Library version 9.0.12D++ Library version 9.0.11D++ Library version 9.0.10D++ Library version 9.0.9D++ Library version 9.0.8D++ Library version 9.0.7D++ Library version 9.0.6D++ Library version 9.0.5D++ Library version 9.0.4D++ Library version 9.0.3D++ Library version 9.0.2D++ Library version 9.0.1D++ Library version 9.0.0D++ Library version 1.0.2D++ Library version 1.0.1D++ Library version 1.0.0