I just happened to stumble on this, and wanted to check the source out of curiosity (already had something similar a while back.)
Anyway, this doesn't really matter since all clients should be included for this, but you're not properly looping the players.
for(new i = 1; i <= playersNum; i++)
GetClientName(i, sUserName, sizeof(sUserName));
playersNum is the amount of players it's being sent to. Their indexes are stored in the "const players" array.
So that code should look more like:
for(new i = 0; i < playersNum; i++)
GetClientName(players[i], sUserName, sizeof(sUserName));
Just thought you should know, to avoid running into potential problems.