Как сделать таймер на бд sqlite3?
sqlite3, как и любая другая база данных, просто хранилище данных. Как уже сказали в комментариях - реализовывать нужно средствами языка.
Самый простой и наименее затратный с точки зрения ресурсов, вариант - высчитывать добытый уголь при проверке баланса.
В общих чертах схема следующая:
юзер "покупает шахту" (т.е. начинает игру), в базу записывается дата и время.
При вводе соответствующей команды (например /склад
) из базы берется время последнего обращения (для только-что начавших - пусть это будет время "покупки") и сравнивается с текущим. На основе количества пройдённых часов увеличивается баланс.
При этом актуализировать баланс нужно будет не только при "проверке" пользователем но и как минимум при расходных операциях, учитывайте это.
Второй вариант - используйте модули shelude / aioschedule (для синхронных/асинхронных ботов, соответственно). для ежечасного обновления. Однако учитывайте, что это потребует большего количества ресурсов.