la-cosa-nostra
Version:
A Mafia bot designed to run in Discord - beware the traitors and the lies!
53 lines (38 loc) • 1.45 kB
JavaScript
/*
Set the nickname and the roles here
*/
var logger = process.logger;
module.exports = async function (client, config, roles) {
var guild = client.guilds.get(config["server-id"]);
var alive_role = guild.roles.find(x => x.name === config["permissions"]["alive"]);
var pre_role = guild.roles.find(x => x.name === config["permissions"]["pre"]);
var dead_role = guild.roles.find(x => x.name === config["permissions"]["dead"]);
var aftermath_role = guild.roles.find(x => x.name === config["permissions"]["aftermath"]);
for (var i = 0; i < roles.length; i++) {
var member = guild.members.get(roles[i].id);
if (member === undefined) {
continue;
};
var name = member.displayName;
// Regex remove square brackets
// Don't forget double escapes!
name = name.replace(new RegExp("^(\[[A-z|0-9]{1,2}\] )*", "g"), "");
try {
await removeRole(member, [pre_role, dead_role, aftermath_role]);
await member.addRole(alive_role);
await member.setNickname("[" + roles[i].alphabet + "] " + name);
} catch (err) {
logger.log(3, "Permissions name error. The owner of the server is playing? Not a big deal. Just remember to nick yourself.");
};
};
};
async function removeRole (member, roles) {
for (var i = 0; i < roles.length; i++) {
if (!roles[i]) {
continue;
};
if (member.roles.has(roles[i].id)) {
await member.removeRole(roles[i]);
};
};
};