A Discord bot built in Go and Arikawa.
Notable features:
- Strict arg parsing and selection
- Automatic error handling via friendly messages given to the user :)
- Asynchronous event handling with concurrency-safe configs
- Fully-fledged plugin support
A feature (plugin) is able to:
- Return comprehensive commands, with info support such as aliases and descriptions.
- Return "auto responses", with flexible message matching to call Go code.
- Return scheduled jobs, to be called at an interval.
- Register event handlers to Discord's gateway, such as when a reaction is added to a message.
All bot features are plugins, and can be enabled or disabled on demand, with hot-reloading being added soon (#8).
More information about using and creating plugins is described in the plugin documentation.
git clone [email protected]:5HT2/taro-bot.git && cd taro-bot
make
./taro
You can also do ./update.sh
to run or update the Docker image, provided you have Docker installed.
This is the simplest example of the config/config.json
file, you only need bot_token
to be set.
{
"bot_token": "bot token goes here"
}
You can also create a config/plugins.json
, to select which plugins will be loaded.
This is optional, and a default (curated) will load if you do not set it, or if you add "default"
to the list.
{
"loaded_plugins": ["example", "leave-join-msg"]
}