forked from funnbot/Nitro
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathroleme.js
More file actions
98 lines (94 loc) · 4.12 KB
/
Copy pathroleme.js
File metadata and controls
98 lines (94 loc) · 4.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
exports.run = (message, bot) => {
let roles = message.guild.roleme
let prefix = message.guild.prefix
roles.forEach(r => {
if (!message.guild.roles.exists('name', r)) {
roles = nu.removeA(roles, r);
}
})
if (!message.args[0]) {
return message.send("**The Available roles are:**\n` " + (roles.length !== 0 ? roles.join(", ") : "\u200B ")+"`\n**you can add a role with:** `"+prefix+"roleme <roleName>`\n\n*Admins:*\n**You can add or remove an option from roleme with:**\n`" + prefix + "roleme add <role>` *or* `" + prefix + "roleme remove <role>`");
}
if (message.args[0] === "add") {
if (!message.channel.permissionsFor(message.member).has("MANAGE_GUILD")) {
return message.send("You need the `MANAGE_GUILD` permission to manage roleme.");
}
if (!message.args[1]) {
return message.send("Please define an existing role to add to roleme.");
}
let name = message.suffix.split(" ");
name.shift();
name = name.join(" ");
if (message.guild.roles.exists('name', name)) {
if (message.guild.member(bot.user).highestRole.position > message.guild.roles.find('name', name).position) {
if (message.guild.roles.filter(r => r.name === name).size === 1) {
if (roles.indexOf(name) === -1) {
roles.push(name);
bot.config.setRoleMe(message.guild.id, roles);
message.send("The role " + name + " has been added to roleme.")
} else {
message.send("That role is already added to roleme.");
}
} else {
message.send("There are duplicates of this role and I dont know which to assign.");
}
} else {
message.send("I cannot assign users a role that is higher than mine.");
}
} else {
message.send("The role " + name + " does not exist on this server.");
}
return;
}
if (message.args[0] === "remove") {
if (!message.channel.permissionsFor(message.member).has("MANAGE_GUILD")) {
return message.send("You need the `MANAGE_GUILD` permission to manage roleme.");
}
if (!message.args[1]) {
return message.send("Please define the role to remove from roleme");
}
let name = message.suffix.split(" ");
name.shift();
name = name.join(" ");
if (roles.indexOf(name) > -1) {
roles = nu.removeA(roles, name);
bot.config.setRoleMe(message.guild.id, roles);
message.send("The role " + name + " has been removed from roleme");
} else {
message.send("The role " + name + " is not currently added to roleme.")
}
return;
}
let role = message.suffix;
if (message.member.roles.exists('name', role)) {
if (roles.indexOf(role) > -1) {
if (message.guild.member(bot.user).highestRole.position > message.guild.roles.find('name', role).position) {
message.send("Removing role " + role);
message.member.removeRole(message.guild.roles.find('name', role));
} else {
message.send("I cannot remove this role because it has been moved above my highest role");
}
} else {
message.send("The role you wish to remove is not apart of the roleme config.")
}
return;
}
if (roles.indexOf(role) === -1) {
return message.send("**The Available roles are:**\n` " + (roles.length !== 0 ? roles.join(", ") : "\u200B ")+"`\n**you can add a role with:** `"+prefix+"roleme <roleName>`\n\n*Admins:*\n**You can add or remove an option from roleme with:**\n`" + prefix + "roleme add <role>` *or* `" + prefix + "roleme remove <role>`");
}
if (message.guild.member(bot.user).highestRole.position > message.guild.roles.find('name', role).position) {
message.member.addRole(message.guild.roles.find('name', role));
message.send("You have been given the role: " + role + "\nYou can use `" + prefix + "roleme " + role + "` at anytime to remove this role.");
} else {
message.send("I cannot assign you this role because it has been moved above my highest role.")
}
}
exports.conf = {
userPerm: [],
botPerm: ["SEND_MESSAGES", "MANAGE_ROLES_OR_PERMISSIONS"],
coolDown: 0,
dm: false,
category: "Utility",
help: "Give yourself one of the available Role Me roles.",
args: "<role>"
}