提供的角色不是角色,雪花或雪花或角色或雪花的集合

时间:2020-09-17 17:51:14

标签: javascript node.js discord discord.js

我正在尝试使其在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);

1 个答案:

答案 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 =>