Javascript roles.cache.find()用于查找返回未定义的角色

Javascript roles.cache.find()用于查找返回未定义的角色,javascript,node.js,discord,discord.js,bots,Javascript,Node.js,Discord,Discord.js,Bots,我的代码如下: collector.on('collect', async (reaction, user) => { if (!user.bot) { let role = reaction.message.guild.roles.cache.find((role) => { return role.name === '️announcements-ping' }); console.log(role); /* let use

我的代码如下:

collector.on('collect', async (reaction, user) => {
    if (!user.bot) {
        let role = reaction.message.guild.roles.cache.find((role) => { return role.name === '️announcements-ping' });
        console.log(role);
        /* let userMember = await reaction.message.guild.members.fetch(user);
        userMember.roles.add(role); */
    }
});
它应该向对消息做出反应的人添加
role
角色,但是当我控制台记录变量
role
时,它返回未定义的

我做错了什么


谢谢

您的代码似乎有效,请确保您的角色名称有效。(也区分大小写)

对于discord,建议改用Ids。如果您不知道如何收集它们,请访问此

let role=reaction.message.guild.roles.cache.find(role=>role.id=='️roleID');
//或
让role=reaction.message.guild.roles.cache.get('️roleID');

确保角色名称正确无误。如果它是正确的,可能角色没有被缓存,您需要获取它。返回承诺,因此请确保等待结果

查看下面的代码:

collector.on('collect', async (reaction, user) => {
    if (!user.bot) {
        let role = reaction.message.guild.roles.cache.find((role) => { return role.name === '️announcements-ping' });
        console.log(role);
        /* let userMember = await reaction.message.guild.members.fetch(user);
        userMember.roles.add(role); */
    }
});
collector.on('collect',异步(反应,用户)=>{
if(user.bot)返回;
试一试{
let roles=wait reaction.message.guild.roles.fetch();
//您还可以通过id获取角色
//let role=roles.cache.get('872088xxxxx0194211');
让role=roles.cache.find((r)=>r.name.toLowerCase()️公告",;
如果(!role)返回console.log(`Oops,我找不到角色`);
let member=wait reaction.message.guild.members.fetch(用户);
member.roles.add(角色);
}捕获(错误){
console.log(错误);
}
});

这意味着角色
不存在。不建议使用角色名称,因为它们可能会快速更改。相反,使用
role=reaction.message.guild.roles.cache.find(role=>role.id=='RoleID')
如果您使用的是IDIs,建议使用
.get()
有没有一种方法可以使用DiscordJS而不是手动获取ID?方法是使用角色名收集ID,然后使用ID获取程序。您是否可以链接一个网站,解释如何执行此操作,或者编辑您的代码或其他内容?没有压力,只是想知道C:这对我不起作用,我收到了错误消息。“哦,我找不到角色”然后服务器上没有名为
的角色。你仔细检查过名字是否正确了吗?是的。我甚至复制粘贴了它,以确保您是否尝试使用其他名称创建新角色,并在代码中对其进行更新以进行检查?我现在没有主意了。