diff --git a/blacklist.js b/blacklist.js new file mode 100644 index 0000000..8930dfd --- /dev/null +++ b/blacklist.js @@ -0,0 +1,114 @@ +exports.run = async (client, message, [action, ...member]) => { + const settings = message.settings; + + if(settings.blacklisted == "ARRAY") { + await client.settings.set(message.guild.id, [], "blacklisted"); + } + + if(!action) { + return message.channel.send( + `<:error:466995152976871434> You didn't tell me if I was meant to add or remove someone from the blacklist! Usage: \`${client.commands.get(`blacklist`).help.usage}\`` + ) + } + + member = member.join(" ") + + if(!member) { + return message.channel.send( + `<:error:466995152976871434> You didn't tell me who to blacklist! Usage: \`${client.commands.get(`blacklist`).help.usage}\`` + ); + }; + + let user = message.mentions.members.first(); + + if(action == "add") { + if (!user) { + let users; + users = client.searchForMembers(message.guild, member); + if (users.length > 1) + return message.channel.send( + "<:error:466995152976871434> Found multiple users! Please be more specific or mention the user instead." + ); + else if (users.length == 0) + return message.channel.send( + "<:error:466995152976871434> That user doesn't seem to exist. Try again!" + ); + user = users[0]; + }; + + if(user.id === client.user.id) { + return message.channel.send('lol no'); + }; + + if(user.id === message.member.id) { + return message.channel.send('<:error:466995152976871434> You can\'t blacklist yourself!'); + }; + + let blacklisted = false; + + if(settings.blacklisted.length > 0) { + settings.blacklisted.forEach(function(ID) { + if(ID == user.id) { + blacklisted = true; + } + }); + + if(blacklisted == true) { + return message.channel.send('<:error:466995152976871434> This person has already been blacklisted!'); + }; + }; + + client.settings.push(message.guild.id, user.id, "blacklisted") + + return message.channel.send(`<:success:466995111885144095> Blacklisted \`${user.user.tag}\``) + }; + + + if (action == "remove") { + if (!user) { + let users; + users = client.searchForMembers(message.guild, member); + if (users.length > 1) + return message.channel.send( + "<:error:466995152976871434> Found multiple users! Please be more specific or mention the user instead." + ); + else if (users.length == 0) + return message.channel.send( + "<:error:466995152976871434> That user doesn't seem to exist. Try again!" + ); + user = users[0]; + }; + + let blacklisted = false; + + settings.blacklisted.forEach(function(ID) { + console.log("does this work") + if(ID == user.id) { + blacklisted = true; + } + }); + + if(blacklisted != true) { + return message.channel.send('<:error:466995152976871434> This user isn\'t blacklisted!'); + }; + + client.settings.remove(message.guild.id, user.id, "blacklisted") + + return message.channel.send(`<:success:466995111885144095> Removed \`${user.user.tag}\` from the blacklist.`) + }; +}; + +exports.conf = { + enabled: true, + guildOnly: true, + aliases: [], + permLevel: "Administrator", + requiredPerms: [] +}; + +exports.help = { + name: "blacklist", + category: "Moderation", + description: "Allows you to configure Woomy's blacklist. Blacklisted users cannot use commands.", + usage: "blacklist [add/remove] [member]" +};