Files
xiao/commands/settings/openroles.js
T
Daniel Odendahl Jr f6a4579fd9 Fix
2017-05-21 03:49:10 +00:00

53 lines
2.0 KiB
JavaScript

const { Command } = require('discord.js-commando');
module.exports = class OpenRolesCommand extends Command {
constructor(client) {
super(client, {
name: 'open-roles',
group: 'settings',
memberName: 'open-roles',
description: 'Lets you add or remove roles open for anyone to join.',
guildOnly: true,
args: [
{
key: 'action',
prompt: 'Would you like to `add` or `remove` the role?',
type: 'string',
validate: action => {
if (['add', 'remove'].includes(action.toLowerCase())) return true;
return 'Please enter either `add` or `remove`.';
},
parse: action => action.toLowerCase()
},
{
key: 'role',
prompt: 'Which role would you like to add/remove?',
type: 'role'
}
]
});
}
hasPermission(msg) {
return msg.member.hasPermission('ADMINISTRATOR');
}
run(msg, args) {
const { action, role } = args;
const roles = msg.guild.settings.get('openRoles', new Set());
if (action === 'add') {
console.log(roles);
if (roles.size > 5) return msg.say('Only 5 roles may be open.');
if (roles.has(role.id)) return msg.say(`${role.name} is already set to open.`);
roles.add(role.id);
msg.guild.settings.set('openRoles', roles);
return msg.say(`${role.name} has been added to the open roles.`);
} else if (action === 'remove') {
if (!roles.has(role.id)) return msg.say(`${role.name} is not set to open.`);
roles.delete(role.id);
msg.guild.settings.set('openRoles', roles);
return msg.say(`${role.name} has been remove from the open roles.`);
}
}
};