【问题标题】:How can I select a random user from a server?如何从服务器中选择随机用户?
【发布时间】:2021-04-17 06:07:09
【问题描述】:

我使用的是 discord.js 版本 12,问题是机器人只从整个服务器中选择 2 个用户(消息的作者和机器人),我希望它能够从中挑选任何人服务器。

这是我尝试过的代码:

client.on('message', msg=>{
  if(msg.content.toLowerCase() === "!sru"){
    const randomUser = msg.guild.members.cache.random();
    msg.channel.send(`${randomUser.user.username}#${randomUser.user.discriminator}`);
  }
})

提前致谢。

【问题讨论】:

  • 公会成员缓存的大小是多少? guild.members.cache.size
  • @Jakye 服务器有 5 个成员,但机器人显示 2 个,除非另一个用户被 ping 或发送消息。
  • @AnimatingCoder 这是因为需要缓存用户,所以如果他们没有发送任何消息,他们就不会被缓存。

标签: discord.js


【解决方案1】:
client.on('message', msg=>{
  if(msg.content.toLowerCase() === "!sru"){
    const randomUser = msg.guild.members.cache.random();
   msg.channel.send(`${randomUser.user.username}#${randomUser.user.discriminator}`);
  }
})

确保您在developer portal 中激活了SERVER MEMBERS INTENT

应用程序 -> 机器人 -> 服务器成员意图

【讨论】:

  • 谢谢,但这不起作用。机器人仍然只选择 2 个人。
  • @AnimatingCoder 也许你没有从旧代码或类似的东西中删除所有内容。我的答案中的代码没有问题。
  • @AnimatingCoder 删除您的旧代码并将其替换为我的答案代码。
  • 发生这种情况是因为其他用户未缓存,请尝试让用户发送消息以缓存它们。有时在新服务器中需要一些时间
  • 在开发者门户中启用意图后,您还需要在配置客户端时使用它们。这个question 应该可以帮到你。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-11-12
  • 1970-01-01
  • 2019-06-26
  • 2016-09-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多