对于 discord.py,我如何将作者的 id 变成不和谐用户的真实姓名?
问题描述
我在使用 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
相关文章