d-bot
Version:
A quirky Discord bot made for single, small, private servers
45 lines (33 loc) • 3.2 kB
Markdown
# D-Bot
A quirky Discord bot made for single, small, private servers
Requires node `8.2.1` or newer
1. Install: `npm install d-bot`
2. Set up: `config.json`
3. Run: `start bot.bat`
4. ???: `profit`
## About
This bot was created for a small server I share with my friends. Running it on multiple servers may have unintended side-effects. You probably don't want to install this bot anyway.
But, I do think it's a halfway decent framework for a bot, and there are some interesting addons. Take a look at the code!
This bot logs messages, and has several commands that interact with those logs. Currently, this will not work for any messages sent before installing D-Bot, or any sent while D-Bot is offline. I plan to implement history crawling at some point.
## Config
Rename `config_example.json` to `config.json`
The config file is mostly optional things. You can remove any optional property you don't need.
### Required
* `token` *string* - Your bot's token. A long string of letters and numbers.
* `owner` *string* - Your Discord ID. Not your user tag, but your actual numeric ID
* `prefixes` *array* - Array of strings to prefix your commands with. You can have just one, or many, but they can only be one character each.
### Optional
* `adminRole` *string* - Role ID for users permitted to perform admin-like commands such as editing channels.
* `privateChannels` *array* - Array of channel ID strings that are ignored when commands such as `find` or `last` are used outside of these channels. When such a command is used inside a private channel, only messages from within that channel are searched.
* `noLogServers` *array* - Array of server ID strings that D-Bot will not log messages for
* `noLogChannels` *array* - Array of channel ID strings that D-Bot will not log messages for
* `allowCustomColors` *boolean* - If true, users can set their username color with the `color` command
* `minecraft` *object* - Contains IP and port for a Minecraft server to check the status of
* `mumble` *object* - If you have a CommandChannel Mumble server, input your e-mail and API key to check the status
* `starbound` *object* - If you have a Starbound server with Multiplay, paste in your server status image URL
* `7d` *object* - If you have a 7 Days to Die server, input the server IP and telnet info (see serverconfig.xml)
* `userAliases` *object* - Lists of alternate names that users go by, for username lookups within the bot and for getting the username of a user no longer in the server. Property name should be the user ID, value should be an array of strings.
* `timezones` *object* - Time zones used with the `time` command. Property names should be [IANA](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) time zone names, and the values are aliases shown by the command.
## And Also
Eternal thanks and respect to Izy521 for his awesome library, [discord.io](https://github.com/izy521/discord.io), and all the assistance he has provided that helped me get started in bot coding. D-Bot has since moved onto the [Eris](https://github.com/abalabahaha/eris) library by Abalabahaha, which is also awesome.
Shout-outs to F&A!