Javascript 如何动态设置所有频道discord.js的权限

Javascript 如何动态设置所有频道discord.js的权限,javascript,node.js,discord.js,bots,Javascript,Node.js,Discord.js,Bots,因此,我发出了一个静音命令,但我找不到一种方法来设置每个频道的权限,并排除更改私人频道的权限 例如,设置频道权限如下: message.channel.updateOverwrite(角色1{ 发送消息:false, 说:错, 添加:false, 阅读信息历史记录:正确 }); message.channel.updateOverwrite(角色2{ 发送消息:空, 讲:空, 添加反应:null, }) 这仅设置执行命令的通道的权限,我想知道是否有方法为服务器中的每个通道(专用通道除外)设置权

因此,我发出了一个静音命令,但我找不到一种方法来设置每个频道的权限,并排除更改私人频道的权限

例如,设置频道权限如下:

message.channel.updateOverwrite(角色1{
发送消息:false,
说:错,
添加:false,
阅读信息历史记录:正确
});
message.channel.updateOverwrite(角色2{
发送消息:空,
讲:空,
添加反应:null,
})

这仅设置执行命令的通道的权限,我想知道是否有方法为服务器中的每个通道(专用通道除外)设置权限← 如果这是不可能的,那么忽略它),我知道您可以使用通道ID为每个通道设置权限,但这将限制为1个discord服务器,我不希望这样。

您可以循环服务器中的所有通道,并使用类似的方法使其静音

message.guild.channels.cache.forEach(channel => { //Get each channel
    if (channel.type === "text") { //Check if it's a text channel
        try {
            channel.updateOverwrite(role1, {
                SEND_MESSAGES: false,
                SPEAK: false,
                ADD_REACTIONS: false,
                READ_MESSAGE_HISTORY: true
            });

            channel.updateOverwrite(role2, {
                SEND_MESSAGES: null,
                SPEAK: null,
                ADD_REACTIONS: null,
            });
        } catch (error) { //Run this if there was an error setting the permissions
            //Error handling code here
        };
    };
});
这些代码所做的只是获取服务器中每个频道的列表,忽略语音频道,并设置权限。如果您的机器人没有编辑频道的权限,则执行
catch
块。您只需让它
返回
,发送错误消息即可