ну тогда записывай юзера, текущее время + 30 в блок какой нибдь и когда он пробует если он в блоке то пишет то время - текущее сколько ему осталось как то так
записываешь время нажатия , при след действии проверяешь ( время сейчас минус записаное время ) если больше кулдауна то он прошел , если нет то нет , первое что в голову приходит