您好,所以我想制作一个可以创建票证的discord机器人,但是我不确定我如何使用discord.py,而且我想知道是否有人可以提供帮助?我已经尝试过了。
@bot.command()
async def ticket(ctx):
await create_text_channel(name, *, overwrites=None, reason=None, **options)
但是它什么也不做,我得到这个错误。
Traceback (most recent call last):
File "C:\Users\Robin\AppData\Roaming\Python\Python37\site-packages\discord\ext\commands\bot.py", line 903, in invoke
await ctx.command.invoke(ctx)
File "C:\Users\Robin\AppData\Roaming\Python\Python37\site-packages\discord\ext\commands\core.py", line 855, in invoke
await injected(*ctx.args, **ctx.kwargs)
File "C:\Users\Robin\AppData\Roaming\Python\Python37\site-packages\discord\ext\commands\core.py", line 94, in wrapped
raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: NameError: name 'create_text_channel' is not defined```
答案 0 :(得分:1)
您提供的代码中存在三个错误:
create_text_channel()
是discord.Guild
类方法,因此它仅适用于Guild
实例name
变量,因此会出现错误。overwrites=None
和reason=None
,*
也是如此。最后,您的代码将如下所示:
@bot.command()
async def ticket(ctx):
await ctx.guild.create_text_channel('Channel Name')
我想您看了文档并复制粘贴了该方法的标题,这是不必要的,您可以看一下给出的示例。 channel = await guild.create_text_channel('cool-channel')
如果您想创建一个隐藏的频道,还有以下示例:
overwrites = {
guild.default_role: discord.PermissionOverwrite(read_messages=False),
guild.me: discord.PermissionOverwrite(read_messages=True)
}
channel = await guild.create_text_channel('secret', overwrites=overwrites)