我正在尝试向发送消息的人添加角色。我已经尝试过了,但是出现了一个错误

我试过了:

message.guild.createRole({name:"RoleName", color: "#ff0000"})
var memberRole = message.guild.roles.find(role => role.name === "RoleName");
message.member.addRole(memberRole);


如果您对该主题有任何疑问,请随时提问

最佳答案

我相信Guild#createRole()Promise返回Role,以异步方式解决。因此,如果您在第1行中创建角色,然后尝试在第2行中同步查找角色,则该角色将不在Guild#roles下(尚未)。

而是,等待Promise解决。然后,您可以将返回的Role直接传递给GuildMember#addRole()方法。

message.guild.createRole({name:"RoleName", color: "#ff0000"})
    .then(createdRole => message.member.addRole(createdRole));

08-25 11:11