Did you know that you can get a list of all actual players on the server by using tab-complete with the vanilla /tell command? This will show all players, even those that are vanished! While it may be possible to intercept the tab-complete packet and remove those who are vanished in the tab-complete list, I decided to write a very small plugin that replicates vanilla's /tell command.
By default, plugins will not send administratively-hidden players when sending a tab-complete list to the player. Obviously, this plugin is of no use to you if you use a private message management plugin like EssentialsChat.
There is no configuration, and one permission (phantomcompatchat.tell), which is given by default (similar to vanilla).
If you decide to use this plugin, I would advise negating the following permissions as such in your permissions manager:
(There is also bukkit.command.tell, but it doesn't seem to do anything.) Doing this will prevent players from finding a way to access the vanilla command, fully preventing the command from being used to tab-complete the list of players.Code (Text):- -minecraft.command.tell
Note: vanilla behavior isn't 100% replicated in the console (regarding content of error messages), but I doubt that's a concern.
PhantomAdmin (Note: PhantomAdmin has already implemented a solution to fix this. There is no need to use PhantomCompatChat if you use PhantomAdmin.)
VanishNoPacket
Source code

PhantomCompatChat 1.1
Vanilla chat that's compatible with administrative vanish/phantom plugins
Recent Updates
- 1.1 Jan 30, 2016