未创建静音角色

时间:2020-05-22 22:52:13

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

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

    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);
     }
   }

1 个答案:

答案 0 :(得分: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',
})