# Modmail for Discord A bot for [Discord](https://discordapp.com/) that allows users to DM the bot to contact the server's entire mod team. These DMs get relayed to a modmail server where each user gets their own channel, or "thread". Moderators and admins can then reply to these threads, and these responses are relayed back to the original user as a DM. Inspired by Reddit's modmail system. ## Table of contents - [Setup](#setup) - [Changelog](#changelog) - [Commands](#commands) - [Anywhere on the inbox server](#anywhere-on-the-inbox-server) - [Inside a modmail thread](#inside-a-modmail-thread) - [Configuration options](#configuration-options) - [Plugins](#plugins) - [Specifying plugins to load](#specifying-plugins-to-load) - [Creating a plugin](#creating-a-plugin) ## Setup 1. Install Node.js 8.9.4 (LTS) or higher 2. Clone or download this repository 3. Create a Discord server to be used as the modmail inbox 4. Make a copy of the file `config.example.json` in the same folder and name the copy `config.json`. Open the file and fill in the values. - You can also find more configurable options at the end of this page! 5. Install dependencies: `npm install` 6. Add bot to servers, and make sure to give it proper permissions on the mail server. 7. Run the bot: `npm start` ## Changelog See [CHANGELOG.md](CHANGELOG.md) ## Commands ### Anywhere on the inbox server `!logs ` Lists previous modmail logs with the specified user `!block ` Blocks the specified user from using modmail `!unblock ` Unblocks the specified user from using modmail `!s ` Adds a snippet (a canned response). See below for how to use it. `!edit_snippet ` Edits an existing snippet (alias `!es`) `!delete_snippet ` Deletes the specified snippet (alias `!ds`) `!snippets` Lists all available snippets `!version` Print the version of the bot you're running `!newthread ` Opens a new thread with the specified user ### Inside a modmail thread `!reply ` Sends a reply to the user in the format "(Role) User: text" (alias `!r`) `!anonreply ` Sends an anonymous reply to the user in the format "Role: text" (alias `!ar`) `!close