Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/aurailus/k9
A minimalist level tracker bot for discord, used on Auri's Den.
https://github.com/aurailus/k9
bot discord role-rewards
Last synced: 14 days ago
JSON representation
A minimalist level tracker bot for discord, used on Auri's Den.
- Host: GitHub
- URL: https://github.com/aurailus/k9
- Owner: Aurailus
- License: apache-2.0
- Created: 2019-08-21T22:15:04.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2023-02-01T04:32:44.000Z (almost 2 years ago)
- Last Synced: 2024-05-02T03:04:48.914Z (6 months ago)
- Topics: bot, discord, role-rewards
- Language: TypeScript
- Homepage: https://aurail.us/discord
- Size: 1.53 MB
- Stars: 4
- Watchers: 2
- Forks: 2
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
K9
A minimalist level-tracking Discord bot. Woof!
K9 is a self-hosted, minimalist level tracking Discord bot. It tracks post frequency in a persistent database, assigning experience to posts which contributes to a total user level. This user level is used to apply custom roles to award active users.
An example of this functionality can be seen in [Auri's Den](https://aurail.us/discord).
### Dependencies
* NodeJS 12+
* NPM
* MongoDB### Installation
1) Clone this repository: `git clone https://github.com/Aurailus/k9`
2) Install node dependencies: `npm install`
3) Copy `conf.example.toml` to `conf.toml`
4) Put a valid discord token and other configuration details in `conf.toml`.
5) Run the bot: `npm start`### Configuration
To allow the bot to start, track levels, and give role rewards, fill out `conf.toml` with the missing credentials. An example and explanation of all the variables are shown below.
**Example:**
```TOML
[auth]
# A Discord Bot token
discord = "token"
# MongoDB URL
mongo_url = "mongodb://host/database"[options]
# Custom status
status = "Hanging out"
# Command prefix
prefix = "/"
# Delete commands after execution
delete_triggers = true[plugin.level]
# Bot responds to "good dog" after ranking up.
please_and_thank_you = false[plugin.level.message]
# Cooldown time
cooldown = 30
# Minimum message length
min_length = 30[plugin.level.experience]
# https://www.desmos.com/calculator/80hyi0deu6
# First level XP offset.
a = 15
# Larger values makes XP / level higher.
b = 6.5
# Larger values make XP / level exponentially higher.
c = 1.5[[plugin.level.roles]]
# Level to acquire role
level = 1
role = "RoleID"
[[plugin.level.roles]]
level = 2
role = "RoleID"
[[plugin.level.roles]]
level = 5
role = "RoleID"
```### Contributing
If you would like to contribute, please follow the code style used in the existing source files, and indent with tabs. Once you are done submit a pull request outlining what you have changed / added and why it should be implementing into the bot.
© [Auri Collings](https://twitter.com/Aurailus), 2021. Made with <3
Licensed under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0).