YAMDBF: Yet Another Modular Discord Bot Framework
YAMDBF is a lightweight Discord Bot framework for rapid bot development using Discord.js, making it simple to get a bot up and running with minimal effort and configuration.
Features
- Fully localizable (English by default)
- Base commands for control over default settings
- Full control over all base commands via disabling or overloading
- Simple structure for creation of custom commands
- Automatic custom command loading
- Fine control of command execution per-user/globally via configurable ratelimits
- Robust middleware system for fine control of execution flow and
control over the data passed to your commands- Ships with methods for resolving different data types and ensuring
certain args/types are passed to commands
- Ships with methods for resolving different data types and ensuring
- Easy to use storage with support for custom storage providers
- Ships with a default JSON provider, and other optional providers using Sequelize:
- Postgres
- SQLite
- MySQL
- MSSQL
- Ships with a default JSON provider, and other optional providers using Sequelize:
- Easy to use Plugin system
- Full TypeScript support (It's written in it!)
- Support for decorators for simpler handling of:
- Event listeners
- Command metadata
- Command middleware assignment
- Attaching Logger for logging/debugging
- Support for decorators for simpler handling of:
Installation
Ignore any warnings about unmet peer dependencies as they are all optional unless using a Sequelize-based storage provider.
Note: YAMDBF Requires > Node 8.0.0 to run
- Regular install:
yarn add @yamdbf/core
- With the Postgres provider:
yarn add @yamdbf/core pg sequelize
- With the SQLite provider:
yarn add @yamdbf/core sqlite3 sequelize
- With the MySQL provider:
yarn add @yamdbf/core mysql2 sequelize
- With the MSSQL provider:
yarn add @yamdbf/core tedious sequelize
Indev builds can be installed from github with
yarn add yamdbf/core#indev
. This requiresgit
to be installed and in your path. Also note that until Yarn supports submodules in git dependencies, NPM must be used to install YAMDBF indev at any point that YAMDBF indev is reliant on an indev version of Discord.js
NPM can also be used for installation.
Documentation for indev builds can be found here.