Как сделать так, чтобы бот пополнял опыт пользователя за отправленное сообщение в чат сервера? discord.py

Пишу на discord.py своего бота, я не знаю как сделать, чтобы бот пополнял репутацию sqlite3 базы_данных.db, в таблице я всё записал, мне нужна сама команда.


Ответы (1 шт):

Автор решения: zrx

Допустим, наша SQL таблица выглядит так:

users_ranking

user_id INT
user_xp INT

Добавим в нашем боте ивент on_message, который срабатывает при отправке любого сообщения (вот ссылка на документацию).

@bot.event
async def on_message(message):
    # Объявим переменные
    user_id = message.author.id
    xp_for_message = len(message) # опыт за сообщение равен количеству символов в сообщении

    # Делаем запрос к БД
    cursor.execute(f'UPDATE users_ranking SET user_xp=user_xp+{xp_for_message} WHERE user_id={user_id})
    conn.commit()
→ Ссылка