从用户ID(Discord.py)中获取Discord用户名



我正在尝试用discord.py编写一个简单的游戏。分数存储在数据库中,由discord用户ID(整数(索引。

现在我想以可读性很好的格式显示highcore。为此,我试图从用户ID(例如354250329581841022(中获取Discord用户名(例如Example#1234(。我发现了这个代码:

user_hs = client.get_user(user_id)
print(user_hs.name)

但不幸的是,user_hs总是None类型,并抛出一个错误,即它没有属性name

最小示例:

import discord
client = discord.Client()

@client.event
async def on_message(message):
user_message = str(message.content)
if user_message.lower() == '&hs':
user_id = 354250329581841022
user_hs = client.get_user(user_id)
print(user_hs.name)
client.run(TOKEN)

缺少的是await。在fetch_user完美工作之前添加:

user = await client.fetch_user(id)
await message.channel.send(f'{user}: {score} points')
client.get_user(id_)

这是有效的,然后你可以通过这种方式获得它的用户名:

client.get_user(id_).name

如果返回的值是None,则可能是用户不存在。

最新更新