2.0.2 • Published 11 months ago

@elenoragroup/simple-slash v2.0.2

Weekly downloads
-
License
GPL-3.0-or-later
Repository
github
Last release
11 months ago

About

simple-slash is a utility package for building the Discord Slash Commands JSON simply.

Installation

This was built with Node.js v20.11.0

npm install @elenoragroup/simple-slash

Links

Examples

Base Command

// Import SimpleSlash and Constants
import SimpleSlash, { Constants } from '@elenoragroup/simple-slash';

// Create the definition for the command and set a Command Type
const definition = new SimpleSlash('ping', 'pong').setCommandType(Constants.ApplicationCommandType.ChatInput);

Arguments

addStringOption

Parameters

addStringOption({
    name: string;
    description: string;
    required?: boolean;
    autocomplete?: boolean;
    choices?: Array<string | {
        name: string;
        value: string;
    }>;
    min_length?: number;
    max_length?: number;
})

Base addStringOption

import SimpleSlash, { Constants } from '@elenoragroup/simple-slash';

// Create the definition for the command
const definition = new SimpleSlash('stats', "Look up someone's stats")
    .setCommandType(Constants.ApplicationCommandType.ChatInput)
    .addStringOption({ name: 'name', description: 'The name of the person to look up' });

addStringOption with Choices - Choices are automatically lowercased and all spaces replaced with _ for the value, unless an object is passed in.

import SimpleSlash, { Constants } from '@elenoragroup/simple-slash';

// Create the definition for the command
const definition = new SimpleSlash('stats', "Look up someone's stats")
    .setCommandType(Constants.ApplicationCommandType.ChatInput)
    .addStringOption({
        name: 'name',
        description: "Who's stats would you like to see?",
        required: true,
        choices: ['Timmy', 'Peter', 'Jimmy John', { name: 'SUSIE', value: 'susie' }],
    });

addIntegerOption | addNumberOption

Parameters

addIntegerOption({
    name: string;
    description: string;
    required?: boolean;
    autocomplete?: boolean;
    choices?: Array<{
        name: string;
        value: number;
    }>;
    min_value?: number;
    max_value?: number;
})

Base addIntegerOption | addNumberOption

import SimpleSlash, { Constants } from '@elenoragroup/simple-slash';

// Create the definition for the command
const definition = new SimpleSlash('stats', "Look up someone's stats")
    .setCommandType(Constants.ApplicationCommandType.ChatInput)
    .addIntegerOption({ name: 'amount', description: 'How many puppies would you like to see?' });

addChannelOption

Parameters

addChannelOption(
    name: string,
    description: string,
    required?: boolean,
    types?: Array<Exclude<Constants.ChannelType, Constants.ChannelType.DM | Constants.ChannelType.GroupDM>>
)

Base addChannelOption

import SimpleSlash, { Constants } from '@elenoragroup/simple-slash';

// Create the definition for the command
const definition = new SimpleSlash('stats', "Look up someone's stats")
    .setCommandType(Constants.ApplicationCommandType.ChatInput)
    .addChannelOption('channel_name', 'What channel would you like to set?', true, [Constants.ChannelType.GuildText]);

addBooleanOption | addUserOption | addRoleOption | addMentionableOption | addAttachmentOption

Parameters

addUserOption(
    name: string,
    description: string,
    required = false
)

Base addBooleanOption | addUserOption | addRoleOption | addMentionableOption | addAttachmentOption

import SimpleSlash, { Constants } from '@elenoragroup/simple-slash';

// Create the definition for the command
const definition = new SimpleSlash('stats', "Look up someone's stats")
    .setCommandType(Constants.ApplicationCommandType.ChatInput)
    .addUserOption('user', "Who's profile would you like to see?");

addSubcommand | addSubcommandGroup

Parameters

addSubcommand(
    name: string,
    description: string,
    cb?: (builder: SimpleSlash) => void
)

Base addSubcommand | addSubcommandGroup

import SimpleSlash, { Constants } from '@elenoragroup/simple-slash';

// Create the definition for the command
const definition = new SimpleSlash('stats', "Look up someone's stats")
    .setCommandType(Constants.ApplicationCommandType.ChatInput)
    .addSubcommand('lookup', "Look up someone's stats", (sub) => {
        sub.addStringOption({ name: 'name', description: 'The name of the person to look up', required: true });
    });