首页 > 解决方案 > 为什么这个静音功能会显示所有隐藏的通道?

问题描述

message.guild.channels.cache.forEach((channel) => {
                channel.overwritePermissions([
                    {
                        id: muteRole.id,
                        deny: ['SEND_MESSAGES', 'CONNECT', 'ADD_REACTIONS'],
                    },
                ], 'Mute role permissions');
            });

这会显示所有隐藏的频道并重置所有频道中的所有权限。

标签: discord.js

解决方案


问题是,overwritePermissions()就像它说的覆盖每个权限一样,您可以updateOverwrite()改用

https://discord.js.org/#/docs/main/stable/class/TextChannel?scrollTo=updateOverwrite

message.channel.updateOverwrite(muteRole.id, {
  SEND_MESSAGES: false
})
  .then(console.log)
  .catch(console.error);

推荐阅读