Как-то так это будет выглядеть (словарь можно заменить на БД):
from datetime import datetime, timedelta
...
user_cooldowns = {}
...
def obtain(...) -> None:
user_id = # тут получаем id пользователя
current_time = datetime.now()
# Проверяем, есть ли у пользователя запись о последнем использовании команды
if user_id in user_cooldowns:
last_used_time = user_cooldowns[user_id]
# Проверяем, прошло ли 4 часа с момента последнего использования
if current_time - last_used_time < timedelta(hours=4):
reply_text("Вы можете использовать эту команду только раз в 4 часа") # вместо reply_text используйте чего у вас там
return
# Обновляем время последнего использования команды
user_cooldowns[user_id] = current_time
# Тут чего-то делаем
reply_text("Вы получили виртуальную валюту!") # вместо reply_text используйте чего у вас там