diff --git a/commands/Moderation/lockdown.js b/commands/Moderation/lockdown.js new file mode 100644 index 0000000..78c0cd8 --- /dev/null +++ b/commands/Moderation/lockdown.js @@ -0,0 +1,51 @@ +const ms = require('ms'); + +exports.run = async (client, message, args, level) => { + if (!client.lockit) client.lockit = []; + const time = args.join(' '); + const validUnlocks = ['release', 'unlock']; + if (!time) return message.reply('you must set a duration for the lockdown in either hours, minutes or seconds.'); + + if (validUnlocks.includes(time)) { + message.channel.overwritePermissions(message.guild.id, { + SEND_MESSAGES: null + }).then(() => { + message.channel.send('Lockdown has been lifted.'); + clearTimeout(client.lockit[message.channel.id]); + delete client.lockit[message.channel.id]; + }).catch(error => { + console.log(error); + }); + } else { + message.channel.overwritePermissions(message.guild.id, { + SEND_MESSAGES: false + }).then(() => { + message.channel.send(`Channel has been locked down for ${ms(ms(time), { long:true })}.`).then(() => { + + client.lockit[message.channel.id] = setTimeout(() => { + message.channel.overwritePermissions(message.guild.id, { + SEND_MESSAGES: null + }).then(message.channel.send('Lockdown has been lifted.')).catch(console.error); + delete client.lockit[message.channel.id]; + }, ms(time)); + + }).catch(error => { + console.log(error); + }); + }); + } +}; + +exports.conf = { + enabled: true, + guildOnly: true, + aliases: ["ld"], + permLevel: "Administrator" +}; + +exports.help = { + name: "lockdown", + category: "Moderation", + description: "People being a pest somewhere? Lock it down!", + usage: "lockdown [duration]" +};