start of permission handler

This commit is contained in:
Emily 2020-10-10 14:22:39 +11:00
parent e845cfd605
commit fc988895fd
2 changed files with 27 additions and 4 deletions

View file

@ -9,11 +9,12 @@ class Command {
guildOnly = false, guildOnly = false,
devOnly = false, devOnly = false,
aliases = new Array(), aliases = new Array(),
permLevel = "User", userPerms = new Array(),
botPerms = new Array (),
cooldown = 2000 cooldown = 2000
}) { }) {
this.client = client; this.client = client;
this.conf = { enabled, guildOnly, devOnly, aliases, permLevel, cooldown }; this.conf = { enabled, guildOnly, devOnly, aliases, userPerms, botPerms, cooldown };
this.help = { name, description, category, usage }; this.help = { name, description, category, usage };
} }
} }

View file

@ -75,10 +75,32 @@ module.exports = class {
if (cmd && cmd.conf.devOnly && this.client.functions.isDeveloper(message.author.id) !== true) { if (cmd && cmd.conf.devOnly && this.client.functions.isDeveloper(message.author.id) !== true) {
return message.channel.send("devs only!"); return message.channel.send("devs only!");
} };
if (cmd && !message.guild && cmd.conf.guildOnly === true) { if (cmd && !message.guild && cmd.conf.guildOnly === true) {
return message.channel.send("This command is unavailable via private message. Please run this command in a guild."); return message.channel.send("This command is unavailable via private message. Please run this command in a guild.");
} };
// Permission handler, for both Woomy and the user
if (message.guild) {
var missingUserPerms = cmd.conf.userPerms.filter(perms => {
!message.channel.permissionsFor(message.author).has(perms)
});
if (missingUserPerms.length > 0) {
missingUserPerms = '`' + (missingUserPerms.join('`, `')) + '`'
return message.channel.send(`You don't have sufficient permissions to run this command! Missing: ${missingBotPerms}`);
};
var missingBotPerms = cmd.conf.botPerms.filter(perms => {
!message.channel.permissionsFor(this.client.user).has(perms)
});
if (missingBotPerms.length > 0) {
missingBotPerms = '`' + (missingBotPerms.join('`, `')) + '`';
return message.channel.send(`Failed to run this command because I am missing the following permissions: ${missingBotPerms}`);
};
};
// Cooldown // Cooldown
if (this.client.cooldown.get(cmd.help.name).has(message.author.id)) { if (this.client.cooldown.get(cmd.help.name).has(message.author.id)) {