Javascript 是否有一种方法可以在创建角色后立即向成员添加角色?(Discord.jsv12)
我试图创建一个新角色,并在运行一次命令时将其添加到成员中,但似乎我必须运行两次命令(一次:创建角色,两次:将角色添加到成员) 我想这可能是由于以下错误:Javascript 是否有一种方法可以在创建角色后立即向成员添加角色?(Discord.jsv12),javascript,node.js,discord.js,Javascript,Node.js,Discord.js,我试图创建一个新角色,并在运行一次命令时将其添加到成员中,但似乎我必须运行两次命令(一次:创建角色,两次:将角色添加到成员) 我想这可能是由于以下错误:TypeError[无效类型]:提供的角色不是角色、雪花、数组或角色或雪花的集合。 if (command === 'test') { if (!message.mentions.users.size) { return message.reply('You need to tag a user!'); } const mem
TypeError[无效类型]:提供的角色不是角色、雪花、数组或角色或雪花的集合。
if (command === 'test') {
if (!message.mentions.users.size) {
return message.reply('You need to tag a user!');
}
const member = message.mentions.members.first();
const testRole = message.guild.roles.cache.find(role => role.name === 'TestRole');
if (!testRole) {
message.guild.roles.create ({
data: {
name: 'TestRole',
color: 'RANDOM',
},
}).catch(() => {
message.reply('Unable to create role');
});
}
member.roles.add(testRole).catch((error) => {console.log(error);});
}
是否有解决方法,以便在创建角色后立即将其添加到成员中?由于
角色。create
返回承诺,您可以使用.then()
将角色添加到成员中
if(命令=='test'){
如果(!message.notices.users.size){
返回message.reply('您需要标记用户!');
}
const member=message.indications.members.first();
const testRole=message.guild.roles.cache.find(role=>role.name=='testRole');
if(!testRole){
message.guild.roles.create({
数据:{
名称:“TestRole”,
颜色:“随机”,
},
})
。然后((角色)=>{
member.roles.add(testRole)
})
.catch(()=>{
message.reply('无法创建角色');
});
}否则{
member.roles.add(testRole.catch)((错误)=>{console.log(错误);});
}
}
谢谢!但是,TypeError[INVALID\u TYPE]:提供的角色不是角色、雪花或数组或角色或雪花的集合。
仍然存在,是否有解决方案?我更新了答案,如果错误仍然存在,请通知我。