=== Mod mail

This feature enables users to contact the moderation of the server in a private manner. This can be initiated by messaging the bot.
The messages, in the channel which is created to contain the mod mail thread, are not automatically sent to the user, but only when using the commands
`reply` or `anonReply`. Any other message is ignored with the intention of enabling discussions within the channel. In case the message of a message sent to the user
needs to be updated or deleted, you can do simply by editing/deleting the message containing the command.

Feature key: `modmail`

==== Necessary bot permissions
`MANAGE_CHANNEL` to create the channels representing the mod mail threads

==== Workflow
* User messages the bot
* If the bot is active in multiple servers with mod mail enabled, the user is prompted to which server they want to open a mod mail thread for.
* A channel in the mod mail category is created for the user and notification is sent that a new mod mail thread has been opened
* User can send messages in the private channel and they get relayed to this created text channel.
* Moderators can answer in the thread with the commands
* Moderators close the thread
* The interactions between the user and the moderators gets logged in the mod mail logging channel

==== Relevant system configuration
`modmailCategory`:: The category on the server which is used to hold the text channels representing the threads

`modMailClosingText`:: The text being used when notifying the user when a thread is closed.

==== Post targets
`modmailPing`:: Will be used to send the notification when a new thread is opened.
`modmailLog`:: Will be used to log the interactions when a thread is closed.

==== Feature modes
`log`:: If this is enabled, the messages should be logged into the `modmailLog` post target when the thread is closed (by the respective commands). Makes the command `closeNoLog` available. Enabled by default.
`threadMessage`:: If this is enabled, every message which is sent via the commands `reply` and `anonReply` will also be sent to the thread in order to have a visualizer how the message looks and to have a clear indication which messages were sent. Enabled by default.

==== Emotes
* `readReaction` to indicate to the user that the message sent was processed

==== Commands
Opening a mod mail thread for a user::
* Usage: `contact <member>`
* Description: Creates a new mod mail thread with the `member`. Does not send a notification about the new thread.
Adding a role to the roles responsible for managing mod mail threads::
* Usage: `setModMailRole <role>`
* Description: Adds this role to the roles responsible for mod mail threads, which means: this role will be pinged when a new thread is created and this role is automatically added to the roles allowed to execute all commands related to mod mail.
Removing a role from the roles responsible for managing mod mail threads::
* Usage: `removeModMailRole <role>`
* Description: Removes this role from the roles responsible for mod mail threads, which means: this role will no longer be pinged when a new thread is created and this role will also be removed from the roles allowed to execute all commands related to mod mail.
Changing the category in which the text channels are created::
* Usage: `setModMailCategory <categoryId>`
* Description: Sets the category which the bot uses to create the text channels for mod mail threads. The existing threads will not be migrated automatically.

NOTE: The following commands are only available within a mod mail thread.

Replying to a mod mail thread::
* Usage `reply [text]`
* Description: Sends `text` to the user if provided. `text` is optional, because it is also possible to only send an image.
Replying anonymously to a mod mail thread::
* Usage: `anonReply [text]`
* Description: Sends `text` to the user without showing how is the author, but using the avatar and name of the bot.
Enabling notifications of messages sent by the user::
* Usage: `subscribe`
* Description: Subscribes you to the current thread, and will ping you when a new message from the member is received.
Disabling notifications of messages sent by the user::
* Usage: `unSubscribe`
* Description: Removes your subscription from the current thread, and you will no longer be notified when a message from the member is received.
Closing the mod mail thread::
* Usage: `close [note]`
* Description: Closes the thread, deletes the text channel containing the thread and logs the interactions between the member and the moderators in the `modmailLog` post target. (only if `log` is enabled)
When closing a thread, a closing header with general information will be sent and the note will be displayed there. Closing with this command notifies the user.
Closing the mod mail thread without notifying the user::
* Usage: `closeSilently [note]`
* Description: Closes the thread, deletes the text channel containing the thread and logs the interactions between the member and the moderators in the `modmailLog` post target. (only if `log` is enabled)
When closing a thread, a closing header with general information will be send and the note will be displayed there. Closing with this command will *not* notify the user.

