如何向多个标记的用户发送一条消息? (discord.py)

时间:2021-01-27 08:23:42

标签: python bots discord.py discord.py-rewrite

我的机器人中有一个名为“spam”的命令,这样当有人执行“.spam”时,它会发送一个嵌入警告,不要发送垃圾邮件。我已经能够让机器人发送嵌入并提及用户。但是,当我执行 ".spam @user1 @user2" 时,它确实提到了两个用户,但也发送了两次嵌入,一次用于 user1,另一次用于 user2。

如何做到只发送 1 条消息,并提到用户数量? 任何帮助将不胜感激!谢谢。

这是我在垃圾邮件齿轮中的代码:

@commands.command()
    async def spam(self, ctx, *members: discord.Member):
        if members is None:
            embed = discord.Embed(
                title='',
                description='Please do not spam the chat.',
                colour=discord.Colour.blue()
            )
            embed.set_footer(text='')
            embed.set_author(name='Mod says:',
                             icon_url='https://cdn.discordapp.com/avatars/745674627845587004/834f65d2747b1bb8806d12e3791c36bd.webp?size=1024')
            await ctx.send(embed=embed)

        else:
            embed = discord.Embed(
                title='',
                description='Please do not spam the chat.',
                colour=discord.Colour.blue()
            )
            embed.set_footer(text='')
            embed.set_author(name='Mod says:',
                             icon_url='https://cdn.discordapp.com/avatars/745674627845587004/834f65d2747b1bb8806d12e3791c36bd.webp?size=1024')
            for member in members:
                await ctx.send(member.mention, embed=embed)

1 个答案:

答案 0 :(得分:0)

for member in members:
    await ctx.send(member.mention, embed=embed)

是不是有问题。我会做这样的事情,虽然这不是最好的解决方案。

await ctx.send(" ".join([member.mention for member in members]), embed=embed)