Ограничение на ввод команды раз в часpython

У бота для Амино есть команда, которая рандомно прибавляет человеку несколько плюшек и записывает в базу данных sqlite3. Как сделать ограничение на ввод этой команды для человека. К примеру если он вводит ее, то запускается таймер для конкретного человека и при повторном запуске от его id выводится в чат сообщение с количеством минут, которое нужно подождать. Фильтрация по id в БД.

import amino
import gtts
import requests
import threading
import time
import sqlite3
import os
import random
import pyowm
import wikipedia
from pyowm import OWM
from termcolor import colored
from gtts import gTTS
from pyowm.commons.enums import SubscriptionTypeEnum
from pyowm.utils.measurables import kelvin_to_celsius



from threading import Thread

ban = 0
tim = 1
hm = [0]
av = []
nom = 0
WARNS = []
ANTI_SPAM = {}
JOIN_LEAVE_DETECTOR = {}
working = False


def on_message(data: amino.objects.Event):
    global ban
    global tim
    global nom
    global y
    chatId: str = data.message.chatId
    nickname: str = data.message.author.nickname
    content: str = data.message.content
    messageId: str = data.message.messageId
    message_time: int = int(data.message.createdTime[17:19])
    userId: str = data.message.author.userId
    chat_name: str = sub_client.get_chat_thread(chatId).title
    user_id = data.message.author.userId

db = sqlite3.connect('game.db')
sql = db.cursor()

sql.execute("""CREATE TABLE IF NOT EXISTS users (
    nickname TEXT,
    id TEXT,
    chat1 INTEGER NOT NULL DEFAULT 1
)""")
db.commit()

def get_chat(chatId):
    index = 0
    for i in range(len(mas)):
        if chatId == mas[i]:
            index = i
    return "chat" + str(index + 1)

working = False

@client.event('on_text_message')
def on_text_message(data):
    global working
    if data.message.content == '!game' and not working:
        chatId = data.message.chatId
        chat = get_chat(chatId)
        working = True 
        db = sqlite3.connect('warning.db')
        sql = db.cursor()
        y= random.randint(0,100)
        warn = 0

        msg=data.json
        userWarnId=data.message.author.userId
        nic = data.message.author.nickname
        sql.execute(f"SELECT id FROM users WHERE id = '{userWarnId}'")
        if sql.fetchone() is None:
            sql.execute(f"INSERT INTO users VALUES (?, ?, ?)", (nic, userWarnId, 0))
            print("!")
            db.commit()
            print(f' - Нарушитель {nic} добавлен в базу -')
        else:
            for i in sql.execute(f"SELECT {chat} FROM users WHERE id = '{userWarnId}'"):
                warn = i[0]
            print(f"> {nic} получил предупреждение")
        warn += y
        sql.execute(f"UPDATE users SET {chat} = {warn} WHERE id = '{userWarnId}'")
        db.commit()
        sub_client.send_message(message=f'У {nic} сейчас {warn} токенов', chatId=chatId)
        working = False

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