Javascript Discord.js v12如何将新创建的角色分配给用户?

Javascript Discord.js v12如何将新创建的角色分配给用户?,javascript,discord,discord.js,Javascript,Discord,Discord.js,我试图创建一个新角色,并立即将其分配给用户和提到的人。但它找不到适合我的角色。。。用法:$create@user 我的代码: 问题的解决方案是在创建角色时使用wait,然后将角色添加到指定的用户。下面是一个例子: constrole=wait message.guild.roles.create({//创建角色)。 数据:{名称:“我的角色”,颜色:“默认值”} }).catch((e)=>console.error(`无法创建角色。|${e}');//捕捉错误。 message.member.

我试图创建一个新角色,并立即将其分配给用户和提到的人。但它找不到适合我的角色。。。用法:
$create@user
我的代码:


问题的解决方案是在创建角色时使用
wait
,然后将角色添加到指定的用户。下面是一个例子:

constrole=wait message.guild.roles.create({//创建角色)。
数据:{名称:“我的角色”,颜色:“默认值”}
}).catch((e)=>console.error(`无法创建角色。|${e}');//捕捉错误。
message.member.roles.add(Role).然后(()=>{//将角色添加到成员。
message.channel.send(`Role${Role.name}已添加到${message.author.tag}`);//如果已添加角色,则发送消息。
}).catch((e)=>console.error(`无法添加角色。|${e}');//捕捉错误。

还有另一个解决办法。您可以使用
roleCreate
事件。例如:

client.on(“roleCreate”,role=>{//正在侦听roleCreate事件。
role.guild.members.cache.get(“MemberID”).roles.add(角色);
//获取行会成员并添加角色。
});

如果可以使用.then()方法添加角色,为什么要搜索您创建的角色

const teamName=args.slice(2.join)(“”);
const队友=message.notices.members.first()
message.guild.roles.create({
数据:{
名称:`${teamName}`,
颜色:“默认”
}
}).then(r=>队友.roles.add(r))

是否有错误?“类型错误[无效类型]:提供的角色不是角色、雪花、数组或角色或雪花的集合。”
client.on('message', async message => {
    if (message.content.startsWith(prefix + "create")) {
        let args = message.content.slice(prefix.length).split(/ +/);
        let teamName = args.slice(2).join(" ");
        message.guild.roles.create({
            data:{
            name: `${teamName}`,
            color: "DEFAULT"
        }
        })
    let teamMate = message.mentions.members.first()   
    let teamRole = message.guild.roles.cache.find(role => role.name == `${teamName}`)
    message.member.roles.add(teamRole)
    teamMate.roles.add(teamRole)
    }})