Javascript 如何创建漏洞扫描程序ping@everyone?Discord.js
我想为服务器管理员创建一个有用的团队。 多亏了这个命令,bot显示了您可以在这里ping每个人的频道Javascript 如何创建漏洞扫描程序ping@everyone?Discord.js,javascript,node.js,discord,discord.js,Javascript,Node.js,Discord,Discord.js,我想为服务器管理员创建一个有用的团队。 多亏了这个命令,bot显示了您可以在这里ping每个人的频道 谁对如何创建此网站有任何建议?你可以在公会中反复浏览文本频道s,寻找频道,比如说,@everyone拥有提及每个人权限,允许任何人点击@everyone或@here 例如,下面的代码查找公会中的所有文本频道,然后检查@everyone是否有权限覆盖,然后检查是否明确允许提及每个人 const vulnerableChannels=[]; const channels=message.guild.
谁对如何创建此网站有任何建议?你可以在公会中反复浏览
文本频道
s,寻找频道,比如说,@everyone
拥有提及每个人
权限,允许任何人点击@everyone或@here
例如,下面的代码查找公会中的所有文本频道,然后检查@everyone
是否有权限覆盖,然后检查是否明确允许提及每个人
const vulnerableChannels=[];
const channels=message.guild.channels.cache.array().filter(channel=>channel.type=='text');
for(信道的常数信道){
if(channel.permissionOverwrites.filter(overwrite=>overwrite.id==message.guild.id&&overwrite.allow.has('notice_EVERYONE')).array().length>0)vulnerableChannels.push(channel.id);
}
let output='以下通道易受攻击:\n';
漏洞通道.forEach(通道=>output=output.concat(`•\n`));
message.channel.send(输出);
@user15517071的答案会起作用,但前提是@everybody
在默认情况下没有“提及所有人”
权限。如果您还想检查,则需要更新过滤器
查看下面的代码,我添加了大量注释:
const textChannels=message.guild.channels.cache.filter((ch)=>ch.type==='text');
const caneveryonementation=message.guild.roles.everybody.permissions.has('antify_everybody');
const channels此处提及的每个人=textChannels
.map((频道)=>{
//如果没有覆盖,每个人都可以默认提到@everyone
如果(!channel.permissionOverwrites.size&&caneveryonementation)
返回通道;
//用于检查覆盖是否允许提及@everyone的筛选器
常量覆盖过滤器=(覆盖)=>{
//仅检查覆盖是否属于@everyone角色
if(overwrite.id!==message.guild.id)
返回false;
//检查是否允许提及所有人
if(overwrite.allow.has('notify_EVERYONE'))
返回true;
//或者默认情况下是允许的,并且在此覆盖中不会被拒绝
if(caneveryonementation&!overwrite.deny.has('antify_EVERYONE'))
返回true;
//所有其他情况
返回false;
};
const overwrites=channel.permissionOverwrites.filter(overwriteFilter);
//仅当存在“有效”覆盖时才返回通道
return overwrites.size>0?通道:空;
})
//删除空值
.过滤器(布尔值);
const channelList=channelswwhereeveryonecanbeeded.join('\n');
message.channel.send(`人们可以在以下频道中提及所有人:\n${channelList}`);