From bf98b57e745a7162ac4852815338a5c22f32bd0c Mon Sep 17 00:00:00 2001 From: Snazzah Date: Sat, 15 Aug 2020 23:09:11 -0500 Subject: [PATCH] Allow multiple curator/admin roles --- config/_default.js | 4 ++-- src/util.js | 13 +++++++++---- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/config/_default.js b/config/_default.js index 736d947..06004d0 100644 --- a/config/_default.js +++ b/config/_default.js @@ -11,9 +11,9 @@ module.exports = { debug: false, // [number] The main embed color (#ffffff -> 0xffffff) embedColor: 0x15521c, - // [string] curator_role_id + // [string|Array] The role ID(s) for curator roles curatorRoleID: "", - // [string] admin_role_id + // [string|Array]] The role ID(s) for admin roles adminRoleID: "", // [string] guild_id guildID: "", diff --git a/src/util.js b/src/util.js index 4a1f5c4..6567d4a 100644 --- a/src/util.js +++ b/src/util.js @@ -68,24 +68,29 @@ Util.CommandPermissions = { curator: (client, message) => { const member = message.guildID ? message.member : client.guilds.get(config.guildID).members.get(message.author.id); + const roles = Array.isArray(config.curatorRoleID) ? config.curatorRoleID : [config.curatorRoleID]; if (!member) return false; if (Util.CommandPermissions.elevated(client, message)) return true; - return member.roles.includes(config.curatorRoleID); + return roles.map(r => member.roles.includes(r)).includes(true); }, admin: (client, message) => { const member = message.guildID ? message.member : client.guilds.get(config.guildID).members.get(message.author.id); + const roles = Array.isArray(config.adminRoleID) ? config.adminRoleID : [config.adminRoleID]; if (!member) return false; if (Util.CommandPermissions.elevated(client, message)) return true; - return member.roles.includes(config.adminRoleID); + return roles.map(r => member.roles.includes(r)).includes(true); }, curatorOrAdmin: (client, message) => { const member = message.guildID ? message.member : client.guilds.get(config.guildID).members.get(message.author.id); + const roles = [ + ...(Array.isArray(config.adminRoleID) ? config.adminRoleID : [config.adminRoleID]), + ...(Array.isArray(config.curatorRoleID) ? config.curatorRoleID : [config.curatorRoleID]), + ]; if (!member) return false; if (Util.CommandPermissions.elevated(client, message)) return true; - return member.roles.includes(config.curatorRoleID) || - member.roles.includes(config.adminRoleID); + return roles.map(r => member.roles.includes(r)).includes(true); }, };