Был код:
@client.slash_command()
async def regmoder(inter, member: disnake.Member):
base.execute('CREATE TABLE IF NOT EXISTS {}(userid INT PRIMARY KEY, nick, pred INT, vig INT)'.format('system'))
base.commit()
cur.execute('INSERT INTO system (userid, nick) VALUES(?, ?)', (member.id, member.name))
base.commit()
await inter.send(embed=disnake.Embed(title='[INFO] Regmoder', description='Вы успешно зарегистрировали нового модератора'))
Когда в таблице имелся такой участник, выводил в консоль ошибку, что ожедаемо, т.к.
userid INT PRIMARY KEY
Дописал код, чтобы выводил ошибку при написании команды:
@regmoder.error
async def regmoder_error(inter, error):
if isinstance(error, sqlite3.IntegrityError):
await inter.send(embed=disnake.Embed(title='[ERROR] Regmoder', description='Этот модератор уже зарегистрирован.'), ephemeral=True)
Теперь ошибка не выводится ни в консоли, ни в дискорде.
Полный код:
@client.slash_command()
async def regmoder(inter, member: disnake.Member):
base.execute('CREATE TABLE IF NOT EXISTS {}(userid INT PRIMARY KEY, nick, pred INT, vig INT)'.format('system'))
base.commit()
cur.execute('INSERT INTO system (userid, nick) VALUES(?, ?)', (member.id, member.name))
base.commit()
await inter.send(embed=disnake.Embed(title='[INFO] Regmoder', description='Вы успешно зарегистрировали нового модератора'))
@regmoder.error
async def regmoder_error(inter, error):
if isinstance(error, sqlite3.IntegrityError):
await inter.send(embed=disnake.Embed(title='[ERROR] Regmoder', description='Этот модератор уже зарегистрирован.'), ephemeral=True)