未创建互换角色

问题描述 投票:0回答:1

我创建了一个 temporary mute 命令,我的机器人会检查公会是否有一个叫的角色。Muted. 因此,如果一个用户在以下公会中执行了该命令 Muted 角色不存在,它会为他们创建一个。然而,我遇到了一个问题,机器人创建了一个名为 "角色 "的角色。new role 而不是 Muted 图片1. 如果用户在公会中第二次执行该命令,就会创建一个复制的 new role 角色;作为 Muted 角色不存在 图像2.

    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);
     }
   }
javascript node.js discord discord.js roles
1个回答
1
投票

根据 discord.js文档,你必须把 name, colorpermission 里面 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',
})
© www.soinside.com 2019 - 2024. All rights reserved.