Inferred slash command arguments

Slash commands handle arguments differently, however NYXBCommands will allow you to specify your slash command arguments in the same way as normal commands.

typescript
import { CommandObject, CommandType, CommandUsage } from '@nyxb/commands'

export default {
  description: 'Adds numbers together',

  // Only register a slash command, not a legacy command
  type: CommandType.SLASH,

  minArgs: 2,
  maxArgs: 2,
  expectedArgs: '<num1> <num2>',

  callback: (options: CommandUsage) => {
    const { args } = options

    const sum = args.reduce((acc, cur) => {
      return acc + Number(cur)
    }, 0)

    return `The sum is ${sum}`
  },
} as CommandObject
javascript
const { CommandType, CommandObject, CommandUsage } = require('@nyxb/commands')

module.exports = {
  description: 'Adds numbers together',

  // Only register a slash command, not a legacy command
  type: CommandType.SLASH,

  minArgs: 2,
  maxArgs: 2,
  expectedArgs: '<num1> <num2>',

  callback: ({ args }) => {
    const sum = args.reduce((acc, cur) => {
      return acc + Number(cur)
    }, 0)

    return `The sum is ${sum}`
  },
}

Behind the scenes NYXBCommands will create an array of options for your slash commands. As you will see in the next section you can always customize these options if need be.

When using inferred arguments with slash commands, it's very important that you provide minArgs and expectedArgs properties.