Finden Sie heraus, wenn jemand eine Rolle

Habe ich ein einfaches Zitat bot für einen server, aber der admin will nur mod+ Menschen werden in der Lage, fügen Sie Anführungszeichen, um spam zu vermeiden. Ich ging an die Dokumentation und Tat alles, aber ich kann nicht ankommen dieses zu wirken. Hier ist, was ich habe:

//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);            
        }   
    }
}

Es ist sehr pingelig. Manchmal wird es funktionieren, wenn der Benutzer über die mod-Rolle, die meisten der Zeit es nicht. Wenn ich

console.log(message.memeber.roles.has(adminRole));
console.log(message.memeber.roles.has(modRole));

beide wird der Ausgang auf false, aber funktionieren???
Ehrlich gesagt, ich habe keine Ahnung an dieser Stelle.

InformationsquelleAutor R. Gillie | 2017-07-26

Schreibe einen Kommentar