README
Disharmony
A Discord bot framework built on top of discord.js with command parsing and basic Mongo-like database integration
Features
- Built on top of discord.js
- Command handling
- Syntax parsing
- Per-server configurable prefix
- Permission levels
- Basic default commands
- Help menu
- Statistics
- Version number
- Mongo-like database support
- MongoDB
- NeDB Core
- Extensible
Use cases
- Create bots without bothering with boilerplate
- Focus on bot features rather than discord/database integrations
- Reduce the amount of similar code between bots
Examples
Development
Prerequisites
- NodeJS v10 installed
Setup
npm install
to install dependenciestsc
to compile JS into dist/
Tests
- Written in TypeScript using Alsatian
- Run with
npm test
CI setup
The repository is configured for CI using Buildkite
Pipelines are stored in .buildkite and should be loadeg using Buildkite's 'read from repository' step
The standard pipeline deals with linting, building and running tests
The publish pipeline will publish the package to NPM when triggered
- The Buildkite agent must have an NPM auth token set in the NPM_AUTH_TOKEN environment variable
Docker and Git must both be installed on the Buildkite agent
If running the agent on Windows, a couple of extra configuration steps need to be performed
- The drive the Buildkite agent writes to needs to be shared with Docker
- Git's /bin folder needs to be in the PATH
- Git's global config option core.autocrlf needs to be set to false (as the files are used in a Linux docker image)
Built With
- TypeScript - language
- discord.js - Discord library
- NeDB Core - local database engine
- MongoDB - remote database engine
- Alsatian - test framework
- TypeMoq - mocking library
Documentation
- See docs/
Versioning
SemVer is used for versioning; view available versions on the tags page
License
This project is licensed under the MIT License - see the LICENSE file for details