diff --git a/commands/blacklistUser.js b/commands/blacklistUser.js new file mode 100644 index 0000000..72eda28 --- /dev/null +++ b/commands/blacklistUser.js @@ -0,0 +1,102 @@ +// SupportBot, Created by Emerald Services +// Blacklist Command + +const Discord = require("discord.js"); +const fs = require("fs"); + +const yaml = require('js-yaml'); +const { execute } = require("./help"); +const supportbot = yaml.load(fs.readFileSync('./supportbot-config.yml', 'utf8')); + +module.exports = { + name: supportbot.BlacklistUser, + description: supportbot.BlacklistDesc, + + execute(message, args) { + if (supportbot.DeleteMessages == "true") message.delete(); + + let SupportStaff = message.guild.roles.cache.find(adminRole => adminRole.name === supportbot.Admin); + + console.log(`\u001b[32m`, `[${supportbot.Bot_Name}]:`, `\u001b[32m`, `${message.author.tag} has executed ${supportbot.Prefix}${supportbot.BlacklistUser}!`); + + const NoPerms = new Discord.MessageEmbed() + .setTitle("Invalid Permissions!") + .setDescription(`${supportbot.IncorrectPerms}\n\nRole Required: \`${SupportStaff.name}\``) + .setColor(supportbot.WarningColour) + + if (!message.member.roles.cache.has(SupportStaff.id)) { + return message.channel.send({ embed: NoPerms }); + } + + let locateChannel = message.guild.channels.cache.find(ModLogChannel => ModLogChannel.name === supportbot.ModLogChannel); + + const user = message.mentions.members.first() || message.guild.members.cache.get(args[0]); + + const errornochannel = new Discord.MessageEmbed() + .setTitle("Invalid Channel") + .setDescription(`${supportbot.InvalidChannel}\n\nChannel Required: \`${supportbot.ModLogChannel}\``) + .setColor(supportbot.ErrorColour); + + if(!locateChannel) return message.channel.send({ embed: errornochannel }); + + const embed1 = new Discord.MessageEmbed() + .setDescription("> :x: Please mention or write an ID\n\n`Try Again!`") + .setColor(supportbot.ErrorColour) + + if (!args[0]) return message.channel.send({ + embed: embed1 + }); + + const embed2 = new Discord.MessageEmbed() + .setDescription("> :detective: **Hmm!** Can\'t seem tp find this user.\n\n`Are they in the server?`") + .setColor(supportbot.EmbedColour) + + if (!user) return message.channel.send({ + embed: embed2 + }); + + let role = message.guild.roles.cache.find(role => role.name === supportbot.TicketBlackListRole) || message.guild.roles.cache.find(role => role.id === supportbot.TicketBlackListRole) + + const embed3 = new Discord.MessageEmbed() + .setDescription("> :detective: **Hmm!** Can\'t seem to find the blacklist role.\n\n`Did you created it?") + .setColor(supportbot.ErrorColour) + + + if (!role) return message.channel.send({ + embed: embed3 + }); + + const embed4 = new Discord.MessageEmbed() + .setDescription(`${user} is already blacklisted`) + .setColor(supportbot.ErrorColour) + + if(user.roles.cache.find(role => role.name === supportbot.TicketBlackListRole) || reactionUser.roles.cache.find(role => role.id === supportbot.TicketBlackListRole)) { + return message.channel.send({ + embed: embed4 + }) + }; + + user.roles.add(role); + + const embed5 = new Discord.MessageEmbed() + .setDescription(`Blacklisted ${user} successfully from creating a ticket`) + .setColor(supportbot.EmbedColour) + + message.channel.send({ + embed: embed5 + }); + + const logEmbed = new Discord.MessageEmbed() + .setTitle(supportbot.BlacklistTitle) + .setThumbnail(supportbot.ModThumbnail) + .addField('Banned User:', user) + .addField('Staff Member', message.author) + .setFooter(supportbot.EmbedFooter) + .setColor(supportbot.BlacklistColour) + .setTimestamp() + + locateChannel.send({ embed: logEmbed }); + + } + +}; \ No newline at end of file diff --git a/commands/help.js b/commands/help.js index 6b5edf2..18e290a 100644 --- a/commands/help.js +++ b/commands/help.js @@ -35,6 +35,7 @@ module.exports = { staffCommands += `**${supportbot.Prefix}${supportbot.AnnounceCommand}** ${supportbot.AnnounceDesc} \`Admin Only\`\n` staffCommands += `**${supportbot.Prefix}${supportbot.BanUser}** ${supportbot.BanDesc} \`Admin Only\` \n` staffCommands += `**${supportbot.Prefix}${supportbot.KickUser}** ${supportbot.KickDesc} \`Admin Only\` \n` + staffCommands += `**${supportbot.Prefix}${supportbot.BlacklistUser}** ${supportbot.BlacklistDesc} \`Admin Only\` \n` const HelpEmbed1 = new Discord.MessageEmbed() .setTitle(supportbot.Bot_Name) diff --git a/supportbot-config.yml b/supportbot-config.yml index 4c41d4f..483a733 100755 --- a/supportbot-config.yml +++ b/supportbot-config.yml @@ -173,6 +173,9 @@ PruneLogTitle: "Bulk Delete" PruneThumbnail: "https://i.imgur.com/OAgW2vR.png" PruneColour: "#1BA30C" +BlacklistTitle: "Blacklisted User" +BlacklistColour: "#000000" + # General Command Configuration @@ -199,6 +202,7 @@ PurgeMessage: "purge" AnnounceCommand: "announce" BanUser: "ban" KickUser: "kick" +BlacklistUser: "blacklist" # Commmand Descriptions @@ -215,6 +219,7 @@ BotSayDesc: "Say something with the bot" BanDesc: "Ban a member from this server." KickDesc: "Kick a member from this server." PurgeDesc: "Purge messages from the chat." +BlacklistDesc: "Decline a member to open a ticket" # Error / Warining Messages