你是怎么做到在 discord.py 中嵌入介绍的?

How do you make it so there is an introduction embed in discord.py?

例如:

假设这是每个新机器人用户的介绍嵌入:

假设有 BEG、HELP、WORK 等命令以及此机器人支持的所有这些命令...但是如果您是新的机器人用户并且您键入“(前缀)beg”,您将不会乞求,相反,你会得到上面显示的这个嵌入,因为你是新的。然后就可以正常使用bot了...

你会怎么做?

你能使用类似的东西吗:

@client.event
async def on_new_user():
    await ctx.send(embed=introduction_embed)

或者有什么不同的方法吗?我如何确保每个用户都先看到这个介绍嵌入,并确保他们只看到一次?我正在使用 python 开发一个不和谐的机器人。将不胜感激一些帮助!非常感谢

像这样:

on_command 是 运行 当找到命令时,如果我用 before_invoke 装饰它,我可以在发送嵌入后引发错误,防止命令 运行 第一次为每个用户。不过,如何存储用户取决于您。

CommandError 被捕获并传递到 on_command_error 事件。

registered_users = []

@bot.before_invoke
@bot.event
async def on_command(ctx):
    global registered_users
    if ctx.author not in registered_users:
        registered_users.append(ctx.author)
        embed = discord.Embed(
            color=discord.Colour.random(),
            title="WELCOME",
            description="welcome message",
        )
        await ctx.send(embed=embed)
        raise commands.CommandError("Error")