Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/5ht2/taro-bot
A fast, scalable and easily expandable Discord bot
https://github.com/5ht2/taro-bot
arikawa discord discord-bot go golang
Last synced: about 2 months ago
JSON representation
A fast, scalable and easily expandable Discord bot
- Host: GitHub
- URL: https://github.com/5ht2/taro-bot
- Owner: 5HT2
- License: isc
- Created: 2021-09-30T21:41:00.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2024-06-13T15:34:04.000Z (7 months ago)
- Last Synced: 2024-06-19T18:12:16.621Z (7 months ago)
- Topics: arikawa, discord, discord-bot, go, golang
- Language: Go
- Homepage: https://frogg.ie/invite-taro-bot
- Size: 789 KB
- Stars: 11
- Watchers: 1
- Forks: 2
- Open Issues: 19
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE.md
Awesome Lists containing this project
README
# taro-bot
[![](https://img.shields.io/badge/discord%20bot-invite!-5865F2?logo=discord&logoColor=white)](https://discord.com/oauth2/authorize?client_id=893216230410952785&permissions=278404582464&scope=bot)
[![CodeFactor](https://img.shields.io/codefactor/grade/github/5HT2/taro-bot?logo=codefactor&logoColor=white)](https://www.codefactor.io/repository/github/5HT2/taro-bot)
[![CodeQL](https://github.com/5HT2/taro-bot/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/5HT2/taro-bot/actions/workflows/codeql-analysis.yml)
[![docker-build](https://github.com/5HT2/taro-bot/actions/workflows/docker-build.yml/badge.svg)](https://github.com/5HT2/taro-bot/actions/workflows/docker-build.yml)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](https://github.com/5HT2/taro-bot/blob/99b929ac18d583a38a332405b45dd53d57143b17/plugins/base/base.go#L19).
- Return "auto responses", with [flexible message matching to call Go code](https://github.com/5HT2/taro-bot/blob/99b929ac18d583a38a332405b45dd53d57143b17/plugins/tenor-delete/tenor-delete.go#L28).
- Return scheduled jobs, to be [called at an interval](https://github.com/5HT2/taro-bot/blob/99b929ac18d583a38a332405b45dd53d57143b17/plugins/vintagestory/vintagestory.go#L30).
- Register event handlers to Discord's gateway, such as [when a reaction is added to a message](https://github.com/5HT2/taro-bot/blob/99b929ac18d583a38a332405b45dd53d57143b17/plugins/starboard/starboard.go#L123).**All bot features are plugins**, and can be enabled or disabled on demand, with hot-reloading being added soon ([#8](https://github.com/5HT2/taro-bot/issues/8)).
More information about using and creating plugins is described in the [plugin documentation](https://github.com/5HT2/taro-bot/blob/master/plugins).
## Usage
```
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.
#### Config
This is the simplest example of the `config/config.json` file, you only need `bot_token` to be set.
```json
{
"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.```json
{
"loaded_plugins": ["example", "leave-join-msg"]
}
```