小能豆

新的 Discord 用户名系统

python

我有这个 python 机器人,当用户试图存储一些东西时,作者姓名和鉴别符(’#’)也会被存储

return "**Hello** **" + message.author.name + "#" + message.author.discriminator + "** ** :wave: "

所以我的问题是当他们删除鉴别器并应用新的用户名系统时,我如何在我的机器人中更改它存储用户名?我还需要升级我的 discord python 包吗?他们会添加这样的东西吗? message.author.username 因为当我现在尝试打电话时,message.author.username我得到了这个

'User' object has no attribute 'username`

阅读 139

收藏
2023-06-13

共2个答案

小能豆

Discord.py 包将在 discord 应用用户名系统后的某个时间更新。

目前,您不能使用新系统,因为 Discord.py 的开发人员需要在实施更改之前了解新系统的工作原理。

至于你的问题

当最终出现更新时,您将必须更新 Discord.py 包,否则您将无法使用更新后的方法。我们也不知道如何执行存储用户名,但message.author.username似乎可以很好地猜测该方法是什么样的

2023-06-13
小能豆

根据您提供的代码和错误消息,我可以看出您正在使用 Discord.py 库来构建您的机器人。问题在于,您尝试访问 message.author.username 属性,但该属性实际上不存在。

在 Discord.py v1.7.0 版本之前,message.author 对象的属性包括 namediscriminatorid,但没有直接的 username 属性。如果您的库版本早于 1.7.0,您需要升级到最新版本以访问 message.author.name 属性。

在 Discord.py v1.7.0 版本及更高版本中,message.author 对象的属性已更改,name 属性用于存储用户名,而不需要使用 message.author.name + "#" + message.author.discriminator 的组合。因此,您可以简单地使用 message.author.name 获取用户名。

要解决此问题,请执行以下操作:

  1. 更新 Discord.py 库到最新版本。您可以使用以下命令在命令行中安装或更新 Discord.py:
pip install -U discord.py
  1. 修改您的代码如下:
return "**Hello** **" + message.author.name + "** ** :wave: "

通过这些更改,您将能够正确地访问和存储用户的用户名而无需进行额外的处理。请确保查看 Discord.py 的官方文档以获取更多关于版本更新和属性访问的详细信息。

2023-06-13