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
块。您只需让它返回
,发送错误消息即可