diff --git a/event/listeners/guildMemberAdd.js b/event/listeners/guildMemberAdd.js index 570e57d6..8c04bbcd 100644 --- a/event/listeners/guildMemberAdd.js +++ b/event/listeners/guildMemberAdd.js @@ -10,13 +10,13 @@ class guildMemberAddListener extends Listener { }); } - async exec(guild) { - if (guild.guild.id == 240843640375607296) { - guild.setNickname('fart piss'); + async exec(member) { + if (member.guild.id == 240843640375607296) { + member.setNickname('fart piss'); } - const join = await joinChannel.findOne({where: {guildID: guild.guild.id}}); + const join = await joinChannel.findOne({where: {guildID: member.guild.id}}); if (join) { const channel = this.client.channels.resolve(join.get('channelID')); @@ -26,17 +26,18 @@ class guildMemberAddListener extends Listener { let invite = new RegExp(/(https?:\/\/)?(www\.)?discord(?:app\.com|\.gg)[/invite/]?(?:(?!.*[Ii10OolL]).[a-zA-Z0-9]{5,6}|[a-zA-Z0-9-]{2,32})/g); - let username = guild.user.username; - let user = guild.user; + let username = member.user.username; + let user = member.user; if (username.match(invite)) { username = username.replace(/(https?:\/\/)?(www\.)?discord(?:app\.com|\.gg)[/invite/]?(?:(?!.*[Ii10OolL]).[a-zA-Z0-9]{5,6}|[a-zA-Z0-9-]{2,32})/g, '[REDACTED]'); user = username; } - welcomeMessage = welcomeMessage.replace(/\[member\]/, username); - welcomeMessage = welcomeMessage.replace(/\[memberPing\]/, user); - welcomeMessage = welcomeMessage.replace(/\[server\]/, guild.guild.name); - + welcomeMessage = welcomeMessage.replace(/\[member\]/g, username); + welcomeMessage = welcomeMessage.replace(/\[memberPing\]/g, user); + welcomeMessage = welcomeMessage.replace(/\[server\]/g, member.guild.name); + + // add attachment let attach; if (welcomeMessage.includes('[attach:')) { attach = welcomeMessage.split(/(\[attach:.*?])/); @@ -48,6 +49,23 @@ class guildMemberAddListener extends Listener { } welcomeMessage = welcomeMessage.replace(/(\[attach:.*?])/, ''); } + + // Give a role + let role; + if (welcomeMessage.includes('[role:')) { + role = welcomeMessage.split(/(\[role:.*?])/); + for (let i = 0, l = role.length; i < l; i++) { + if (role[i].includes('[role:')) { + role = role[i].replace('[role:', '').slice(0, -1); + i = role.length; + } + } + + const rank = member.guild.roles.cache.find(rank => rank.name === role); + member.roles.add(rank); + + welcomeMessage = welcomeMessage.replace(/(\[role:.*?])/, ''); + } welcomeMessage = rand.random(welcomeMessage);