Discord.js多角色检查

问题描述 投票:1回答:1

所以我一直在努力寻找一个更好的方法来检查我的discord机器人上的命令的多个角色,到目前为止,我可以做的最好的是}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.*');
}



}
}
javascript bots discord.js
1个回答
1
投票

如果你想使用一个数组,你可以使用foreach和bool检查来检查用户是否有 任何 中的角色,也应该使用 .cache.some 而不是 find 在discord.js v12中,可以看到 此处

例如:

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
    }
© www.soinside.com 2019 - 2024. All rights reserved.