【问题标题】:discord.js role created but not with informationdiscord.js 角色创建但没有信息
【发布时间】:2020-07-30 08:36:46
【问题描述】:

我目前正在编写一个函数,该函数将创建一个新的用户角色,在发出命令的用户之后分配一个随机颜色和名称。代码如下:

            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 似乎适合我正在使用的边界,因为它在消息等待异步调用中。这是为什么呢?

【问题讨论】:

    标签: discord discord.js


    【解决方案1】:

    您的解决方案应该很简单,您可以使用 RANDOM 作为值来随机化颜色,并且可以使用 GuildMember 的用户名作为角色

    message.guild.createRole({
                    name: message.author.username,
                    color: 'RANDOM',
                })
                  .then(console.log)
                  .catch(console.error);
    

    【讨论】:

    • 这没有为上述问题提供解决方案。新角色名称将出现默认“new_role”并且没有分配颜色 - 尽管有数据字段在使用,但也没有记录明显的错误
    • 我刚刚修正了我的答案,它现在应该可以工作了,您的问题是您使用的是 discord.js v11,但您遵循的是 discord.js v12 角色创建者的结构。
    猜你喜欢
    • 2020-10-25
    • 2021-08-19
    • 2021-06-24
    • 2021-11-16
    • 2021-07-01
    • 2020-10-24
    • 2017-05-18
    • 2021-06-12
    • 2019-04-19
    相关资源
    最近更新 更多