Descubra se alguém tem um papel
Eu fiz um bot de cotação simples para um servidor, mas o administrador só quer que as pessoas do mod + possam adicionar cotações para evitar spam. Fui à documentação e fiz tudo, mas não consigo fazer isso funcionar. Aqui está o que eu tenho:
//other code
else if (command === "addquote" && arg) {
let adminRole = message.guild.roles.find("name", "Admin");
let modRole = message.guild.roles.find("name", "Mod");
if(message.member.roles.has(adminRole) || message.member.roles.has(modRole)){
const hasArr = arr.some((el) => {
return el.toLowerCase().replace(/\s/g, '') === arg.toLowerCase().replace(/\s/g, '');
});
if(hasArr){
message.channel.send(arg.replace(/\s+/g,' ').trim() + " is already a Quote");
} else {
fs.appendFileSync('./Quotes.txt', '\r\n' + arg);
message.channel.send("Quote added: " + arg);
arr.push(arg);
}
}
}
É muito meticuloso. Às vezes, funcionará se o usuário tiver o papel mod, na maioria das vezes não. Se eu fizer
console.log(message.memeber.roles.has(adminRole));
console.log(message.memeber.roles.has(modRole));
ambos produzirão falso, mas funcionarão? Honestamente, eu não tenho idéia neste momento.