Команда не найдена в cogs

#discord.py

#discord.py

Вопрос:

Я пытался сделать свой код немного чище, используя cogs, но, похоже, это не работает. Когда я делаю balance, появляется эта ошибка: Ignoring exception in command None: discord.ext.commands.errors.CommandNotFound: Command "balance" is not found: вот часть кода в main.py:

 for file in os.listdir("./cogs"): # lists all the cog files inside the cog folder.
    if file.endswith(".py"): # It gets all the cogs that ends with a ".py".
        name = file[:-3] # It gets the name of the file removing the ".py"
        bot.load_extension(f"cogs.{name}") # This loads the cog.
 

И из файла баланса:

 bot = commands.Bot(command_prefix=' ')

class Balance(commands.Cog):
    def __init__(self, client):
        self.bot = bot

@commands.command(aliases = ["bal"])
async def balance(self, ctx):
    await open_account(ctx.author)
    user = ctx.author
    users = await get_bank_data()

    wallet_amt = users[str(user.id)]["wallet"]
    #bank_amt = users[str(user.id)]["bank"]

    em = discord.Embed(title = f"{ctx.author.name}'s balance",color = (0x95a5a6), description = f"{wallet_amt} dogecoins")
    #em.add_field(name = "Bank balance",value = bank_amt)
    await ctx.send(embed = em)

async def open_account(user):
  
  users = await get_bank_data()

  if str(user.id) in users:
    return False
  else:
    users[str(user.id)] = {}
    users[str(user.id)]["wallet"] = 250
    users[str(user.id)]["bank"] = 0


  with open("mainbank.json","w") as f:
    json.dump(users,f)
  return True

async def get_bank_data():
    with open("mainbank.json","r") as f:
      users = json.load(f)

    return users


async def update_bank(user,change = 0,mode = "wallet"):
  users = await get_bank_data()
  
  users[str(user.id)][mode]  = change

  with open("mainbank.json","w") as f:
    json.dump(users,f)
  return True

def setup(bot):
    bot.add_cog(Balance(bot))
 

Я новичок в программировании и особенно в cogs, поэтому, если кто-нибудь знает, как это исправить, пожалуйста, помогите мне.

Ответ №1:

Я не могу сказать, находятся ли команды и функции, которые вы показываете, внутри класса или нет. Кроме того, почему вы создаете новый экземпляр бота, и почему ваша функция инициализации принимает вызываемый аргумент client , а затем устанавливает self.bot значение bot ?
Попробуйте заменить client в вашей функции инициализации на bot , или наоборот.
Вы получаете какие-либо ошибки при попытке запустить ваш основной файл?