[英]How to dynamically set permissions for ALL channels discord.js
所以我正在制作一个静音命令,但我找不到为每个频道设置权限并排除更改私人频道权限的方法。
所以例如设置频道权限如下:
message.channel.updateOverwrite(role1, {
SEND_MESSAGES: false,
SPEAK: false,
ADD_REACTIONS: false,
READ_MESSAGE_HISTORY: true
});
message.channel.updateOverwrite(role2, {
SEND_MESSAGES: null,
SPEAK: null,
ADD_REACTIONS: 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
块。 您可以简单地让它return
,发送错误消息,无论您想要什么。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.