67 lines
1.9 KiB
JavaScript
67 lines
1.9 KiB
JavaScript
const Discord = require("discord.js");
|
|
|
|
exports.run = async function(client, message, args) {
|
|
|
|
/*
|
|
aliases: sar, selfrole, selfroles
|
|
|
|
examples:
|
|
- S!selfrole get 1 (adds heroku helper role)
|
|
- S!sar remove 3 (removes rewrite helper role)
|
|
- S!sar list (shows all roles)
|
|
*/
|
|
|
|
function roleFinder(query) {
|
|
return message.guild.roles.find(function(r) {
|
|
return r.name.includes(query)
|
|
}).id;
|
|
}
|
|
|
|
const type = args[0]; // can be get, remove or list
|
|
|
|
if (type == "list" || type == undefined) {
|
|
|
|
const embed = new Discord.RichEmbed()
|
|
.setTitle("List of Self Assigned Roles")
|
|
.setDescription("Usage: `S!sar [ get | remove | list ] [ number ]`")
|
|
.addField("1. Heroku Helper", "S!sar get 1", true)
|
|
.addField("2. JS Helper", "S!sar get 2", true)
|
|
.addField("3. Rewrite Helper", "S!sar get 3", true)
|
|
.setColor("AQUA");
|
|
|
|
return message.channel.send({
|
|
embed: embed
|
|
});
|
|
|
|
}
|
|
|
|
const roles = [roleFinder("Heroku"), roleFinder("JS"), roleFinder("Rewrite")];
|
|
|
|
let choice = args[1]; // can be 1, 2 or 3
|
|
|
|
// if the choice is not 1, 2 or 3
|
|
if (/^[123]$/.test(choice) == false) {
|
|
return message.channel.send("Enter a valid role number!"); // returns error message
|
|
} else {
|
|
choice -= 1; // because array indexing starts from 0. when they choose 1 it should be roles[0]
|
|
}
|
|
|
|
switch (type) {
|
|
|
|
case "get":
|
|
message.member.addRole(roles[choice]);
|
|
message.channel.send("Added the role you specified!"); // confirmation message
|
|
break;
|
|
|
|
case "remove":
|
|
message.member.removeRole(roles[choice]);
|
|
message.channel.send("Removed the role you specified!"); // confirmation message
|
|
break;
|
|
|
|
default:
|
|
return; // when it is neither get nor remove
|
|
break;
|
|
|
|
}
|
|
|
|
} |