Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 需要关于discord.py bot的建议吗_Python_Python 3.x_Xcode_Discord_Discord.py Rewrite - Fatal编程技术网

Python 需要关于discord.py bot的建议吗

Python 需要关于discord.py bot的建议吗,python,python-3.x,xcode,discord,discord.py-rewrite,Python,Python 3.x,Xcode,Discord,Discord.py Rewrite,写我的第一个机器人。我正在尝试创建一个机器人,它将通过命令更改成员的用户名和角色 例子:!塞尼克[成员][纽尼克]!指定角色[成员][角色] 我的role命令工作得很好,但是我对更改昵称文档感到困惑 bot将运行,但当我在discord中输入命令时,它将返回以下错误: Ignoring exception in command setnick: Traceback (most recent call last): File "FILEPATH", line 79, in wrapped

写我的第一个机器人。我正在尝试创建一个机器人,它将通过命令更改成员的用户名和角色

例子:!塞尼克[成员][纽尼克]!指定角色[成员][角色]

我的role命令工作得很好,但是我对更改昵称文档感到困惑

bot将运行,但当我在discord中输入命令时,它将返回以下错误:

Ignoring exception in command setnick:
Traceback (most recent call last):
  File "FILEPATH", line 79, in wrapped
    ret = await coro(*args, **kwargs)
  File "FILEPATH", line 23, in setnick
    await change_nickname(server.get_member, nickname)
NameError: name 'change_nickname' is not defined

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "FILEPATH", line 863, in invoke
    await ctx.command.invoke(ctx)
  File "FILEPATH", line 728, in invoke
    await injected(*ctx.args, **ctx.kwargs)
  File "FILEPATH", line 88, in wrapped
    raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: NameError: name 'change_nickname' is not defined

提前谢谢

change\u昵称
是从类调用的函数,您可以参考文档,您会注意到该函数位于名为的类下。
这意味着你不能无缘无故地调用
change\u昵称

例如,它类似于您的
send(string)
方法。您不能无缘无故地调用它,您需要使用文本通道对象来调用它。
因此,您之所以选择了
ctx.send()
而不是
send()

您可能在登录bot时创建了一个客户端对象,
yourObjectName=new client()
。找到它并使用它调用
change\u昵称()
如下:

await yourObjectName.change_nickname(server.get_member, nickname)

可能有一个对象可以对其使用方法。当前您正在调用未定义的函数。也许有点像client.change_nick(*args)。我对这个API不太了解,但请阅读以下内容:首先,感谢您的回答和帮助。我前几天读到这篇文章,它要求更改作者的昵称。我很困惑如何让discord意识到我正试图改变一个不同的用户昵称。我会再看一眼,看看能不能修改一下。好吧,我现在明白了。谢谢
await yourObjectName.change_nickname(server.get_member, nickname)