There are many thing wrong with this code:
- The file path for your file will never change while the server is running. Because of this, the file path should only be obtained once in plugin_init() and then stored globally.
- ReporterName is a string and should never be index with id (or anything else unless you are trying to reference single characters.
- To check if the player is or isn't the player executing the command you should use the entity index. In your case, you would check "id == Player" or "id != Player" where Player is the result of cmd_target().
- You should avoid getting any names, or doing anything really, until after you know that you are absolutely going to use them. That means that you should do the "self" check and the immunity check first. The only code that should exist before these is the code that these checks require. Nothing more. Basically, do the simplest checks first.
- You should always use SteamID when you want to unique identify a player because they can change their name to their hearts content and flood this plugin.
- To be able to do what you originally asked, you need to store the information in a way that it can be easily processed. Storing it as a sentence will not work reliable or efficiently. So, you should store the data in a structured format. For example, I would probably store it using tab delimiting (tabs because it's unlikely that a tab character will exist in the data normally).
P.S. Nothing on the internet is temporary. Also, there is no need to hide a plugin like this. The concept and code are both trivial. I've attached the original plugin so that people looking at this thread in the future will have a reference for my comments.