Skip to content
This repository was archived by the owner on Aug 29, 2021. It is now read-only.

Dexare/slash-create

Folders and files

NameName
Last commit message
Last commit date
Jul 6, 2021
Jul 6, 2021
Jul 6, 2021
Jul 6, 2021
Jul 6, 2021
Jul 6, 2021
Jul 6, 2021
Jul 6, 2021
Jul 6, 2021
Jul 6, 2021
Jul 6, 2021
Jul 6, 2021
Jul 6, 2021
Jul 6, 2021
Jul 12, 2021
Jul 6, 2021

Repository files navigation

A Dexare module for managing slash commands with slash-create.

npm install @dexare/slash-create
const { DexareClient } = require('dexare');
const SlashCreateModule = require('@dexare/slash-create');

const config = {
  // All props in this config are optional EXCEPT applicationID, defaults are shown unless told otherwise
  slashCreate: {
    // This must be your bot application's ID
    applicationID: '1234567890',

    /**
     * Other options are mirrored from slash-create's creator options:
     *  https://slash-create.js.org/#/docs/main/latest/typedef/SlashCreatorOptions
     *
     * The following variables are not used since they are mirrored from Dexare:
     *  handleCommandsManually, allowedMentions, defaultImageFormat, defaultImageSize,
     *  ratelimiterOffset, latencyThreshold, requestTimeout, agent, token
     */
  }
}

const client = new DexareClient(config);
client.loadModules(SlashCreateModule);

// load commands here...
// This must be done before syncing.

const slashCreate = client.modules.get('slash-create');
slashCreate.sync();

Command Example

Note: Throttling and permissions must be handled within slashRun().

// ./src/commands/example.js
const { DexareClient, CommandContext } = require('dexare');
const { CommandContext: SlashCommandContext, CommandOptionType } = require('slash-create');
const { SlashableDexareCommand } = require('@dexare/slash-create');

export class ExampleCommand extends SlashableDexareCommand {
  constructor(client: DexareClient<any>) {
    super(
      client,
      { name: 'example' },
      {
        // The slash command name can differ from the base command
        name: 'dexare',
        description: 'Example description'
      }
    );

    this.filePath = __filename;
  }

  async run(ctx: CommandContext) {
    return 'This is from Dexare!';
  }

  async slashRun(ctx: SlashCommandContext) {
    return 'This is also from Dexare!';
  }
}