| 18 | } |
| 19 | |
| 20 | async list(msg) { |
| 21 | if (!msg.guild.settings.get('roles.joinable').length) return msg.reject(msg.language.get('COMMAND_ROLES_NONE_JOINABLE')); |
| 22 | |
| 23 | const embed = new MessageEmbed() |
| 24 | .setAuthor(msg.language.get('COMMAND_ROLES_SERVER'), this.client.user.displayAvatarURL()) |
| 25 | .setColor(this.client.settings.get('colors.white')) |
| 26 | .setThumbnail(msg.guild.iconURL(), 50, 50) |
| 27 | .setTimestamp() |
| 28 | .setFooter(msg.language.get('COMMAND_REQUESTED_BY', msg), msg.author.displayAvatarURL()); |
| 29 | |
| 30 | const rolesList = []; |
| 31 | for (let i = 0; i < msg.guild.settings.get('roles.joinable').length; i++) { |
| 32 | const role = msg.guild.roles.cache.get(msg.guild.settings.get('roles.joinable')[i]); |
| 33 | if (role) rolesList.push(msg.language.get('COMMAND_ROLES_ROLE', role)); |
| 34 | } |
| 35 | embed.setDescription(rolesList); |
| 36 | |
| 37 | return msg.send('', { disableEveryone: true, embed: embed }); |
| 38 | } |
| 39 | |
| 40 | async add(msg, [target = msg.member, ...roleName]) { |
| 41 | // Fail if there are no joinable roles |