Python massping命令-discord.py

Python massping命令-discord.py,python,python-3.x,discord,discord.py,Python,Python 3.x,Discord,Discord.py,我试图做一个命令,从一个服务器随机获得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

我试图做一个命令,从一个服务器随机获得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。有没有什么办法可以让我确保它总是ping 5个不同的人

非常感谢您的帮助。

返回成员对象列表,您可以使用该列表返回唯一的元素

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))

这是否只是在某些服务器上起作用的原因?在某些服务器上,此命令不适用于我的bot-获取此错误“命令引发异常:ValueError:Sample大于总体或为负值”。不,我没有提到超过服务器成员数的用户数。