从命令中获取用户 ID

时间:2021-04-22 10:00:37

标签: python discord.py

有没有办法获取使用特定命令的人的用户 ID?

我试图创建一个测试命令来看看我是如何做到的,但我似乎无法让它工作

@client.command()
async def icri(ctx, message):
    await ctx.send(message.author.user_id)

我尝试完成这项工作,但是当我以 !icri xyz 的身份运行命令时,我认为如果将 xyz 作为消息,它将返回用户 ID。但是当我运行它时,我收到一条错误消息,指出该函数缺少参数“message”。

我的最终目标是创建一个命令,该命令将查找使用该命令的成员的用户 ID 并访问与其关联的字典项。 如果我做这样的事情,我可以做到这一点

@client.command()
async def icri(ctx, member):
    await ctx.send(member.user_id)

但这是不切实际的,我也希望它是一件隐蔽的事情。

1 个答案:

答案 0 :(得分:0)

在您的函数中,message 只是您传递的一个参数。所以它不是 message 对象。如果您收到消息,您可以使用 ctx.message 获得它。也看看这些:

ctx.guild => Server
ctx.channel => The text channel
ctx.message => The message
ctx.author => Who sent the message
ctx.author.id => User's id

您可以在https://discordpy.readthedocs.io/en/latest/ext/commands/api.html#bots

获得更多信息