我正在尝试创建一个 discord.js 命令来创建一个名为 "MUTED" 的角色并覆盖所有通道权限以将 "Send message" 设置为 false

I am trying to make a discord.js command that creates a role named "MUTED" and overwrites all the channel permission to set "Send message" to false

我想让它创建角色,然后覆盖服务器中存在的每个通道中的权限。

module.exports = {
    name: "createmuterole",
    description: "creates a muted role for mute command to work",
    guildOnly: true,
    execute(message, args) {
        if (!message.member.permissions.has("MANAGE_SERVER")) return message.channel.send(`You donot have the required permission to perform this command, ${message.author.username}`);
        const Muted = message.guild.roles.cache.find((role) => role.name === "Muted");
        message.guild.roles.create({
            data: {
                name: "Muted",
                color: "#000000",
                permissions: [],
            },
        });

        message.guild.updateOverwrite(guild.channels.roles.Muted, { SEND_MESSAGES: false }); //this part doesn't seem to be working
        message.channel.send("Role sucessfully Created");
    },
};

此示例应提供使人静音的基本结构。请记住,以下示例通过 id 使人静音,因此您必须修改它以使其适用于角色。

guild.channels.cache.forEach(async (channel, id) => {
    await channel.overwritePermissions([
      {
        id: member.id,
        deny: ["SEND_MESSAGES"],
      },
    ]);
  });

这样做是覆盖每个频道的权限,并拒绝为该 id 发送消息的权限。