The best way to cure this is probably to solve your social problems. However, I have found that one of the best ways to avoid nightmares is to avoid all dreams. I know that it is physically impossible to not dream, but I have found a way that causes me to not remember them, even immediately after I wake up. I also had no restless nights while using this method, and I was forced to learn it when I had had a one week long string of terrible nightmares. What I did was that as I was lying in bed I tried to clear my mind completely, as I have found that what you are thinking about when you fall asleep often has an influence on your dreams. This is much more difficult than you would think, though, as even at night there are huge amounts of distractions, from sounds to worries from earlier. If you keep trying, though, I have found that you will get better at clearing your mind and your dreams will start to fade away. After enough time, I found myself starting to do it automatically before sleeping. Even now I only dream about half of the nights I sleep, and it has been four years since I actively did this. It may take I while to get started, for me, it took me two weeks before I had a night without a dream, and another two before I started to do it automatically, but I have found that it is a wonderful cure for consistent nightmares, at least until you can solve the source. Best of luck with your problem.