当前位置: 首页 > 知识库问答 >
问题:

如何重写discord.py?中已经存在的命令

谷梁向荣
2023-03-14

我正在重写我的不和谐机器人以使用齿轮,当在我的“帮助”命令中编码时,它停止了编译。代码是:

@commands.command(name = 'help')
  async def help(self, ctx):
    embedVar = discord.Embed(title="AbidBot Help", description="The command prefix is !.", color=0xffffff)
    embedVar.add_field(name="!inspire", value="Get a random inspirational quote", inline=False)
    embedVar.set_footer(text="More commands are added daily so check this every once in a while")
    await ctx.send(embed=embedVar)

它抛出的错误表示:

ExtensionFailed(key, e) from e
discord.ext.commands.errors.ExtensionFailed: 
Extension 'cogs.cog_general' raised an error: 
CommandRegistrationError: 
The command help is already an existing command or alias.

我没有发出帮助命令,我能做些什么来补救?

共有2个答案

养星汉
2023-03-14

哦,这实际上非常简单,Discord从一个内置的help命令开始,但是要禁用它,您只需要将bot放入。删除开头的命令(“帮助”)

任元青
2023-03-14

文档包括命令别名不能共享相同的名称,对于内置的帮助命令,默认情况下,帮助命令已经有“帮助”的别名,其中代码将给出该错误。

这可以通过使用remove_command属性来修复,然后将命令作为参数传递;

bot.remove_command("help")

如果您已经将客户端定义为您的客户端,请确保更改bot,否则请将其保留。现在,只要在要删除的命令之前提供了该命令,就可以删除该命令

这可以应用于您的命令,如:;

bot.remove_command("help")

@commands.command(name = 'help')
  async def help(self, ctx):
    embedVar = discord.Embed(title="AbidBot Help", description="The command prefix is !.", color=0xffffff)
    embedVar.add_field(name="!inspire", value="Get a random inspirational quote", inline=False)
    embedVar.set_footer(text="More commands are added daily so check this every once in a while")
    await ctx.send(embed=embedVar)
 类似资料:
  • 机器人必须每隔60秒做一件事。我尝试使用create_task,但它不起作用(bot启动了,但什么也没发生)。如何实现这一点?

  • 问题内容: 如何使命令不区分大小写,而不为不同的大小写添加许多别名,例如: 问题答案: 在重写分支上,接受一个参数 请注意,使用此功能会降低性能。

  • 问题内容: 我创建了一个容器,因此它不是交互式的。 我看到容器已退出: 现在,我想在计算机上偶尔运行命令并退出。只是为了得到回应。 我试图启动机器。我尝试附加。我以为我可以用一个容器打电话,但这似乎是不允许的。使用似乎可以运行,然后迅速存在。 我想退出后回到互动模式。 我试过了: 但是我得到: 但是,如果我启动它,它仍然会退出。赶上22.我赢不了。 问题答案: 在2014年10月,Docker团队

  • 我看到容器已经退出: 现在我想偶尔在机器上运行命令并退出。只是为了得到回应。 我试着开动机器。我试着连接。我以为可以用容器调用,但这似乎不允许。使用似乎只是运行然后快速存在。

  • 正如标题所说,我有一个文件编写器,我想多次重复使用该程序并将文本保存到同一文本文档中的新行中。 代码:

  • 问题内容: 我需要制作一个只能由具有特定角色的人执行的命令。我在google和youtube上搜索以找到答案,但一无所获 问题答案: 您可以在命令上添加装饰器,以将其限制为仅具有特定角色或权限的成员。它的文档在这里。它看起来像这样: 请记住,您传递的字符串区分大小写。