moraliser

noun
  1. a person who makes moral judgments or lectures others about morality, especially in a self-righteous or tedious way
  2. Usage: often used with a critical or disapproving tone

Examples