Command dispatcher for Hershel
@hershel/dispatcher
adds to your bot the ability to respond to specific commands.
This package has been created in a minimalist, refined and modular spirit. Some functions you may want to have (like role checking to use commands etc...) can be very easily implemented thanks to the internal middlewares of the dispatcher. Let's keep things simple.
npm i @hershel/dispatcher
-
Modular: We wanted to provide a powerful package while remaining refined. You can add features directly from the dispatcher using middlewares (see lifecycle).
-
Customizable: this module contains default behaviors (for example, not taking into account messages from other bot). All of these behaviours can be overridden by your own verification systems.
-
Simple: Integrates perfectly into Hershel in one line of code. You can also reuse this middleware for other project.
Basic usage
import * as hershel from 'hershel'
import { Dispatcher } from '@hershel/dispatcher'
const bot = new hershel.Client()
const dispatcher = new Dispatcher({
prefix: ['!', '?!?']
})
bot.use(dispatcher.commands())
bot.login(process.env.TOKEN)
It's important to know that
@hershel/dispatcher
does not implement any commands natively.
-> [...]
-> Dispatcher middleware with .commands()
|-> check if the dispatcher should handle the message
|-> skip if dispatcher should not handle message
|-> extract prefix from the message
|-> skip if prefix is not detected
|-> extract command name and resolve it
|-> skip if command is not detected
|-> parse arguments for the command
|-> execute custom middlewares (e.g. authorization...)
|-> execute the command
-> Others Hershel middlewares
The context.state
is changed by this module and context.params
is added.
Check if the message should be handled by the dispatcher
Injects in context state prefix
key with the content of the prefix, its length and if a prefix has been detected.
Injects in context state command
key with the alias of the command, and the command object resolved.
Injects in context state argument
symbol with the name and options of the arguments.
- hershel - A framework for modular and blazing fast Discord bots
- hershel/plugin - Plugin helper for Hershel
- hershel/examples - Example of integration with Hershel
Hershel uses part of Fastify's theoretical logic, a fast and low overhead web framework for Node.js.
MIT