reciple
TypeScript icon, indicating that this package has built-in type declarations

9.4.1 • Public • Published



Highlights

Using Templates

To use templates use the following command in your terminal:

npm create reciple@latest

After that configure the template you want to use. Learn More

CLI usage

Usage: reciple [options] [cwd]

Reciple is a Discord.js bot framework

Arguments:
  cwd                  Change the current working directory

Options:
  -v, --version        output the version number
  -t, --token <token>  Replace used bot token
  -c, --config <dir>   Set path to a config file
  -D, --debugmode      Enable debug mode
  -y, --yes            Agree to all Reciple confirmation prompts
  --env <file>         .env file location
  --shardmode          Modifies some functionalities to support sharding
  --setup              Create required config without starting the bot
  -h, --help           display help for command

Message Commands

Reciple provides a built-in MessageCommandBuilder class that can be used for message command handler.

Read Docs

import { MessageCommandBuilder } from 'reciple';

new MessageCommandBuilder()
    .setName("command")
    .setDescription("Your lil tiny description")
    .addAliases("cmd", "cmd1")
    .setExecute(command => command.message.reply("Hello!"));

Validate Message Command Options

Read Docs

import { MessageCommandBuilder } from 'reciple';

new MessageCommandBuilder()
    .setName("command")
    .setDescription("Your lil tiny description")
    .addAliases("cmd", "cmd1")
    .setValidateOptions(true) // Validate options
    .addOption(option => option
        .setName("quantity")
        .setDescription("Must be a number")
        .setRequired(true) // A required option
        .setValidate(({ value }) => !isNaN(Number(value))) // Validate value
        .setResolveValue(({ value }) => Number(value)) // Resolves the option value
    )
    .setExecute(async command => {
        /**
         * @type {number}
         */
        const quantity = await data.options.getOptionValue('number', { required: true, resolveValue: true });;
        await command.message.reply("Quantity: " + quantity);
    });

Context Menus

Reciple provides extended ContextMenuCommandBuilder class that can be used for context menu command handler.

Read Docs

import { ApplicationCommandType } from 'discord.js';
import { ContextMenuCommandBuilder } from 'reciple';

new ContextMenuCommandBuilder()
    .setName("Ban")
    .setType(ApplicationCommandType.User)
    .setExecute(async ({ interaction }) => {
        if (!interaction.inCachedGuild()) return;

        await interaction.deferReply();
        await interaction.targetMember.ban();
        await interaction.editReply(`Banned ${interaction.targetUser}`);
    });

Slash Commands

Reciple provides extended SlashCommandBuilder class that can be used for slash command handler. Read Docs

import { SlashCommandMenuBuilder } from 'reciple';

new SlashCommandBuilder()
    .setName("ping")
    .setDescription("Pong")
    .setExecute(async ({ interaction }) => {
        await interaction.reply(`Pong!`);
    });

Command Cooldowns

Read Docs

import { ContextMenuCommandBuilder, MessageCommandBuilder, SlashCommandBuilder } from 'reciple';
import { ApplicationCommandType } from 'discord.js';

new ContextMenuCommandBuilder()
    .setName("Context Menu")
    .setType(ApplicationCommandType.Message)
    .setCooldown(1000 * 5) // 5 seconds cooldown
    .setExecute(async ({ interaction }) => {
        await interaction.reply(`Hello!`);
    });

new MessageCommandBuilder()
    .setName("message-command")
    .setDescription(`Your command`)
    .setCooldown(1000 * 5) // 5 seconds cooldown
    .setExecute(async ({ message }) => {
        await message.reply(`Hello!`);
    });

new SlashCommandBuilder()
    .setName("slash-command")
    .setDescription(`Your command`)
    .setCooldown(1000 * 5) // 5 seconds cooldown
    .setExecute(async ({ interaction }) => {
        await interaction.reply(`Hello!`);
    });

Config

You can configure the bot in reciple.mjs usually located in the bot's root directory.

Token

You can change the token in config.

token: "Your Token" // Directly set token string
token: process.env.TOKEN // Use env variable

You can override the given token as cli flag

reciple --token "YOUR_TOKEN_HERE"
reciple --token "env:TOKEN_VARIABLE"

Fun Fact

The name reciple is from a minecraft bug. The bug was a misspelling of the word recipe. View Mojang Bug Report

Package Sidebar

Install

npm i reciple

Weekly Downloads

161

Version

9.4.1

License

GPL-3.0

Unpacked Size

94.6 kB

Total Files

26

Last publish

Collaborators

  • catplusplus