Когда я выполняю эту команду cog более одного раза, она выдает ошибку discord.py

#python #python-3.x #discord.py

Вопрос:

Я сделал команду справки, и когда я выполняю команду один раз, она работает, но после этого она перестает работать, что означает, что мне нужно повторно запустить весь код. (кстати, это винтик) Ошибка, которую я получаю, если выполняю команду более одного раза, заключается в Ignoring exception in command None: discord.ext.commands.errors.CommandNotFound: Command "help" is not found

 import discord
from discord.ext import commands

class help(commands.Cog):

  def __init__(self, client):
    self.client = client



  @commands.command()
  async def help(self, ctx, cmd = "help"):
    self.client.remove_command("help")
    
    #help
    if cmd == "help":
      help_help_embed = discord.Embed(title = "Help Command", color = 0x00fd00)
      help_help_embed.add_field(name = "**:scroll: Info**", value = "`//help info`", inline = True)
      help_help_embed.add_field(name = "**:shield:Moderation**", value = "`//help moderation`", inline = True)
      help_help_embed.add_field(name = "**Channel**", value = "`//help channel`", inline = True)
      help_help_embed.add_field(name = "**:laughing: Fun**", value = "`//help fun`", inline = True)
      help_help_embed.add_field(name = "**:tools: Utility**", value = "`//help utility`", inline = True)
      help_help_embed.set_author(name = ctx.author, icon_url = ctx.author.avatar_url)

      await ctx.send(embed = help_help_embed)

    #info
    if cmd == "info":
      info_help_embed = discord.Embed(title = "**:scroll: Info Commands**", description = "//help {command}", color = 0x00fd00)
      info_help_embed.add_field(name = "Commands:", value = "`help`, `changelog`, `announcements`, `ping`, `credits`", inline = False)
      info_help_embed.set_author(name = ctx.author, icon_url = ctx.author.avatar_url)

      await ctx.send(embed = info_help_embed)

def setup(client):
  client.add_cog(help(client))
 

Ответ №1:

Хорошо… может быть, удалить

 self.client.remove_command("help")
 

линия? Похоже, это может быть удаление команды.

РЕДАКТИРОВАТЬ: Основываясь на комментариях, похоже __init__ , что вместо этого он должен принадлежать.

Комментарии:

1. Это удаляет «стандартную» команду справки, чтобы вы могли создать свою собственную.

2. Но он находится внутри help обработчика, что означает, что при help вызове он удаляется сам.

3. В вашем редактировании это указано идеально, должно быть в __init__ функции.

4. я знаю, что я не хотел говорить вам спасибо, потому что я не предлагаю улучшения, но мне кажется неправильным не говорить так спасибо… Спасибо 🙂