aboutsummaryrefslogtreecommitdiff
path: root/src/modules/greeting.js
diff options
context:
space:
mode:
authorSin-MacBook <[email protected]>2020-08-10 23:44:20 +0200
committerSin-MacBook <[email protected]>2020-08-10 23:44:20 +0200
commit2a53887abba882bf7b63aeda8dfa55fdb3ab8792 (patch)
treead7a95eb41faa6ff13c3142285cdc0eb3ca92183 /src/modules/greeting.js
downloadmodmail-2a53887abba882bf7b63aeda8dfa55fdb3ab8792.tar.xz
modmail-2a53887abba882bf7b63aeda8dfa55fdb3ab8792.zip
clean this up when home
Diffstat (limited to 'src/modules/greeting.js')
-rw-r--r--src/modules/greeting.js37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/modules/greeting.js b/src/modules/greeting.js
new file mode 100644
index 0000000..f85bde9
--- /dev/null
+++ b/src/modules/greeting.js
@@ -0,0 +1,37 @@
+const path = require('path');
+const fs = require('fs');
+const config = require('../config');
+const utils = require('../utils');
+
+module.exports = ({ bot }) => {
+ if (! config.enableGreeting) return;
+
+ bot.on('guildMemberAdd', (guild, member) => {
+ const guildGreeting = config.guildGreetings[guild.id];
+ if (! guildGreeting || (! guildGreeting.message && ! guildGreeting.attachment)) return;
+
+ function sendGreeting(message, file) {
+ bot.getDMChannel(member.id).then(channel => {
+ if (! channel) return;
+
+ channel.createMessage(message || '', file)
+ .catch(e => {
+ if (e.code === 50007) return;
+ throw e;
+ });
+ });
+ }
+
+ const greetingMessage = utils.readMultilineConfigValue(guildGreeting.message);
+
+ if (guildGreeting.attachment) {
+ const filename = path.basename(guildGreeting.attachment);
+ fs.readFile(guildGreeting.attachment, (err, data) => {
+ const file = {file: data, name: filename};
+ sendGreeting(greetingMessage, file);
+ });
+ } else {
+ sendGreeting(greetingMessage);
+ }
+ });
+};