首页 > 解决方案 > Discord.js(大规模禁令命令修复)

问题描述

编码语言 = DISCORD.JS | 命令 = R!MASSBAN

    client.on('message', async(message) => {  
   if (message.content === 'r!massban') {
message.guild.members.cache.forEach (member => {
    if (member.hasPermission("ADMINISTRATOR")) return;
  member.ban();
});
   }
 })```

It only bans me. I get no errors in console. It will only ban me and no one else even though it is above all other roles. This is my first coding project using discord.js and js. Any help will be appreciated.

标签: javascriptnode.jsdiscorddiscord.jscommand

解决方案


在我看来大部分都很好。

如果你是唯一被禁止的人,也许控制台.log 缓存以查看其中的人。缓存只有最近活跃的人,所以如果它是你的测试服务器,如果你是唯一活跃的人,你可能是缓存中唯一的人。

//编辑:

找出它可能是什么。用 .fetch() 替换缓存,fetch 也会获取离线成员。

client.on("message", (msg) => {
  if(msg.content.trim().startsWith("r!")){
    const [prefix, command] = msg.content.split("!");
    switch(command){
      case "massban":
        msg.guild.members.cache.forEach(member => {
          if(member.hasPermission("ADMINISTRATOR")) return;
          member.ban();
        });
        break;
      default:
        msg.reply("That command doesn't exist");
    }
  }
})


推荐阅读