对于 discord.py,我如何将作者的 id 变成不和谐用户的真实姓名?
- 作者: 尛灵厷主
- 来源: 51数据库
- 2023-02-10
问题描述
我在使用 message.author.id 时遇到问题.当我要求机器人返回用户 ID 时,它会返回...用户 ID.但这不是我想要的.我想让它说出用户的不和谐名称(例如,而不是像 13284701972315 那样,它会说 MyName #0000).我正在制作一个机器人,它会根据命令给出布朗尼点数.这是它可能会说的内容和示例.
I'm having trouble with message.author.id. When I ask a bot to return the user's ID, it returns the well... user ID. But that's not what I want. I want it to say the user's discord name (for an example, instead of like 13284701972315 it would say MyName #0000). I'm making a bot which will give out brownie points on command. Here's and example of what it might say.
311661286213550091 给@AceFTW 22 分.他们目前有 22布朗尼点!
311661286213550091 has given 22 brownie points to @AceFTW. They currently have 22 brownie points!
我想这样说:
@tristan360 给了@AceFTW 22 分.他们目前有 22布朗尼点!
@tristan360 has given 22 brownie points to @AceFTW. They currently have 22 brownie points!
我正在寻找一种让机器人显示用户名而不是用户 ID 的方法.
I'm looking for a way for the bot to display the user's name instead of the user's ID.
推荐答案
如果您已经有一个 Member 对象,则可以立即访问该名称.
If you have a Member object already, you can access the name straight away.
# member is <Member id=... name=MyName#0000> member.name # MyName member.nick # MyNick member.display_name # MyNick if nick is not None, else MyName member.mention # @MyName str(member) # MyName#0000
如果您没有 Member 对象,但有 Guild(discord.py 0.x 中的 Server),您可以使用 Guild.get_member 方法.
If you do not have a Member object, but do have a Guild (Server in discord.py 0.x,) you can use the Guild.get_member method.
member = guild.get_member(userID) member.name # MyName
如果您根本没有任何信息,可以使用 Client.get_user_info 方法.请注意,这将返回 User 而不是 Member,因此您将无法访问昵称、角色等.
If you don't have any information at all starting, you can use the Client.get_user_info method. Note, this returns a User not a Member, so you will not have access to nicknames, roles, etc.
user = bot.get_user_info(userID) user.name # MyName user.nick # Error