1.4.1 • Published 9 days ago

sleetcord v1.4.1

Weekly downloads
-
License
MIT
Repository
-
Last release
9 days ago

sleetcord

An interaction-first command handler for Discord.js

npm GitHub Typescript typings

Sleetcord is an interaction "router" and set of helpers to make building a Discord.js bot using interactions easier

Sleetcord aims to act more like a helpful "layer" between you and Discord structures, without trying to impose any kind of file structure "magic" or requirements

More helpers are available in sleetcord-common

!WARNING While sleetcord is publicly available (and on NPM), documentation is (and likely will always be) lacking. You are free to use it and submit requests, but this is mainly for my own personal use. You will likely be on your own for most support (Sorry! I have to maintain too many things at the same time already).

Usage

npm install sleetcord

const echo = new SleetSlashCommand({
  name: 'echo',
  description: 'Echoes your message!',
  // An array of permission strings can be provided and they'll be automatically parsed into a bitfield
  default_member_permissions: ['ManageMessages'],
  options: [{
    name: 'message',
    // You can use discord-api-types or the type number directly (i.e. `3`)
    type: ApplicationCommandOptionType.String,
    description: 'The message to echo',
    required: true,
    // Autocomplete handlers can be directly attached to options
    // Sleetcord will automatically set `autocomplete: true` when serializing the body, and will call the autocomplete handler automatically
    autocomplete: (interaction, name, value) => [
      {
        name: value,
        value: `${value}!`,
      },
    ],
  }, {
    name: 'allowed_mentions',
    type: ApplicationCommandOptionType.String,
    description: 'What users to allow to mention',
  }]
}, {
  // Run is called only when `/echo` is ran
  run: async (interaction) => {
    const message = interaction.options.getString('message')
    // Accepts both @mentions or user ids, and fetches the users for you!
    const allowedMentions = (await getUsers(interaction, 'allowed_mentions')) ?? []

    const users = allowedMentions.map((user) => user.id)

    interaction.reply({
      content: message,
      ephemeral,
      allowedMentions: {
        users,
      },
    })
  },
  // Other events can also be listened to, and the respective event listeners will automatically be attached
  ready: () => {
    console.log('The bot entered READY!')
  }
})

const sleetClient = new SleetClient({
  sleet: {
    token: TOKEN,
    applicationId: APPLICATION_ID,
  },
  client: {
    intents: [],
  },
})

sleetClient.addModules([echo])
// Sleetcord will check modules for slash/user/message commands and turn them into JSON, then send them
sleetClient.putCommands()
sleetClient.login()
1.4.1

9 days ago

1.4.0

10 days ago

1.3.0

11 days ago

1.2.2

4 months ago

1.2.1

6 months ago

1.2.0

8 months ago

1.1.0

8 months ago

1.0.0

8 months ago

0.18.1

8 months ago

0.11.0

11 months ago

0.10.1

11 months ago

0.12.0

11 months ago

0.10.2

11 months ago

0.13.0

11 months ago

0.14.0

11 months ago

0.13.1

11 months ago

0.15.0

11 months ago

0.13.2

11 months ago

0.16.0

9 months ago

0.15.1

10 months ago

0.17.0

8 months ago

0.16.1

9 months ago

0.15.2

10 months ago

0.18.0

8 months ago

0.17.1

8 months ago

0.16.2

9 months ago

0.10.0

11 months ago

0.15.1-beta.0

10 months ago

0.15.0-beta.0

10 months ago

0.15.1-beta.1

10 months ago

0.9.0

1 year ago

0.8.1

1 year ago

0.8.0

1 year ago

0.7.1

1 year ago

0.7.0

1 year ago

0.6.1

2 years ago

0.6.0

2 years ago

0.5.0

2 years ago

0.4.0

2 years ago

0.3.1

2 years ago

0.3.0

2 years ago

0.2.1

2 years ago

0.2.0

2 years ago

0.1.1

2 years ago

0.1.0

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago