discord.js 列出具有特定角色的频道

discord.js List channels with a certain role

正在尝试找到一种添加到我的机器人中的方法,如果有人输入例如 +info 它将列出服务器上具有特定角色的所有频道。 因此,如果角色是 VIP,执行 +info 将列出服务器上具有角色 VIP 的每个频道。

一直在尝试阅读文档,但找不到任何显示我想要的内容。我猜它必须使用不同的模块。 有人能帮忙吗? 干杯

你可以循环遍历公会所有的频道,检查User是否有VIEW_CHANNEL权限,检查他们是否有权限访问该频道。也许是这样的:

const listedChannels = []; 
message.guild.channels.forEach(channel => { 
    if(channel.permissionsFor(message.author).has('VIEW_CHANNEL')) listedChannels.push(channel.name);
});
message.channel.send(`You have access to: ${listedChannels.join(',')}`);

这是做什么的,它是否遍历公会中的频道集合,如果消息的作者有权实际查看该频道,那么它将将该频道名称添加到数组中。然后,它会发送一条消息,说明用户有权访问的频道列表。