diff options
| author | Sin-MacBook <[email protected]> | 2020-08-10 23:44:20 +0200 |
|---|---|---|
| committer | Sin-MacBook <[email protected]> | 2020-08-10 23:44:20 +0200 |
| commit | 2a53887abba882bf7b63aeda8dfa55fdb3ab8792 (patch) | |
| tree | ad7a95eb41faa6ff13c3142285cdc0eb3ca92183 /src/modules/greeting.js | |
| download | modmail-2a53887abba882bf7b63aeda8dfa55fdb3ab8792.tar.xz modmail-2a53887abba882bf7b63aeda8dfa55fdb3ab8792.zip | |
clean this up when home
Diffstat (limited to 'src/modules/greeting.js')
| -rw-r--r-- | src/modules/greeting.js | 37 |
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); + } + }); +}; |