discord.js 机器人在服务器中标记随机用户

discord.js bot to tag random user in server

我想包含一个“-random”命令,用于标记服务器的随机成员。我找到了以下代码:

if(command === 'random'){
              
        let randomUser = message.guild.members.cache.random().user;
        message.channel.send('<@'+randomUser+'>');
    }

它有效,但它只会标记我、机器人本身或其他人(如果那个人最近在频道中写过文章)。我该如何解决这个问题?

要获得公会中的所有成员,您必须在 client.login(token) 之前启用特权意图:https://discordjs.guide/popular-topics/intents.html#privileged-intents

确保您也在 Discord 开发者机器人仪表板中启用了意图:https://discord.com/developers/applications

首先获取所有成员,然后在返回的集合上调用 random()

if (command == 'random') {
   message.guild.members.fetch()
      .then(allMembers => {
         const member = allMembers.random();
         message.channel.send(member.toString());
      })
      .catch(console.error);
}

确保您已启用 GuildMember 的意图以便抓取工作。