aboutsummaryrefslogtreecommitdiff
path: root/src/modules/reply.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/reply.js')
-rw-r--r--src/modules/reply.js32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/modules/reply.js b/src/modules/reply.js
new file mode 100644
index 0000000..bc2afe3
--- /dev/null
+++ b/src/modules/reply.js
@@ -0,0 +1,32 @@
+const attachments = require("../data/attachments");
+const utils = require('../utils');
+
+module.exports = ({ bot, knex, config, commands }) => {
+ // Mods can reply to modmail threads using !r or !reply
+ // These messages get relayed back to the DM thread between the bot and the user
+ commands.addInboxThreadCommand('reply', '[text$]', async (msg, args, thread) => {
+ if (! args.text && msg.attachments.length === 0) {
+ utils.postError(msg.channel, 'Text or attachment required');
+ return;
+ }
+
+ const replied = await thread.replyToUser(msg.member, args.text || '', msg.attachments, false);
+ if (replied) msg.delete();
+ }, {
+ aliases: ['r']
+ });
+
+
+ // Anonymous replies only show the role, not the username
+ commands.addInboxThreadCommand('anonreply', '[text$]', async (msg, args, thread) => {
+ if (! args.text && msg.attachments.length === 0) {
+ utils.postError(msg.channel, 'Text or attachment required');
+ return;
+ }
+
+ const replied = await thread.replyToUser(msg.member, args.text || '', msg.attachments, true);
+ if (replied) msg.delete();
+ }, {
+ aliases: ['ar']
+ });
+};