autocode-discord-interaction

1.2.0 • Public • Published

Autocode Discord Interaction

This npm makes it easy to use discord interactions inside autocode.

Change log

v-1.2.0

  1. Improved file uploading.
  2. Overall code revamped.

v-1.1.0

Improved returned response schemes.

v-1.0.0

Added support for modal interaction. example

v-0.0.6

A small bug fixed.

v-0.0.5

Forgot to add form-data package inside the npm so error go brrrr.... 🤦‍♂️🤦‍♂️🤦‍♂️🤦‍♂️🤦‍♂️🤦‍♂️

v-0.0.4

Fixed a small bug where it will give error when attachments params is not provided. 😅🤦‍♂️

v-0.0.3

  1. Added support for uploading files.
  2. Improved readme :)

Available APIs

  1. Callback
API types Description
command_reply Reply to any application command. Eg: slash command
command_defer Reply with a thinking message to any application command that can be edited later.
component_defer Acknowledge a message component that can be edited later. Eg: buttons
component_update Update the message where the component was present.
autocomplete Return some choices to the user.
form_modal Reply with a popup form.
  1. Followup
API types Description
edit_original Edit the original message created for the interaction.
get_original Get info about the original message created for the interaction.
delete_original Delete the original message created for the interaction.
create Create a new followup message for an interaction. (can only be used if the interaction was already replied by any of the callback apis)
get Get info about any newly created followup message.
edit Edit any followup message
delete Delete any followup message

Note: Some of the apis for followup are not fully tested, so if you find any bugs please report it.

Example uses

Modal interaction

await interaction.callback.form_modal(event, {
    custom_id: `form_1`,
    title: 'This is an example form',
    text_inputs: [
      {
        style: 'short',
        custom_id: 'name',
        label: `What's your name?`,
        placeholder: `write your name here`, // optional
        required: true, // optional
        //value: 'some default value',
        //max_length: 100,
        min_length: 1, // optional
      },
      {
        style: 'long', 
        custom_id: 'description',
        label: `Describe yourself.`,
        placeholder: `Some text here`, // optional
        required: true, // optional
        //value: 'some default value',
        //max_length: 100,
        min_length: 1, // optional
      },
    ]
  })

modal interaction

You can upto 5 text inputs

Uploading files/attachments

const interaction = require('autocode-discord-interaction')

await interaction.callback.command_reply(context.params.event,{
    content: 'file',
    attachments: [
      {
        name: 'file.txt', //any file name with extension
        buffer: Buffer.from('hello'), //any buffer under 8 mb, could be more if the server is boosted
        description: 'some text' //any string, this params is optional
      }
    ]
})

You can upload upto 10 file in one message.

Reply any application command with a normal message

const interaction = require('autocode-discord-interaction')

await interaction.callback.command_reply(context.params.event,{
    content: 'hello!'
})

normal reply

Reply any application command with an ephemeral message

const interaction = require('autocode-discord-interaction')

await interaction.callback.command_reply(context.params.event,{
    content: 'hello!'
},{ephemeral: true})

ephemeral reply

Reply any application command with a thinking message/defer message

const interaction = require('autocode-discord-interaction')

await interaction.callback.command_defer(context.params.event)

defer message

Ephemeral thinking message also works.

ephemeral defer message

For more details check out my app in autocode.

Package Sidebar

Install

npm i autocode-discord-interaction

Weekly Downloads

0

Version

1.2.0

License

MIT

Unpacked Size

17.9 kB

Total Files

3

Last publish

Collaborators

  • meiraba