从 discord.py 中的不和谐服务器中获取随机用户

时间:2021-01-13 14:23:49

标签: python discord.py

我想让机器人从 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}")

感谢未来的回答!

2 个答案:

答案 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()