My personal Node.js Discord bot featuring a vast library of commands with near-endless customization. Its main prefix is 🐉
.
npm install DragonOfMath/discord-dragon-bot
Pass an object to the client constructor with the following keys:
{
"token": "...", // Discord auth token
"ownerID": "...", // your Discord ID, not your name or discriminator
"permissions": 268790902, // or some other value
"apiKeys": {...} // additional API keys
}
analytics
for counting command usageblock
for the client's block listpermissions
for storing permission settings for commandsmoderation
for moderation housekeepingclient
for keeping global data for the bot; used by the Mandelbrot and Reminder modulesservers
is required for moderation, and is used by the CAH, blacklist, and greeting moduleschannels
is unused for nowroles
is used by the Roles moduleusers
is used by the Fishing and Pokemon modules
- DragonBot's main prefix is the dragon emoji "🐉", but can also have custom prefixes.
- There are over 500 commands built into the client, and many more on the way.
- Commands are broken into categories, subcommands, and even metacommands.
- Commands can be restricted to privileged users, the bot owner, or to any whitelist/blacklist of users/servers/channels.
See src/Commands/README.md
for an in-depth guide on command usage.
- These are multi-purpose data structures made to retain data or provide special responses.
- They can be loaded from modules and remain active while the bot is online.
- They can be generated on the fly and expire after a period of time.
- They can receive messages and respond if necessary.
- They can trigger events or be called each 1-second cycle.
See src/Sessions/README.md
for more information on sessions.
- DragonBot uses a homemade JSON database framework. It's not the best for large-scale use, but it's great for my experimenting.
- The tables are loaded into memory during initialization and only writes to their files when called.
- It requires many of the listed tables to function correctly.
See src/Database/README.md
for more details about the database and how to use it.