UNPKG

@gary50613/discord.js-command-handler

Version:
180 lines (144 loc) 4.39 kB
# discord.js-command-handler <a href='https://ko-fi.com/Gary50613' target='_blank'><img height='35' style='border:0px;height:46px;' src='https://az743702.vo.msecnd.net/cdn/kofi3.png?v=0' border='0' alt='Buy Me a Coffee at ko-fi.com' /> > Simple command handler for discord.js [繁體中文](docs/README-zh.md) *** ## Install run this in your terminal ```shell npm i @gary50613/discord.js-command-handler ``` ## Test ```shell 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) ```js 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 ```js 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) ```ts 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 ```ts 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 type | description | parameter ---|---|--- dm | user execute a command in dm | Message ratelimit | user get ratelimited | Millisecond, Message execute | command successfully executed | Command, Message error | command execute error | Error, Command, Message promiseError | promise rejection | Error, Command, Message ## Reference ### options ```js { 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)