我想让机器人从 Discord 服务器中选择 2 个随机用户,但每次我这样做时,机器人只选择他,服务器中没有其他人,这是我的代码
@bot.command()
async def random(ctx):
users = ctx.guild.members
user1 = choice(users)
user2 = choice(users)
await ctx.send(f"{user1} a bolossé {user2}")
感谢未来的回答!
答案 0 :(得分:1)
很确定您没有启用 intents.members
intents = discord.Intents.default()
intents.members = True
bot = commands.Bot(..., intents=intents)
记得在 developer portal
中启用它们另外为了获得两个随机用户,您可以使用 random.sample
以避免重复
user1, user2 = random.sample(users, 2)
答案 1 :(得分:0)
记住在您的代码中有 .recover {
case ex: ImportError.CauseFirst => ...
case ex: ImportError.CauseSecond => ...
case ex: ImportError.CauseThird => ...
...
}
。这允许您的机器人访问不同公会的成员。此外,请务必将 intents.members = True
放入您的代码中以激活所有意图。如果您收到有关此问题的控制台错误,请转到 the discord developer portal,转到 Bot 部分,然后转到显示特权网关意图的位置并激活它们。
所以你的代码应该是这样的:
intents = discord.Intents.all()