No you made a logical thinking mistake.
With $read(..,w,* $+ $1- $+ *) you will compare the *the entire line*
to each line in the text file. But the text file will contain individual words (like a swear word) on each line.
If a person says a swearword in his sentence, then this sentence will never match any swear word in the text file, because well, how can a whole sentence match 1 word right?
What you'd really want to do is the opposite: do a search to see if any of the words in the text file match the sentence said, instead of the other way round. So just that you're clear on the matter: the matchtext that you used in the $read, will check if the entire sentence matches the lines in the text file, which can never happen, unless the sentence was a single word. Since most sentences aren't single words, this is not the right way to go.
I don't think people correct you because of a power trip, rather they try to help the people with good advice, not misinform them. Everyone makes mistakes though, that's ok, but don't look the other way when people correct you.
Anyway, this sort of thing has been done a zillion times before, so schaefer is right when he advises to use the Search