#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
, или наоборот.
Вы получаете какие-либо ошибки при попытке запустить ваш основной файл?