Ошибка при покупке в дискорд боте discord.py
Я написал код для экономики на discord.py когда пробувал купить вылазит такая ошибка: File "E:\discordbotik\main.py", line 137, in __buy cursor.execute("UPDATE users SET cash = cash - {0} WHERE id = {1}".format(role.id)).fetchone()[0, ctx.author.id] IndexError: Replacement index 1 out of range for positional args tuple
Код комманды:
@client.command(aliases = ['buy'])
async def __buy(ctx, role: discord.Role = None):
if role is None:
await ctx.send(f"**{ctx.author}**, укажи роль которую хочешь купить")
else:
if role in ctx.author.roles:
await ctx.send(f"**{ctx.author}** Глаза раззуй, у тебя уже есть эта роль!")
elif cursor.execute("SELECT cost FROM shop WHERE role_id = {}".format(role.id)).fetchone()[0] > cursor.execute("SELECT cash FROM users WHERE id = {}".format(ctx.author.id)).fetchone()[0]:
await ctx.send(f"**{ctx.author}**, Пошел нафиг с магазина, бомжара!")
else:
await ctx.author.add_roles(role)
cursor.execute("UPDATE users SET cash = cash - {0} WHERE id = {1}".format(role.id)).fetchone()[ctx.author.id]
await ctx.message.add_reaction( '✔' )
Ответы (1 шт):
Автор решения: Corrygan
→ Ссылка
При форматировании строки вы указываете только 1 аргумент role.id для {1}, а для {0} аргумент не указан.
cursor.execute("UPDATE users SET cash = cash - {0} WHERE id = {1}".format(role.id)).fetchone()[ctx.author.id]
