我正在尝试创建一个从服务器中获取5个人并提及他们的命令。到目前为止,我的情况是:
@bot.command()
async def massping(ctx):
await ctx.message.delete()
user = choice(ctx.message.channel.guild.members)
user2 = choice(ctx.message.channel.guild.members)
user3 = choice(ctx.message.channel.guild.members)
user4 = choice(ctx.message.channel.guild.members)
user5 = choice(ctx.message.channel.guild.members)
message = await ctx.send(f'{user.mention}{user2.mention}{user3.mention}{user4.mention}{user5.mention}')
await message.delete()
问题是,有时它会两次对同一个人执行ping操作。有什么办法可以解决这个问题,因此我可以确保始终对5个不同的人执行ping操作?
任何帮助表示赞赏。
Guild.members
返回Member对象的列表,您可以random.sample
用来返回列表中的唯一元素。
async def ping(ctx, num: int):
members = [m.mention for m in ctx.guild.members]
rand = random.sample(members, num)
await ctx.send("\n".join(rand))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句