djc

@gary50613/discord.js-command-handler

Simple command handler for discord.js v13

Showing:

Popularity

Downloads/wk

72

GitHub Stars

7

Maintenance

Last Commit

1mo ago

Contributors

4

Package

Dependencies

0

License

ISC

Type Definitions

Built-In

Tree-Shakeable

No?

Categories

Readme

discord.js-command-handler

Buy Me a Coffee at ko-fi.com

Simple command handler for discord.js

[繁體中文](docs/README-zh.md)


Install

run this in your terminal

npm i @gary50613/discord.js-command-handler

Test

npm i
npm test

✨ Features

  • easy to set up
  • works perfectly with discord.js
  • ratelimit support
  • error handling with event
  • event listening
  • commands group support
  • SLASH COMMAND SUPPORT (beta)

Usage

JavaScript

basic how to initialize with [options](#options)

const Discord = require('discord.js')

// import a command
const ping = require("./commands/ping")

const bot = new Discord.Client()
require("@gary50613/djs-command-handler")(bot, {
    prefix: '.',
    // options
})

// load a whole folder's commands
bot.commands.loadCommands("./commands")

// register a command
bot.commands.register(new ping())

// or register multiple command at the same time
bot.commands.register(new ping(), ..., ...)

// listen to event
bot.commands.on("dm", (m) => {
    m.channel.send("u can only use command in a guild!")
})

bot.login(process.env.TOKEN)

make a command

const { Command } = require("@gary50613/djs-command-handler")

class Ping extends Command {
    constructor() {
        super(
            "ping", // name
            "ping the bot", // description
            ".ping", // usage
            "general", // group
            ["pong"] // alias
        );
    }
    
    // execute function to call
    async execute(bot, message, args) {
        // just write like normal discord.js
        message.reply('pong!')
    }
}

module.exports = Ping

TypeScript

basic how to initialize with [options](#options)

import { Client } from "discord.js"
import init from "@gary50613/discord.js-command-handler"

// import a command
import ping from "./commands/Ping"

const bot = new Client()
init(bot, {
    prefix: ".",
    // options
})

// load a whole folder's commands
bot.commands.loadFolder("./commands")

// register a command
bot.commands.register(new ping())

// or register multiple command at the same time
bot.commands.register(new ping(), ..., ...)

// listen to event
bot.commands.on("dm", (m) => {
    m.channel.send("u can only use command in a guild!")
})

bot.login(process.env.TOKEN)

make a command

import { Command } from "@gary50613/discord.js-command-handler";
import { Client, Guild, GuildMember, Message } from "discord.js";

export default class Ping extends Command {
    public constructor() {
        super(
            "ping", // name
            "ping the bot", // description
            ".ping", // usage
            "general", // group
            ["pong"] // alias
        );
    }

    public async execute(bot: Client, message: Message, args: string[]) {
        // just write like normal discord.js
        message.reply("pong!")
    }
}

Event

typedescriptionparameter
dmuser execute a command in dmMessage
ratelimituser get ratelimitedMillisecond, Message
executecommand successfully executedCommand, Message
errorcommand execute errorError, Command, Message
promiseErrorpromise rejectionError, Command, Message

Reference

options

{
    ratelimit: {
        enable: false, // whether enable ratelimit
        interval: 5000, // interval to limit
        bypass: {
            users: [], // specific users ID can bypass ratelimit 
            permissions: ["ADMINISTRATOR"], // specific perimissions FLAG can bypass ratelimit
            roles: [] // // specific roles ID can bypass ratelimit
        }
    },
    prefix: "PREFIX", // bot's prefix
    dm: false, // whether accept dm commands
    bot: false // whether accept bot execute command  
}

Author

🧑‍💻 Kane

  • Github [@Gary50613](https://github.com/Gary50613)

❤️ Contributing

Feel free to open [issue](https://github.com/Gary50613/discordjs-command-handler/issues) or join [my discord server](https://discord.gg/ct2ufag)

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100