cardboardbox/commands/System/shutdown.js

50 lines
1.3 KiB
JavaScript

exports.run = async (client, message, args, level) => {
message.delete();
client.user.setStatus("idle");
let response = await client.awaitReply(message, "**Are you sure you want to shut me down?** Respond with \`yes\` to proceed.");
message.author.lastMessage.delete();
let msg = client.user.lastMessage;
if(response === "yes") {
await msg.edit(`**Confirmed by ${message.author}.** Shutting down...`);
client.user.setStatus("dnd");
await Promise.all(client.commands.map(cmd =>
client.unloadCommand(cmd)
));
await msg.edit(`Successfully shut down by ${message.author}.`);
client.user.setStatus("invisible");
process.exit(0);
} else if(response === "no") {
await msg.edit(`**Shutdown cancelled by ${message.author}.** This message will be removed in 5 seconds.`).then(msg => {
msg.delete(5000)
});
client.user.setStatus("online");
return;
} else {
await msg.edit(`**${message.author} has provided an invalid response**; shutdown aborted. This message will be deleted in 5 seconds.`).then(msg => {
msg.delete(5000)
});
client.user.setStatus("online");
return;
}
};
exports.conf = {
enabled: true,
guildOnly: false,
aliases: [],
permLevel: "Bot Owner"
};
exports.help = {
name: "shutdown",
category: "System",
description: "Shuts down the bot.",
usage: "shutdown"
};