Skip to content

Instantly share code, notes, and snippets.

@oriapp
Created August 26, 2018 13:37
Show Gist options
  • Save oriapp/a657c22ba691150f7bca236ecb1a4f7b to your computer and use it in GitHub Desktop.
Save oriapp/a657c22ba691150f7bca236ecb1a4f7b to your computer and use it in GitHub Desktop.
const Discord = require("discord.js");
const errors = require("../utils/errors.js");
module.exports.run = async (bot, message, args) => {
//!addrole @andrew Dog Person
if (!message.member.hasPermission("MANAGE_ROLES")) return errors.noPerms(message, "MANAGE_ROLES");
if (args[0] == "help") {
message.reply("Usage: !addrole <user> <role>");
return;
}
let rMember = message.guild.member(message.mentions.users.first()) || message.guild.members.get(args[0]);
if (!rMember) return errors.cantfindUser(message.channel);
let role = args.join(" ").slice(22);
if (!role) return message.reply("Specify a role!");
let gRole = message.guild.roles.find(`name`, role);
if (!gRole) return message.reply("Couldn't find that role.");
if (rMember.roles.has(gRole.id)) return message.reply("They already have that role.");
await (rMember.addRole(gRole.id));
try {
await rMember.send(`Congrats, you have been given the role ${gRole.name}`)
} catch (e) {
console.log(e.stack);
message.channel.send(`Congrats to <@${rMember.id}>, they have been given the role ${gRole.name}. We tried to DM them, but their DMs are locked.`)
}
}
module.exports.help = {
name: "addrole"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment