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)
}})