Всё что тебе нужно - место для хранения последней даты использования команды и дописать одну проверку в обработчик.
Вот маленький пример:
import datetime
context = {}
@bot.message_handler(commands=["cow"])
def cow_command(message):
last_command_use_time = context.get(message.user_id)
if not last_command_use_time or (datetime.datetime.now() - last_command_use_time).hour > 1:
# Логика команды /cow
context[message.user_id] = datetime.datetime.now()
else:
# Сообщение об ограничениях использования команды
Для корректной работы ограничителя обязательно нужно persistance хранилище контекста т.к. при остановке бота даты будут потеряна, а значит при повторном запуске, вне зависимости от последнего использования команды, пользователи получат доступ к ней.