我目前正在编写一个函数,该函数将创建一个新的用户角色,为发出命令的用户分配一个随机的颜色并给该角色命名。代码如下:
message.guild.createRole({
data: {
name: 'Super Cool People',
color: 'BLUE',
},
reason: 'we needed a role for Super Cool People',
})
.then(console.log)
.catch(console.error);
您可能已经知道其中的一部分,它直接不在CreateRole的文档中。但是,我遇到的问题是它已经成功创建了角色,但是该角色的名称是“新角色”,而不是上面指定的名称。角色的颜色不受此影响。日志显示:
2020-04-16T23:01:35.133373+00:00 app[worker.1]: id: '700481043597099059',
2020-04-16T23:01:35.133373+00:00 app[worker.1]: name: 'new role',
2020-04-16T23:01:35.133374+00:00 app[worker.1]: color: 0,
2020-04-16T23:01:35.133374+00:00 app[worker.1]: hoist: false,
2020-04-16T23:01:35.133374+00:00 app[worker.1]: position: 1,
2020-04-16T23:01:35.133374+00:00 app[worker.1]: permissions: 104324673,
2020-04-16T23:01:35.133374+00:00 app[worker.1]: managed: false,
2020-04-16T23:01:35.133374+00:00 app[worker.1]: mentionable: false
权限是默认设置,这里没有什么特别的事情。有权访问此命令的用户将已经具有从较高顺序的角色分配的足够权限。但是,问题在于特定角色没有按预期命名,也没有分配颜色。使用message.guild.createRole似乎适合我正在使用的范围,因为它在消息等待异步调用中。为什么会这样?
答案 0 :(得分:1)
您的解决方案应该很简单,您可以使用RANDOM
作为值来随机化颜色,并且可以使用GuildMember角色的用户名
message.guild.createRole({
name: message.author.username,
color: 'RANDOM',
})
.then(console.log)
.catch(console.error);