Actually he just asked for a message and never mentioned a kick ...
Also, for fairness sake, I must add to my code the following:
I know for a fact that huge txt files (several MB) temporarily freeze your mIRC when using $read, it may take so long as to even get you a ping timeout. I do not know if the same happens if you were to use a userlist of the same size, never tried it. If it does, you might have to resort to hashtables. I guess it would depend on whether mIRC reads the userlist from a file or from memory. I haven't been able to find it in a file, so I guess it's in memory (which would make this point mute), but then where does mIRC store it when you exit the program. I couldn't find such file. Anyway, because I can't find it in any file, I assume it's stored in memory, and then a userlist should not experience the same problems as a file-based userlist like you (original poster) suggested. Or at least to a lesser extent.