从命令中找不到角色

时间:2018-08-03 12:36:29

标签: javascript bots discord discord.js

我的不和谐服务器上有一些角色。有些仅用于颜色。我希望我的成员使用命令.cargo <color>

自行选择角色

我有验证码

if (command === 'cargo') {
    const colors = message.guild.roles.filter(role => role.name.startsWith('#'));
    if (colors.size < 1) return message.channel.send('Não há cargos nesse servidor');

    const str = args.join(' ');
    const role = colors.find(role => role.name.slice('#'.length).toLowerCase() === str.toLowerCase);

    if(!role) return message.channel.send('Esse cargo não existe!');

    try {
        await message.member.removeRoles(colors);
        await message.member.addRole(role);
        message.channel.send(`Agora você tem o cargo ${role}!`);
    }
    catch (e) {
        message.channel.send(`Falhei :( ${e.message}`);
    }
}

但是每次我输入.cargo时都会显示错误,例如角色不存在if(!role) return message.channel.send('Esse cargo não existe!');

我注意到的错误:

.cargo不显示服务器角色,并返回该角色不存在的消息

.cargo blue返回该角色不存在的消息

1 个答案:

答案 0 :(得分:0)

[评论中的解决方案]
在第五行,您写了role.name.slice('#'.length).toLowerCase() === str.toLowerCase,没有括号。如果这是您的代码,因为String.toLowerCase是一个函数,所以找不到角色,请尝试调用它,看看是否可行。