我正在尝试使其在discord.js
中创建角色并将其分配给用户,但似乎出现了此错误:
UnhandledPromiseRejectionWarning:TypeError [INVALID_TYPE]:提供的角色不是角色,雪花或角色或雪花的数组或集合。
这是我的代码:
let d = msg.guild.roles.create({
data: {
name: '{:robot: Bot Developer}',
color: 'ff00aa',
permissions: 'ADMINISTRATOR',
},
});
msg.member.roles.add(d);
答案 0 :(得分:1)
根据Discord.js文档,RoleManager.create()返回带有该角色的Promise。
由于您没有await
或.then
,因此d
可能是Promise { <pending> }
。
假设您正在异步函数中运行,则以下代码应该起作用。
let d = await msg.guild.roles.create({
data: {
name: '{:robot: Bot Developer}',
color: 'ff00aa',
permissions: 'ADMINISTRATOR',
},
});
msg.member.roles.add(d);
如果您无法使用异步功能,则可以选择以下替代方法
msg.guild.roles.create({
data: {
name: '{:robot: Bot Developer}',
color: 'ff00aa',
permissions: 'ADMINISTRATOR',
},
}).then(d => {
msg.member.roles.add(d);
// Continue on with what you want to do.
})
如果遇到包含await is only valid in an async function
的错误,请通过更改以下内容来确保函数是异步的:
function foo() {
OR (depending on your code)
client.on('message', message =>
到
async function foo() {
OR (depending on your code)
client.on('message', async message =>