【问题标题】:Muted Role is not being created未创建静音角色
【发布时间】:2020-09-09 21:17:24
【问题描述】:

我创建了一个temporary mute 命令,我的机器人检查公会是否有一个名为Muted 的角色。因此,如果用户在 Muted 角色不存在的公会中执行命令,它会为他们创建一个。但是,我遇到了一个问题,机器人创建了一个名为 new role 而不是 Muted image1 的角色。如果用户在公会中第二次执行该命令,则会创建new role 角色的副本;因为找不到Muted 角色image2

    let muteRole = message.guild.roles.cache.find(m => m.name === "Muted");
    if (!muteRole) {
       try {
          muteRole = await message.guild.roles.create({
             name: "Muted",
             color: "#000000",
             permissions:[]
          });

          message.guild.channels.cache.forEach(async (channel, id) => {
             await channel.createOverwrite(muteRole, {
                SEND_MESSAGES: false,
                MANAGE_MESSAGES: false,
                READ_MESSAGES: false,
                ADD_REACTIONS: false
             });
          });
       } catch(e) {
       console.log(e.stack);
     }
   }

【问题讨论】:

  • 您使用的是什么 discord.js 版本?
  • Discord.js v12.2

标签: javascript node.js discord discord.js roles


【解决方案1】:

根据the discord.js docs,您必须将namecolorpermission 放入data 属性中。这是他们使用该方法的示例:

// Create a new role with data and a reason
guild.roles.create({
  data: {
    name: 'Super Cool People',
    color: 'BLUE',
  },
  reason: 'we needed a role for Super Cool People',
})

【讨论】:

  • 谢谢我成功了!我第一次尝试文档中的内容对我不起作用,因为我忘记输入权限。
猜你喜欢
  • 2021-07-30
  • 1970-01-01
  • 2021-10-10
  • 2020-09-15
  • 2022-01-07
  • 1970-01-01
  • 1970-01-01
  • 2021-07-06
  • 1970-01-01
相关资源
最近更新 更多