首页 > 解决方案 > 从命令中获取用户 ID

问题描述

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

我试图做一个测试命令,看看我怎么能做到,但我似乎无法让它工作

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

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

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

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

但这是不切实际的,我也希望它是一个隐蔽的东西。

标签: pythondiscord.py

解决方案


在你的函数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中获得更多信息


推荐阅读