This is something we really need to happen to keep track of players on the field while we do our 4v4 tournament as referees. A player sneaking makes there name disappear even to OPs and we want to be able to have it so OPs are still able to see those players names. It can be a Spout plugin if that's what it takes. Here is a video of the tournament we are setting up. You can kinda get a feel for why being able to see a players name plate even when they are sneaking is a big deal as a referee/op. Right now if we lose track of a player our only option is to TP onto them. Payment has to be through paypal.
All the client does to render a username is check if a player is sneaking via the packets. The only way this would be possible, which it is, is to make the server reject sneaking and let the client just sneak to stay on blocks. For instance: If a player sneaks, they'll move slowly and be crouched to themselves. However, to any other client on the server, the player would just be standing (not crouching) and have a full username. If you would still like this, reply to the message. Also, this method makes it impossible to have only certain players able to see crouched players. However, permissions is possible for whom can crouch. Kyler
It should be possible to crawl deeper into notch/CB code and just manipulate the packages send to other clients, so you could send sneaking packages to all clients except ops. Will have a look into this.
If V10lator fails, but let's face it, he never fails, you could always ask the ops to get modded clients that let them see sneaking player's usernames. This should be your last resort, though ^-^
Well, right now I think I fail... there are way to much packages in minecraft. :/ I know the client sends packet 19 to inform the server about the sneaking, but I don't know what the server sends to the clients then. Maybe it's Packet40EntityMetadata, maybe it's Packet32EntityLook, maybe... I could try to track it down, but then there would be the next problem: Overwriting the EntityTrackerEntry and replacing it without the server doing weird things. Or maybe just listen to the PlayerToggleSneakEvent and sending a faked packet to the ops with the help of the scheduler (so the op sees the player sneaking for < 1 tick, but what if the server sends the packet more then one time?)... But figuring all that out is to much work for $25. Maybe another dev wants to pick it up with the few informations I posted?