============ Interactions ============ Interactions are utilized in message components and slash commands. Attributes ========== +----------------+----------------------+------------------------------------------------------+ | name | type | description | +================+======================+======================================================+ | id | string | id of the interaction. | +----------------+----------------------+------------------------------------------------------+ | application_id | string | id of the application associated to the interaction. | +----------------+----------------------+------------------------------------------------------+ | int | type | type of interaction. | +----------------+----------------------+------------------------------------------------------+ | data | ``?InteractionData`` | data associated with the interaction. | +----------------+----------------------+------------------------------------------------------+ | guild | ``?Guild`` | guild interaction was triggered from, null if DM. | +----------------+----------------------+------------------------------------------------------+ | channel | ``?Channel`` | channel interaction was triggered from. | +----------------+----------------------+------------------------------------------------------+ | member | ``?Member`` | member that triggered interaction. | +----------------+----------------------+------------------------------------------------------+ | user | ``User`` | user that triggered interaction. | +----------------+----------------------+------------------------------------------------------+ | token | string | internal token for responding to interaction. | +----------------+----------------------+------------------------------------------------------+ | version | int | version of interaction. | +----------------+----------------------+------------------------------------------------------+ | message | ``?Message`` | message that triggered interaction. | +----------------+----------------------+------------------------------------------------------+ | locale | ?string | The selected language of the invoking user. | +----------------+----------------------+------------------------------------------------------+ | guild_locale | ?string | The guild’s preferred locale, if invoked in a guild. | +----------------+----------------------+------------------------------------------------------+ The locale list can be seen on `Discord API reference `_. Functions on interaction create =============================== The following functions are used to respond an interaction after being created ``Event::INTERACTION_CREATE``, responding interaction with wrong type throws a ``LogicException`` +----------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------+------------------------------------------------------------------+ | name | description | valid for interaction type | +==============================================================================================+=============================================================================+==================================================================+ | ``acknowledgeWithResponse(?bool $ephemeral)`` | acknowledges the interaction, creating a placeholder response to be updated | ``APPLICATION_COMMAND``, ``MESSAGE_COMPONENT``, ``MODAL_SUBMIT`` | +----------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------+------------------------------------------------------------------+ | ``acknowledge()`` | defer the interaction | ``MESSAGE_COMPONENT``, ``MODAL_SUBMIT`` | +----------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------+------------------------------------------------------------------+ | ``respondWithMessage(MessageBuilder $builder, ?bool $ephemeral)`` | responds to the interaction with a message. ephemeral is default false | ``APPLICATION_COMMAND``, ``MESSAGE_COMPONENT``, ``MODAL_SUBMIT`` | +----------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------+------------------------------------------------------------------+ | ``autoCompleteResult(array $choices)`` | responds a suggestion to options with auto complete | ``APPLICATION_COMMAND_AUTOCOMPLETE`` | +----------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------+------------------------------------------------------------------+ | ``showModal(string $title, string $custom_id, array $components, ?callable $submit = null)`` | responds to the interaction with a popup modal | ``MODAL_SUBMIT`` | +----------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------+------------------------------------------------------------------+ Functions after interaction response ==================================== The following functions can be only used after interaction respond above, otherwise throws a ``RuntimeException`` “Interaction has not been responded to.” +------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+----------------------+ | name | description | return | +========================================================================+================================================================================================+======================+ | ``updateMessage(MessageBuilder $message)`` | updates the message the interaction was triggered from. only for message component interaction | ``Promise`` | +------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+----------------------+ | ``getOriginalResponse()`` | gets the original interaction response | ``Promise`` | +------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+----------------------+ | ``updateOriginalResponse(MessageBuilder $message)`` | updates the original interaction response | ``Promise`` | +------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+----------------------+ | ``deleteOriginalResponse()`` | deletes the original interaction response | ``Promise`` | +------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+----------------------+ | ``sendFollowUpMessage(MessageBuilder $builder, ?bool $ephemeral)`` | sends a follow up message to the interaction. ephemeral is defalt false | ``Promise`` | +------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+----------------------+ | ``getFollowUpMessage(string $message_id)`` | gets a non ephemeral follow up message from the interaction | ``Promise`` | +------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+----------------------+ | ``updateFollowUpMessage(string $message_id, MessageBuilder $builder)`` | updates the follow up message of the interaction | ``Promise`` | +------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+----------------------+ | ``deleteFollowUpMessage(string $message_id)`` | deletes a follow up message from the interaction | ``Promise`` | +------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+----------------------+