Discord.js多角色检查

时间:2020-06-17 06:38:12

标签: javascript bots discord.js

到目前为止,我一直在努力寻找一种更好的方法来检查不和谐机器人上命令的多个角色,到目前为止,我能做的最好的就是} else {

run(message) {
    if(message.member.roles.find("name", "Pheonix")){

        return message.say('These are dark times. . .', {files: ["./resources/videos/darktimes.mp4"]});
    }else{
        if(message.member.roles.find("name", "Renowned Wizard")){
        return message.say('These are dark times. . .', {files: ["./resources/videos/darktimes.mp4"]});
    }else{

  return message.say('*Patreon restricted.*');

我想知道是否可以通过某种方法将其插入数组,并使用数组中的任何内容作为角色检查器,是否有任何方法可以解决此问题? 好的,所以我尝试添加一个数组,但是我无法使它起作用

    var morsmordreRoles = [
        'Dev',
        'Renowned Wizard',
        'Pheonix',
        'Moderator'
    ]
    if(message.member.roles.find("name", morsemordreRoles)){

    return message.say('*You mark the sky with the presence of The Dark Lord* ', {files: ["./resources/gifs/morsmordre.gif"] });
}else{
    return message.say('*Death Eater restricted.*');
}



}
}

1 个答案:

答案 0 :(得分:1)

如果要使用数组,则可以使用foreach和bool检查来检查用户是否具有数组中的任何个角色,也应使用.cache.some而不是here

中的discord.js v12中的find

示例:

var morsmordreRoles = [
        'Dev',
        'Renowned Wizard',
        'Pheonix',
        'Moderator'
    ]
    var hasRole = false;
    morsmordreRoles.forEach(findrole =>{
        if(message.member.roles.cache.some(role => role.name === findrole)) hasRole = true; //if user has role, sets bool to true
    })

    if(hasRole === true){
        //code when has role
    }
    else{
        //code when has no role
    }