我遇到了message.author.id的问题。当我要求机器人返回用户的ID时,它会返回井...用户ID。但这不是我想要的。我希望它说出用户的不和名(例如,而不是像13284701972315那样会说MyName#0000)。我正在制作一个可以根据命令发出布朗尼点的机器人。这里以及它可能会说的例子。
311661286213550091给了@AceFTW 22个布朗尼点数。他们目前有22人 布朗尼点!
我希望这样说:
@tristan360给了@AceFTW 22个布朗尼点数。他们目前有22人 布朗尼点!
我正在寻找机器人显示用户名称而不是用户ID的方法。
答案 0 :(得分:1)
如果您已有Member
个对象,则可以立即访问该名称。
# 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
个对象,但在discord.py 0.x中有Guild
(Server
),则可以使用Guild.get_member
方法
member = guild.get_member(userID)
member.name # MyName
如果您根本没有任何信息,可以使用Client.get_user_info
方法。请注意,这会返回User
而不是Member
,因此您无权访问昵称,角色等。
user = bot.get_user_info(userID)
user.name # MyName
user.nick # Error