按摩命令-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.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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章